va: h264dec: Allow "extended" profile decoding
authorNicolas Dufresne <nicolas.dufresne@collabora.com>
Tue, 17 Dec 2024 02:41:55 +0000 (21:41 -0500)
committerGStreamer Marge Bot <gitlab-merge-bot@gstreamer-foundation.org>
Tue, 17 Dec 2024 21:51:10 +0000 (21:51 +0000)
Extended is identical to main but allows for FMO/ASO features to be
used, and prevent using CABAC. Using similar logic to "baseline",
assume that if we support main, we can also do extended.

This fixes the following fluster vectors, which otherwise would fail
when trying to link the parsebin pad.

  - BA3_SVA_C
  - MR6_BT_B
  - MR7_BT_B
  - MR8_BT_B

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

subprojects/gst-plugins-bad/sys/va/gstvah264dec.c

index c17dbfda839cd8c4e8f342c28e5230bfb90c0bed..c4a149434bbd0e9a36a717244e76c46e5cb721b0 100644 (file)
@@ -787,6 +787,11 @@ _complete_sink_caps (GstCaps * sinkcaps)
 
     _append_str (&val, profile);
 
+    /* Similar to baseline and constrained-baseline, extended is the same as
+     * main if we ignore ASO/FMO features. */
+    if (g_strcmp0 (profile, "main") == 0)
+      _append_str (&val, "extended");
+
     if (g_strcmp0 (profile, "high") == 0) {
       for (j = 0; j < G_N_ELEMENTS (high_synthetic); j++)
         _append_str (&val, high_synthetic[j]);