summaryrefslogtreecommitdiff
path: root/libavcodec/videotoolbox.c
diff options
context:
space:
mode:
authorRodger Combs <rodger.combs@gmail.com>2019-09-06 22:31:06 -0500
committerAman Gupta <aman@tmm1.net>2019-09-15 11:13:29 -0700
commit77937a42e7127271bd50d7f8035c3ebd5a1047c5 (patch)
treee3b9acb2096807e0cf999cbee538ebf208623cad /libavcodec/videotoolbox.c
parent81abf90aeae6ab88e820b664df4ea011b345b725 (diff)
lavc/videotoolboxdec: fix crop handling when multithreaded
This was partially fixed by 233cd89, but it made changes to AVFrame fields from within end_frame, which doesn't work consistently when multithreading is enabled. This is what the post_process function is for. Signed-off-by: Aman Gupta <aman@tmm1.net>
Diffstat (limited to 'libavcodec/videotoolbox.c')
-rw-r--r--libavcodec/videotoolbox.c10
1 files changed, 5 insertions, 5 deletions
diff --git a/libavcodec/videotoolbox.c b/libavcodec/videotoolbox.c
index 67e5b54932..e9b3370169 100644
--- a/libavcodec/videotoolbox.c
+++ b/libavcodec/videotoolbox.c
@@ -91,6 +91,11 @@ static int videotoolbox_postproc_frame(void *avctx, AVFrame *frame)
return AVERROR_EXTERNAL;
}
+ frame->crop_right = 0;
+ frame->crop_left = 0;
+ frame->crop_top = 0;
+ frame->crop_bottom = 0;
+
frame->data[3] = (uint8_t*)ref->pixbuf;
if (ref->hw_frames_ctx) {
@@ -898,11 +903,6 @@ static int videotoolbox_common_end_frame(AVCodecContext *avctx, AVFrame *frame)
AVVideotoolboxContext *videotoolbox = videotoolbox_get_context(avctx);
VTContext *vtctx = avctx->internal->hwaccel_priv_data;
- frame->crop_right = 0;
- frame->crop_left = 0;
- frame->crop_top = 0;
- frame->crop_bottom = 0;
-
if (vtctx->reconfig_needed == true) {
vtctx->reconfig_needed = false;
av_log(avctx, AV_LOG_VERBOSE, "VideoToolbox decoder needs reconfig, restarting..\n");