--- (Oops.)
libavfilter/vf_unsharp_opencl.c | 24 ++++++++++++++++++++---- 1 file changed, 20 insertions(+), 4 deletions(-) diff --git a/libavfilter/vf_unsharp_opencl.c b/libavfilter/vf_unsharp_opencl.c index 6a453c014b..3ee1b5b4ae 100644 --- a/libavfilter/vf_unsharp_opencl.c +++ b/libavfilter/vf_unsharp_opencl.c @@ -236,6 +236,7 @@ static int unsharp_opencl_filter_frame(AVFilterLink *inlink, AVFrame *input) size_t global_work[2]; size_t local_work[2]; cl_mem src, dst; + size_t plane_width, plane_height; int err, p; av_log(ctx, AV_LOG_DEBUG, "Filter input: %s, %ux%u (%"PRId64").\n", @@ -268,6 +269,21 @@ static int unsharp_opencl_filter_frame(AVFilterLink *inlink, AVFrame *input) if (!dst) break; + cle = clGetImageInfo(src, CL_IMAGE_WIDTH, + sizeof(plane_width), &plane_width, NULL); + if (cle != CL_SUCCESS) { + av_log(avctx, AV_LOG_ERROR, "Failed to get plane %d " + "width: %d.\n", p, cle); + goto fail; + } + cle = clGetImageInfo(src, CL_IMAGE_HEIGHT, + sizeof(plane_height), &plane_height, NULL); + if (cle != CL_SUCCESS) { + av_log(avctx, AV_LOG_ERROR, "Failed to get plane %d " + "height: %d.\n", p, cle); + goto fail; + } + cle = clSetKernelArg(ctx->kernel, 0, sizeof(cl_mem), &dst); if (cle != CL_SUCCESS) { av_log(avctx, AV_LOG_ERROR, "Failed to set kernel " @@ -321,11 +337,11 @@ static int unsharp_opencl_filter_frame(AVFilterLink *inlink, AVFrame *input) } if (ctx->global) { - global_work[0] = output->width; - global_work[1] = output->height; + global_work[0] = plane_width; + global_work[1] = plane_height; } else { - global_work[0] = FFALIGN(output->width, 16); - global_work[1] = FFALIGN(output->height, 16); + global_work[0] = FFALIGN(plane_width, 16); + global_work[1] = FFALIGN(plane_height, 16); local_work[0] = 16; local_work[1] = 16; } -- 2.16.1 _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel