mpegts: Check is program is identical before updating
authorEdward Hervey <edward@centricular.com>
Wed, 16 Nov 2022 08:29:59 +0000 (09:29 +0100)
committerGStreamer Marge Bot <gitlab-merge-bot@gstreamer-foundation.org>
Wed, 16 Nov 2022 12:20:41 +0000 (12:20 +0000)
There is no need to update the program if it's identical :)

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3421>

subprojects/gst-plugins-bad/gst/mpegtsdemux/mpegtsbase.c

index 4a095ad..d18475b 100644 (file)
@@ -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);