> -----Original Message----- > From: myp...@gmail.com [mailto:myp...@gmail.com] > Sent: Thursday, March 28, 2019 13:03 > To: FFmpeg development discussions and patches <ffmpeg- > de...@ffmpeg.org> > Cc: Fu, Linjie <linjie...@intel.com> > Subject: Re: [FFmpeg-devel] [PATCH] lavc/vaapi_decode: add va_profile > format map support for HEVC_REXT > > On Thu, Mar 28, 2019 at 12:03 PM Linjie Fu <linjie...@intel.com> wrote: > > > > HEVC_REXT will be map to {VAProfileHEVCMain422_10, > VAProfileHEVCMain444, > > VAProfileHEVCMain444_10} in vaapi_profile_map[], since need to be > distinguished > > to select the exact va_profile. > > > > Add va_profile -> AV_PIX_FMT map for FF_PROFILE_HEVC_REXT to match > the > > exact va_profile. > > > > Signed-off-by: Linjie Fu <linjie...@intel.com> > > --- > > libavcodec/vaapi_decode.c | 29 +++++++++++++++++++++++++---- > > 1 file changed, 25 insertions(+), 4 deletions(-) > > > > diff --git a/libavcodec/vaapi_decode.c b/libavcodec/vaapi_decode.c > > index 015154b879..1cb8683b7c 100644 > > --- a/libavcodec/vaapi_decode.c > > +++ b/libavcodec/vaapi_decode.c > > @@ -414,6 +414,18 @@ static const struct { > > #undef MAP > > }; > > > > +static const struct { > > + VAProfile va_profile; > > + enum AVPixelFormat pix_fmt; > > +} rext_format_map[] = { > > +#define MAP(vp, av) { VAProfileHEVCMain ## vp, AV_PIX_FMT_ ## av } > > + MAP(422_10, YUYV422), > > + MAP(422_10, YUV422P10LE), > > + MAP(444, YUV444P), > > + MAP(444_10, YUV444P10LE), > > +#undef MAP > > +}; > > + > > /* > > * Set *va_config and the frames_ref fields from the current codec > parameters > > * in avctx. > > @@ -426,7 +438,7 @@ static int > vaapi_decode_make_config(AVCodecContext *avctx, > > AVVAAPIHWConfig *hwconfig = NULL; > > AVHWFramesConstraints *constraints = NULL; > > VAStatus vas; > > - int err, i, j; > > + int err, i, j, k; > > const AVCodecDescriptor *codec_desc; > > VAProfile *profile_list = NULL, matched_va_profile; > > int profile_count, exact_match, matched_ff_profile; > > @@ -467,13 +479,22 @@ static int > vaapi_decode_make_config(AVCodecContext *avctx, > > if (avctx->profile == vaapi_profile_map[i].codec_profile || > > vaapi_profile_map[i].codec_profile == FF_PROFILE_UNKNOWN) > > profile_match = 1; > > - for (j = 0; j < profile_count; j++) { > > - if (vaapi_profile_map[i].va_profile == profile_list[j]) { > > + if (avctx->profile == FF_PROFILE_HEVC_REXT) { > > + /* find the exact va_profile for HEVC_REXT */ > > + for (j = 0; j < FF_ARRAY_ELEMS(rext_format_map); j++) { > > + if (avctx->pix_fmt == rext_format_map[j].pix_fmt) > > + break; > > + } > > + if (vaapi_profile_map[i].va_profile != > rext_format_map[j].va_profile) > > + continue; > > + } > > + for (k = 0; k < profile_count; k++) { > > + if (vaapi_profile_map[i].va_profile == profile_list[k]) { > > exact_match = profile_match; > > break; > > } > > } > > - if (j < profile_count) { > > + if (k < profile_count) { > > matched_va_profile = vaapi_profile_map[i].va_profile; > > matched_ff_profile = vaapi_profile_map[i].codec_profile; > > if (exact_match) > > -- > > What intel platform supported HEVCMain422 or 444? Will be supported [ICE LAKE+]. _______________________________________________ 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".