On Di, 2024-04-02 at 22:01 +0100, Mark Thompson wrote: > 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.) >
I get your point, the underlying driver mightn't support VAPictureParameterBufferHEVCRext. Seems we should add new profiles in libva. Thanks Haihao _______________________________________________ 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".