[FFmpeg-devel] [PATCH v5 1/2] vaapi: support VAProfileH264High10 decoding
jianfeng.zheng
ggjogh at gmail.com
Fri Mar 31 14:54:06 EEST 2023
see https://github.com/intel/libva/pull/664
Signed-off-by: jianfeng.zheng <jianfeng.zheng at mthreads.com>
---
libavcodec/h264_slice.c | 9 ++++++++-
libavcodec/vaapi_decode.c | 5 +++++
2 files changed, 13 insertions(+), 1 deletion(-)
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 ),
--
2.25.1
More information about the ffmpeg-devel
mailing list