mpegts: add stuffing descriptor
authorStefan Ringel <linuxtv@stefanringel.de>
Thu, 17 Apr 2014 12:55:29 +0000 (14:55 +0200)
committerEdward Hervey <bilboed@bilboed.com>
Mon, 26 May 2014 09:18:20 +0000 (11:18 +0200)
https://bugzilla.gnome.org/show_bug.cgi?id=728364

docs/libs/gst-plugins-bad-libs-sections.txt
gst-libs/gst/mpegts/gst-dvb-descriptor.c
gst-libs/gst/mpegts/gst-dvb-descriptor.h

index c1f7216..2a0d533 100644 (file)
@@ -323,6 +323,8 @@ gst_mpegts_descriptor_parse_dvb_ca_identifier
 <SUBSECTION service_list>
 GstMpegTsDVBServiceListItem
 gst_mpegts_descriptor_parse_dvb_service_list
+<SUBSECTION stuffing>
+gst_mpegts_descriptor_parse_dvb_stuffing
 <SUBSECTION Standard>
 GST_TYPE_MPEG_TSDVB_CODE_RATE
 gst_mpegts_dvb_code_rate_get_type
index caa593d..3f1275f 100644 (file)
@@ -159,6 +159,32 @@ gst_mpegts_descriptor_parse_dvb_service_list (const GstMpegTsDescriptor *
   return TRUE;
 }
 
+/* GST_MTS_DESC_DVB_STUFFING (0x42) */
+/**
+ * gst_mpegts_descriptor_parse_dvb_stuffing:
+ * @descriptor: a %GST_MTS_DESC_DVB_STUFFING #GstMpegTsDescriptor
+ * @stuffing_bytes: (out): the stuffing bytes
+ *
+ * Parses out the stuffing bytes from the @descriptor.
+ *
+ * Returns: %TRUE if the parsing happened correctly, else %FALSE.
+ */
+gboolean
+gst_mpegts_descriptor_parse_dvb_stuffing (const GstMpegTsDescriptor *
+    descriptor, guint8 ** stuffing_bytes)
+{
+  guint8 *data;
+
+  g_return_val_if_fail (descriptor != NULL && stuffing_bytes != NULL, FALSE);
+  __common_desc_checks (descriptor, GST_MTS_DESC_DVB_STUFFING, 0, FALSE);
+
+  data = (guint8 *) descriptor->data + 2;
+
+  *stuffing_bytes = g_memdup (data, descriptor->length);
+
+  return TRUE;
+}
+
 /* GST_MTS_DESC_DVB_SATELLITE_DELIVERY_SYSTEM (0x43) */
 /**
  * gst_mpegts_descriptor_parse_satellite_delivery_system:
index 3e4f496..65804c1 100644 (file)
@@ -161,6 +161,11 @@ gboolean gst_mpegts_descriptor_parse_dvb_network_name (const GstMpegTsDescriptor
 
 GstMpegTsDescriptor *gst_mpegts_descriptor_from_dvb_network_name (const gchar * name);
 
+/* GST_MTS_DESC_DVB_STUFFING (0x42) */
+gboolean gst_mpegts_descriptor_parse_dvb_stuffing (const GstMpegTsDescriptor * descriptor,
+                                                   guint8 ** stuffing_bytes);
+
+
 /* GST_MTS_DESC_DVB_SATELLITE_DELIVERY_SYSTEM (0x43) */
 typedef struct _GstMpegTsSatelliteDeliverySystemDescriptor GstMpegTsSatelliteDeliverySystemDescriptor;