summaryrefslogtreecommitdiff
path: root/libavcodec/qsvenc.c
diff options
context:
space:
mode:
authorWenbin Chen <wenbin.chen-at-intel.com@ffmpeg.org>2022-02-18 13:50:12 +0800
committerHaihao Xiang <haihao.xiang@intel.com>2022-02-22 14:48:29 +0800
commit9da19c290960e976d9da42b5ee92f887a74dc8a5 (patch)
tree5de8a2c222c7f3437f9b85973031254d6e203f24 /libavcodec/qsvenc.c
parentb1c26ce9fe4da93e4ca4108a32f478ded7cfd428 (diff)
downloadffmpeg-9da19c290960e976d9da42b5ee92f887a74dc8a5.tar.gz
libavcodec/qsvenc_hevc: encode RGB format rawvideo
Add support for hevc_qsv to input RGB format frame. It will transform frame to yuv inside MediaSDK instead of using auto scale. Now hevc_qsv supports directly encoding BGRA and X2RGB10 format. The X2RGB10 correspond to the A2RGB20 format and BGRA correspond to RGB4 format in MediaSDK. Signed-off-by: Wenbin Chen <wenbin.chen@intel.com> Signed-off-by: Haihao Xiang <haihao.xiang@intel.com>
Diffstat (limited to 'libavcodec/qsvenc.c')
-rw-r--r--libavcodec/qsvenc.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/libavcodec/qsvenc.c b/libavcodec/qsvenc.c
index 07be4287b7..40d60cde3c 100644
--- a/libavcodec/qsvenc.c
+++ b/libavcodec/qsvenc.c
@@ -1616,6 +1616,14 @@ static int submit_frame(QSVEncContext *q, const AVFrame *frame,
qf->surface.Data.V = qf->surface.Data.UV + 2;
break;
+ case AV_PIX_FMT_X2RGB10:
+ case AV_PIX_FMT_BGRA:
+ qf->surface.Data.B = qf->frame->data[0];
+ qf->surface.Data.G = qf->frame->data[0] + 1;
+ qf->surface.Data.R = qf->frame->data[0] + 2;
+ qf->surface.Data.A = qf->frame->data[0] + 3;
+ break;
+
default:
/* should not reach here */
av_assert0(0);