summaryrefslogtreecommitdiffstats
path: root/gst/mpegdemux/mpegtspacketizer.c
diff options
context:
space:
mode:
authorVincent Genieux <mutex@runbox.com>2009-05-03 17:42:44 +0100
committerZaheer Merali <zaheerabbas@merali.org>2009-05-03 17:42:44 +0100
commite41401e3174b80b2e2ce4febf99f15e766dfc5c6 (patch)
tree46c829e8ac3359d8133633f0a205ad314433435c /gst/mpegdemux/mpegtspacketizer.c
parent8ef8daf4dbdbab23ff49757a6223c3a9bfba11d3 (diff)
downloadgst-plugins-bad-e41401e3174b80b2e2ce4febf99f15e766dfc5c6.tar.gz
gst-plugins-bad-e41401e3174b80b2e2ce4febf99f15e766dfc5c6.tar.bz2
gst-plugins-bad-e41401e3174b80b2e2ce4febf99f15e766dfc5c6.zip
mpegtsparse: Ignore subtable extension when parsing PAT
Fixes #569673.
Diffstat (limited to 'gst/mpegdemux/mpegtspacketizer.c')
-rw-r--r--gst/mpegdemux/mpegtspacketizer.c19
1 files changed, 18 insertions, 1 deletions
diff --git a/gst/mpegdemux/mpegtspacketizer.c b/gst/mpegdemux/mpegtspacketizer.c
index 1abbf1fe..b986fa60 100644
--- a/gst/mpegdemux/mpegtspacketizer.c
+++ b/gst/mpegdemux/mpegtspacketizer.c
@@ -241,7 +241,8 @@ mpegts_packetizer_parse_section_header (MpegTSPacketizer * packetizer,
data = GST_BUFFER_DATA (section->buffer);
section->table_id = *data++;
- if ((data[0] & 0x80) == 0)
+ /* if table_id is 0 (pat) then ignore the subtable extension */
+ if ((data[0] & 0x80) == 0 || section->table_id == 0)
section->subtable_extension = 0;
else
section->subtable_extension = GST_READ_UINT16_BE (data + 2);
@@ -1844,6 +1845,22 @@ mpegts_packetizer_clear (MpegTSPacketizer * packetizer)
gst_adapter_clear (packetizer->adapter);
}
+void
+mpegts_packetizer_remove_stream (MpegTSPacketizer * packetizer, gint16 pid)
+{
+ MpegTSPacketizerStream *stream =
+ (MpegTSPacketizerStream *) g_hash_table_lookup (packetizer->streams,
+ GINT_TO_POINTER ((gint) pid));
+ if (stream) {
+ GST_INFO ("Removing stream for PID %d", pid);
+
+ g_hash_table_remove (packetizer->streams, GINT_TO_POINTER ((gint) pid));
+
+ g_object_unref (stream->section_adapter);
+ g_free (stream);
+ }
+}
+
MpegTSPacketizer *
mpegts_packetizer_new ()
{