vf_avgblur_opencl: Don't run kernel on pixels outside the image

The output frame size is larger than the image containing a subsampled
plane - use the actual size of the image being written rather than the
dimensions of the intended output frame.

Reviewed-by: Dylan Fernando <dylanf123@gmail.com>
This commit is contained in:
Mark Thompson 2018-03-24 13:56:16 +00:00
parent 9f17875134
commit 213839edff

View File

@ -170,8 +170,10 @@ static int avgblur_opencl_filter_frame(AVFilterLink *inlink, AVFrame *input)
goto fail;
}
global_work[0] = output->width;
global_work[1] = output->height;
err = ff_opencl_filter_work_size_from_image(avctx, global_work,
intermediate, p, 0);
if (err < 0)
goto fail;
av_log(avctx, AV_LOG_DEBUG, "Run kernel on plane %d "
"(%"SIZE_SPECIFIER"x%"SIZE_SPECIFIER").\n",
@ -206,8 +208,10 @@ static int avgblur_opencl_filter_frame(AVFilterLink *inlink, AVFrame *input)
goto fail;
}
global_work[0] = output->width;
global_work[1] = output->height;
err = ff_opencl_filter_work_size_from_image(avctx, global_work,
output, p, 0);
if (err < 0)
goto fail;
av_log(avctx, AV_LOG_DEBUG, "Run kernel on plane %d "
"(%"SIZE_SPECIFIER"x%"SIZE_SPECIFIER").\n",