On 02/04/2024 07:55, Xiang, Haihao wrote:
On Ma, 2024-04-01 at 21:11 +0100, Mark Thompson wrote:
On 28/03/2024 02:07, Xiang, Haihao wrote:
From: Haihao Xiang <haihao.xi...@intel.com>

Both Main Intra and Main 10 Intra are Rext, we may use Main and Main 10
instead for decoding. This patch fixes the error below:

[hevc @ 0x55a771b80a00] No support for codec hevc profile 4.
[hevc @ 0x55a771b80a00] Failed setup for format vaapi: hwaccel
initialisation returned error.

Signed-off-by: Haihao Xiang <haihao.xi...@intel.com>
---
   libavcodec/vaapi_hevc.c | 7 +++++++
   1 file changed, 7 insertions(+)

diff --git a/libavcodec/vaapi_hevc.c b/libavcodec/vaapi_hevc.c
index 3bdd2dd1b8..83b94d1a55 100644
--- a/libavcodec/vaapi_hevc.c
+++ b/libavcodec/vaapi_hevc.c
@@ -612,6 +612,13 @@ VAProfile
ff_vaapi_parse_hevc_rext_scc_profile(AVCodecContext *avctx)
           av_log(avctx, AV_LOG_VERBOSE, "HEVC profile %s is found.\n",
profile->name);
       }
+#if VA_CHECK_VERSION(0, 37, 0)
+    if (!strcmp(profile->name, "Main Intra"))
+        return VAProfileHEVCMain;
+    else if (!strcmp(profile->name, "Main 10 Intra"))
+        return VAProfileHEVCMain10;
+#endif
+
   #if VA_CHECK_VERSION(1, 2, 0)
       if (!strcmp(profile->name, "Main 12") ||
           !strcmp(profile->name, "Main 12 Intra"))

What if high_precision_offsets_enabled_flag is set?

(That doesn't matter for the VAAPI encoder setting the profile because we
always have it as zero.)

Here use VAProfileHEVCMain or VAProfileHEVCMain10 to create VAConfig for
decoding,  avctx->profile (4) is not changed.
high_precision_offsets_enabled_flag is set in VAPictureParameterBufferHEVCRext
when avctx->profile is 4.

But Main and Main 10 profile have:

"Active SPSs for the base layer shall have ... high_precision_offsets_enabled_flag, 
... when present, equal to 0 only."

so a decoder implementing those profiles need not support it.  (It may work as 
a compatible extension as the field is there, but if it doesn't also support 
general rext cases then this is unlikely to be implemented.)

Thanks,

- Mark
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

To unsubscribe, visit link above, or email
ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".

Reply via email to