From ee300b6c33eaefb8efa3107ddad5f752a9700c64 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20Dr=C3=B6ge?= Date: Tue, 22 Nov 2016 12:58:44 +0200 Subject: [PATCH] mpegtspacketizer: Reset values before parsing each section --- gst/mpegtsdemux/mpegtspacketizer.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/gst/mpegtsdemux/mpegtspacketizer.c b/gst/mpegtsdemux/mpegtspacketizer.c index 08edbb6c78..c51a1e5ee6 100644 --- a/gst/mpegtsdemux/mpegtspacketizer.c +++ b/gst/mpegtsdemux/mpegtspacketizer.c @@ -928,7 +928,7 @@ mpegts_packetizer_push_section (MpegTSPacketizer2 * packetizer, MpegTSPacketizerStream *stream; gboolean long_packet; guint8 pointer = 0, table_id; - guint16 subtable_extension = 0; + guint16 subtable_extension; gsize to_read; guint section_length; /* data points to the current read location @@ -1052,6 +1052,12 @@ accumulate_data: } section_start: + subtable_extension = 0; + version_number = 0; + last_section_number = 0; + section_number = 0; + table_id = 0; + /* FIXME : We need at least 3 bytes (or 8 for long packets) with current algorithm :( * We might end up losing sections that start across two packets (srsl...) */ if (data > packet->data_end - 3 || *data == 0xff) {