diff --git a/subprojects/gst-plugins-bad/gst/mpegtsdemux/mpegtsparse.c b/subprojects/gst-plugins-bad/gst/mpegtsdemux/mpegtsparse.c index 76ac55be6b..47ea96bc8d 100644 --- a/subprojects/gst-plugins-bad/gst/mpegtsdemux/mpegtsparse.c +++ b/subprojects/gst-plugins-bad/gst/mpegtsdemux/mpegtsparse.c @@ -423,9 +423,12 @@ push_event (MpegTSBase * base, GstEvent * event) prepare_src_pad (base, parse); } if (G_UNLIKELY (GST_EVENT_TYPE (event) == GST_EVENT_EOS)) { + gsize packet_size = base->packetizer->packet_size; + parse->is_eos = TRUE; - if (parse->alignment > 0 && parse->ts_adapter.packets_in_adapter > 0 + if (packet_size > 0 && parse->alignment > 0 && + parse->ts_adapter.packets_in_adapter > 0 && parse->ts_adapter.packets_in_adapter < parse->alignment) { GstBuffer *buf; GstMapInfo map; @@ -433,7 +436,6 @@ push_event (MpegTSBase * base, GstEvent * event) gint missing_packets = parse->alignment - parse->ts_adapter.packets_in_adapter; gint i = missing_packets; - gsize packet_size = base->packetizer->packet_size; GST_DEBUG_OBJECT (parse, "Adding %d dummy packets", missing_packets); @@ -441,8 +443,6 @@ push_event (MpegTSBase * base, GstEvent * event) gst_buffer_map (buf, &map, GST_MAP_READWRITE); data = map.data; - g_assert (packet_size > 0); - for (; i > 0; i--) { gint offset;