diff options
author | jianfeng.zheng <ggjogh@gmail.com> | 2023-03-31 19:54:06 +0800 |
---|---|---|
committer | Haihao Xiang <haihao.xiang@intel.com> | 2023-04-17 15:11:22 +0800 |
commit | 1cd5a383d49f94b05699b234b0d3c98f2969b810 (patch) | |
tree | a46da859aea15b05a3eb21ddfabafa9412a88a4a | |
parent | b9ba036680b4164f6e415a85877dfa659ae4dde1 (diff) | |
download | ffmpeg-1cd5a383d49f94b05699b234b0d3c98f2969b810.tar.gz |
vaapi: support VAProfileH264High10 decoding
see https://github.com/intel/libva/pull/664
Signed-off-by: jianfeng.zheng <jianfeng.zheng@mthreads.com>
-rw-r--r-- | libavcodec/h264_slice.c | 9 | ||||
-rw-r--r-- | libavcodec/vaapi_decode.c | 5 |
2 files changed, 13 insertions, 1 deletions
diff --git a/libavcodec/h264_slice.c b/libavcodec/h264_slice.c index 7767e16cf1..d05b83a121 100644 --- a/libavcodec/h264_slice.c +++ b/libavcodec/h264_slice.c @@ -809,8 +809,15 @@ static enum AVPixelFormat get_pixel_format(H264Context *h, int force_callback) *fmt++ = AV_PIX_FMT_YUV444P10; } else if (CHROMA422(h)) *fmt++ = AV_PIX_FMT_YUV422P10; - else + else { +#if CONFIG_H264_VAAPI_HWACCEL + // Just add as candidate. Whether VAProfileH264High10 usable or + // not is decided by vaapi_decode_make_config() defined in FFmpeg + // and vaQueryCodingProfile() defined in libva. + *fmt++ = AV_PIX_FMT_VAAPI; +#endif *fmt++ = AV_PIX_FMT_YUV420P10; + } break; case 12: if (CHROMA444(h)) { diff --git a/libavcodec/vaapi_decode.c b/libavcodec/vaapi_decode.c index ab8c12e364..dd55cbd6f1 100644 --- a/libavcodec/vaapi_decode.c +++ b/libavcodec/vaapi_decode.c @@ -398,6 +398,11 @@ static const struct { MAP(MPEG4, MPEG4_ADVANCED_SIMPLE, MPEG4AdvancedSimple), MAP(MPEG4, MPEG4_MAIN, MPEG4Main ), +#if VA_CHECK_VERSION(1, 18, 0) + MAP(H264, H264_HIGH_10_INTRA, + H264High10 ), + MAP(H264, H264_HIGH_10, H264High10 ), +#endif MAP(H264, H264_CONSTRAINED_BASELINE, H264ConstrainedBaseline), MAP(H264, H264_MAIN, H264Main ), |