vkh264dec: support h264 extended profile

Extended is identical to main but allows 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/7854>
This commit is contained in:
Stéphane Cerveau 2024-10-25 12:36:43 +02:00 committed by GStreamer Marge Bot
parent 36c01d0579
commit 538747907d
2 changed files with 5 additions and 2 deletions

View file

@ -252567,7 +252567,7 @@
"klass": "Codec/Decoder/Video/Hardware",
"pad-templates": {
"sink": {
"caps": "video/x-h264:\n profile: { (string)high, (string)main, (string)constrained-baseline, (string)baseline }\n stream-format: { (string)avc, (string)byte-stream }\n alignment: au\n",
"caps": "video/x-h264:\n profile: { (string)high, (string)main, (string)constrained-baseline, (string)baseline, (string)extended }\n stream-format: { (string)avc, (string)byte-stream }\n alignment: au\n",
"direction": "sink",
"presence": "always"
},

View file

@ -97,7 +97,7 @@ struct _GstVulkanH264Decoder
static GstStaticPadTemplate gst_vulkan_h264dec_sink_template =
GST_STATIC_PAD_TEMPLATE ("sink", GST_PAD_SINK, GST_PAD_ALWAYS,
GST_STATIC_CAPS ("video/x-h264, "
"profile = { (string) high, (string) main, (string) constrained-baseline, (string) baseline } ,"
"profile = { (string) high, (string) main, (string) constrained-baseline, (string) baseline, (string) extended } ,"
"stream-format = { (string) avc, (string) byte-stream }, "
"alignment = (string) au"));
@ -452,6 +452,9 @@ _get_h264_profile (GstH264Profile profile_idc)
case GST_H264_PROFILE_BASELINE:
return STD_VIDEO_H264_PROFILE_IDC_BASELINE;
case GST_H264_PROFILE_MAIN:
/* Similar to baseline and constrained-baseline, extended is the same as
* main if we ignore ASO/FMO features. */
case GST_H264_PROFILE_EXTENDED:
return STD_VIDEO_H264_PROFILE_IDC_MAIN;
case GST_H264_PROFILE_HIGH:
return STD_VIDEO_H264_PROFILE_IDC_HIGH;