qtdemux: Check fourcc of a second CEA608 atom instead of assuming it's cdt2
authorSebastian Dröge <sebastian@centricular.com>
Thu, 26 Sep 2024 06:15:34 +0000 (09:15 +0300)
committerBackport Bot <gitlab-backport-bot@gstreamer-foundation.org>
Sun, 29 Sep 2024 09:08:38 +0000 (10:08 +0100)
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7583>

subprojects/gst-plugins-good/gst/isomp4/qtdemux.c

index 0d3310e7c8d3a08a2b18decea153d42b28090f41..c88a4b351d3870b60f77f20d1289400b0340f59c 100644 (file)
@@ -6217,7 +6217,7 @@ extract_cc_from_data (QtDemuxStream * stream, const guint8 * data, gsize size,
             else
               GST_WARNING_OBJECT (stream->pad,
                   "Got multiple [cdat] atoms in a c608 sample. This is unsupported for now. Please file a bug");
-          } else {
+          } else if (fourcc == FOURCC_cdt2) {
             if (cdt2 == NULL)
               cdt2 =
                   convert_to_s334_1a (data + atom_length + 8,
@@ -6225,6 +6225,10 @@ extract_cc_from_data (QtDemuxStream * stream, const guint8 * data, gsize size,
             else
               GST_WARNING_OBJECT (stream->pad,
                   "Got multiple [cdt2] atoms in a c608 sample. This is unsupported for now. Please file a bug");
+          } else {
+            GST_WARNING_OBJECT (stream->pad,
+                "Unknown second data atom (%" GST_FOURCC_FORMAT ") for CEA608",
+                GST_FOURCC_ARGS (fourcc));
           }
         }
       }