diff --git a/subprojects/gst-plugins-bad/gst/mpegtsdemux/mpegtsbase.c b/subprojects/gst-plugins-bad/gst/mpegtsdemux/mpegtsbase.c index 4a095ada02..d18475b3a0 100644 --- a/subprojects/gst-plugins-bad/gst/mpegtsdemux/mpegtsbase.c +++ b/subprojects/gst-plugins-bad/gst/mpegtsdemux/mpegtsbase.c @@ -1204,6 +1204,10 @@ mpegts_base_apply_pmt (MpegTSBase * base, GstMpegtsSection * section) if (G_UNLIKELY (old_program == NULL)) goto no_program; + if (G_UNLIKELY (mpegts_base_is_same_program (base, old_program, section->pid, + pmt))) + goto same_program; + if (base->streams_aware && mpegts_base_is_program_update (base, old_program, section->pid, pmt)) { GST_FIXME ("We are streams_aware and new program is an update"); @@ -1212,10 +1216,6 @@ mpegts_base_apply_pmt (MpegTSBase * base, GstMpegtsSection * section) goto beach; } - if (G_UNLIKELY (mpegts_base_is_same_program (base, old_program, section->pid, - pmt))) - goto same_program; - /* If the current program is active, this means we have a new program */ if (old_program->active) { MpegTSBaseClass *klass = GST_MPEGTS_BASE_GET_CLASS (base);