aboutsummaryrefslogtreecommitdiffstats
path: root/libavcodec/videotoolbox.c
diff options
context:
space:
mode:
authorZhao Zhili <zhilizhao@tencent.com>2023-12-29 21:22:58 +0800
committerZhao Zhili <zhilizhao@tencent.com>2024-01-04 17:33:38 +0800
commit7f900a737f9592f93e7cc3be1bc9b45704371ecd (patch)
tree07999e16a7b8cbba5a47e3683c5d078a412a082c /libavcodec/videotoolbox.c
parent5d255ba95ad260146b27422b76e8d1c34a77af36 (diff)
downloadffmpeg-7f900a737f9592f93e7cc3be1bc9b45704371ecd.tar.gz
avcodec/videotoolbox: specify color range for hw frame ctx
Signed-off-by: Zhao Zhili <zhilizhao@tencent.com>
Diffstat (limited to 'libavcodec/videotoolbox.c')
-rw-r--r--libavcodec/videotoolbox.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/libavcodec/videotoolbox.c b/libavcodec/videotoolbox.c
index 43fd2e3fea..f2269766a2 100644
--- a/libavcodec/videotoolbox.c
+++ b/libavcodec/videotoolbox.c
@@ -549,6 +549,7 @@ static int videotoolbox_buffer_create(AVCodecContext *avctx, AVFrame *frame)
cached_frames->height != height) {
AVBufferRef *hw_frames_ctx = av_hwframe_ctx_alloc(cached_frames->device_ref);
AVHWFramesContext *hw_frames;
+ AVVTFramesContext *hw_ctx;
if (!hw_frames_ctx)
return AVERROR(ENOMEM);
@@ -557,6 +558,8 @@ static int videotoolbox_buffer_create(AVCodecContext *avctx, AVFrame *frame)
hw_frames->sw_format = sw_format;
hw_frames->width = width;
hw_frames->height = height;
+ hw_ctx = hw_frames->hwctx;
+ hw_ctx->color_range = avctx->color_range;
ret = av_hwframe_ctx_init(hw_frames_ctx);
if (ret < 0) {
@@ -1197,6 +1200,7 @@ int ff_videotoolbox_common_init(AVCodecContext *avctx)
{
VTContext *vtctx = avctx->internal->hwaccel_priv_data;
AVHWFramesContext *hw_frames;
+ AVVTFramesContext *hw_ctx;
int err;
bool full_range;
@@ -1232,6 +1236,8 @@ int ff_videotoolbox_common_init(AVCodecContext *avctx)
hw_frames->sw_format = videotoolbox_best_pixel_format(avctx);
hw_frames->width = avctx->width;
hw_frames->height = avctx->height;
+ hw_ctx = hw_frames->hwctx;
+ hw_ctx->color_range = avctx->color_range;
err = av_hwframe_ctx_init(avctx->hw_frames_ctx);
if (err < 0) {