summaryrefslogtreecommitdiffstats
path: root/gst
diff options
context:
space:
mode:
authorZaheer Abbas Merali <zaheer@localhost.localdomain>2009-04-10 19:06:55 +0200
committerDave Robillard <dave@drobilla.net>2009-05-03 12:03:16 -0400
commit7f8bb188289135efa73d44ba8d65c82021abc030 (patch)
tree01c3d4c8483a71086b3cf086aea8ff8153d33b17 /gst
parentbe5025ba6672952ff24556fc6aabcce1b903fa84 (diff)
downloadgst-plugins-bad-7f8bb188289135efa73d44ba8d65c82021abc030.tar.gz
gst-plugins-bad-7f8bb188289135efa73d44ba8d65c82021abc030.tar.bz2
gst-plugins-bad-7f8bb188289135efa73d44ba8d65c82021abc030.zip
mpegtsparse: detect AC3 streams in PMT table
add 'has-ac3' boolean to pmt bus message
Diffstat (limited to 'gst')
-rw-r--r--gst/mpegdemux/mpegtspacketizer.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/gst/mpegdemux/mpegtspacketizer.c b/gst/mpegdemux/mpegtspacketizer.c
index 923283d7..1abbf1fe 100644
--- a/gst/mpegdemux/mpegtspacketizer.c
+++ b/gst/mpegdemux/mpegtspacketizer.c
@@ -502,6 +502,17 @@ mpegts_packetizer_parse_pmt (MpegTSPacketizer * packetizer,
g_free (struct_name);
if (stream_info_length) {
+ /* check for AC3 descriptor */
+ GstMPEGDescriptor *desc =
+ gst_mpeg_descriptor_parse (data, stream_info_length);
+ if (desc != NULL) {
+ if (gst_mpeg_descriptor_find (desc, DESC_DVB_AC3)) {
+ gst_structure_set (stream_info, "has-ac3", G_TYPE_BOOLEAN, TRUE,
+ NULL);
+ }
+ gst_mpeg_descriptor_free (desc);
+ }
+
descriptors = g_value_array_new (0);
if (!mpegts_packetizer_parse_descriptors (packetizer,
&data, data + stream_info_length, descriptors)) {
@@ -514,6 +525,7 @@ mpegts_packetizer_parse_pmt (MpegTSPacketizer * packetizer,
gst_structure_set (stream_info,
"descriptors", G_TYPE_VALUE_ARRAY, descriptors, NULL);
g_value_array_free (descriptors);
+
}
g_value_init (&stream_value, GST_TYPE_STRUCTURE);