gst/mpegtsparse/mpegtspacketizer.c: Add event name and description to the eit structu...
authorZaheer Abbas Merali <zaheerabbas@merali.org>
Tue, 22 Jan 2008 18:40:16 +0000 (18:40 +0000)
committerZaheer Abbas Merali <zaheerabbas@merali.org>
Tue, 22 Jan 2008 18:40:16 +0000 (18:40 +0000)
Original commit message from CVS:
* gst/mpegtsparse/mpegtspacketizer.c:
Add event name and description to the eit structure
sent in the bus message.

ChangeLog
gst/mpegtsparse/mpegtspacketizer.c

index 0879f2b637b8c2b29581a4e4d60ab7d6879f05a5..f559e4796057356fa24b20fa4719b9683d75cedc 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2008-01-22  Zaheer Abbas Merali  <zaheerabbas at merali dot org>
+
+       * gst/mpegtsparse/mpegtspacketizer.c:
+       Add event name and description to the eit structure
+       sent in the bus message.
+
 2008-01-22  Zaheer Abbas Merali  <zaheerabbas at merali dot org>
 
        * gst/mpegtsparse/mpegtsparse.c:
index fafd3c9b9a86cd7d3addd4c0704204894f1bd15d..801318363b938e3fdfb5cdc55498386b297f24d2 100644 (file)
@@ -994,6 +994,36 @@ mpegts_packetizer_parse_eit (MpegTSPacketizer * packetizer,
         gst_structure_free (event);
         goto error;
       }
+      guint8 *event_descriptor;
+      GstMPEGDescriptor *mpegdescriptor =
+          gst_mpeg_descriptor_parse (data, descriptors_loop_length);
+      event_descriptor =
+          gst_mpeg_descriptor_find (mpegdescriptor, DESC_DVB_SHORT_EVENT);
+      if (event_descriptor != NULL) {
+        guint eventname_length =
+            DESC_DVB_SHORT_EVENT_name_length (event_descriptor);
+        gchar *eventname =
+            (gchar *) DESC_DVB_SHORT_EVENT_name_text (event_descriptor);
+        guint eventdescription_length =
+            DESC_DVB_SHORT_EVENT_description_length (event_descriptor);
+        gchar *eventdescription =
+            (gchar *) DESC_DVB_SHORT_EVENT_description_text (event_descriptor);
+        if (eventname[0] < 0x20) {
+          eventname_length -= 1;
+          eventname += 1;
+        }
+        if (eventdescription[0] < 0x20) {
+          eventdescription_length -= 1;
+          eventdescription += 1;
+        }
+
+        gst_structure_set (event, "name", G_TYPE_STRING, g_strndup (eventname,
+                eventname_length), NULL);
+        gst_structure_set (event, "description", G_TYPE_STRING,
+            g_strndup (eventdescription, eventdescription_length), NULL);
+      }
+
+      gst_mpeg_descriptor_free (mpegdescriptor);
 
       descriptors = g_value_array_new (0);
       if (!mpegts_packetizer_parse_descriptors (packetizer,