gst/mpegtsparse/mpegtspacketizer.c: Convert extended event text to UTF-8.

Original commit message from CVS:
* gst/mpegtsparse/mpegtspacketizer.c:
Convert extended event text to UTF-8.
This commit is contained in:
Zaheer Abbas Merali 2008-07-10 20:23:09 +00:00
parent 95bc489351
commit 8774ebf733
2 changed files with 17 additions and 6 deletions

View file

@ -1,3 +1,8 @@
2008-07-10 Zaheer Abbas Merali <zaheerabbas at merali dot org>
* gst/mpegtsparse/mpegtspacketizer.c:
Convert extended event text to UTF-8.
2008-07-10 Stefan Kost <ensonic@users.sf.net> 2008-07-10 Stefan Kost <ensonic@users.sf.net>
* docs/plugins/Makefile.am: * docs/plugins/Makefile.am:

View file

@ -1,8 +1,9 @@
/* /*
* mpegtspacketizer.c - * mpegtspacketizer.c -
* Copyright (C) 2007 Alessandro Decina * Copyright (C) 2007, 2008 Alessandro Decina, Zaheer Merali
* *
* Authors: * Authors:
* Zaheer Merali <zaheerabbas at merali dot org>
* Alessandro Decina <alessandro@nnva.org> * Alessandro Decina <alessandro@nnva.org>
* *
* This library is free software; you can redistribute it and/or * This library is free software; you can redistribute it and/or
@ -21,6 +22,8 @@
* Boston, MA 02111-1307, USA. * Boston, MA 02111-1307, USA.
*/ */
#include <string.h>
#include "mpegtspacketizer.h" #include "mpegtspacketizer.h"
#include "gstmpegdesc.h" #include "gstmpegdesc.h"
@ -1465,6 +1468,7 @@ mpegts_packetizer_parse_eit (MpegTSPacketizer * packetizer,
guint8 *extended_descriptor; guint8 *extended_descriptor;
/*GValue extended_items = { 0 }; */ /*GValue extended_items = { 0 }; */
gchar *extended_text = NULL; gchar *extended_text = NULL;
gchar *extended_text_tmp;
/*g_value_init (&extended_items, GST_TYPE_LIST); */ /*g_value_init (&extended_items, GST_TYPE_LIST); */
for (i = 0; i < extended_event_descriptors->len; i++) { for (i = 0; i < extended_event_descriptors->len; i++) {
extended_descriptor = g_array_index (extended_event_descriptors, extended_descriptor = g_array_index (extended_event_descriptors,
@ -1474,24 +1478,26 @@ mpegts_packetizer_parse_eit (MpegTSPacketizer * packetizer,
if (extended_text) { if (extended_text) {
gchar *tmp; gchar *tmp;
gchar *old_extended_text = extended_text; gchar *old_extended_text = extended_text;
tmp = tmp = g_strndup ((gchar *)
g_strndup ((gchar *)
DESC_DVB_EXTENDED_EVENT_text (extended_descriptor), DESC_DVB_EXTENDED_EVENT_text (extended_descriptor),
DESC_DVB_EXTENDED_EVENT_text_length (extended_descriptor)); DESC_DVB_EXTENDED_EVENT_text_length (extended_descriptor));
extended_text = g_strdup_printf ("%s%s", extended_text, tmp); extended_text = g_strdup_printf ("%s%s", extended_text, tmp);
g_free (old_extended_text); g_free (old_extended_text);
g_free (tmp); g_free (tmp);
} else { } else {
extended_text = extended_text = g_strndup ((gchar *)
g_strndup ((gchar *)
DESC_DVB_EXTENDED_EVENT_text (extended_descriptor), DESC_DVB_EXTENDED_EVENT_text (extended_descriptor),
DESC_DVB_EXTENDED_EVENT_text_length (extended_descriptor)); DESC_DVB_EXTENDED_EVENT_text_length (extended_descriptor));
} }
} }
} }
if (extended_text) { if (extended_text) {
extended_text_tmp = get_encoding_and_convert (extended_text,
strlen (extended_text));
gst_structure_set (event, "extended-text", G_TYPE_STRING, gst_structure_set (event, "extended-text", G_TYPE_STRING,
extended_text, NULL); extended_text_tmp, NULL);
g_free (extended_text_tmp);
g_free (extended_text); g_free (extended_text);
} }
g_array_free (extended_event_descriptors, TRUE); g_array_free (extended_event_descriptors, TRUE);