diff --git a/libavfilter/opencl.h b/libavfilter/opencl.h index 0b06232ade..973b6d82dd 100644 --- a/libavfilter/opencl.h +++ b/libavfilter/opencl.h @@ -73,6 +73,44 @@ typedef struct OpenCLFilterContext { goto fail; \ } \ } while(0) +/** + * release an OpenCL Kernel + */ +#define CL_RELEASE_KERNEL(k) \ +do { \ + if (k) { \ + cle = clReleaseKernel(k); \ + if (cle != CL_SUCCESS) \ + av_log(avctx, AV_LOG_ERROR, "Failed to release " \ + "OpenCL kernel: %d.\n", cle); \ + } \ +} while(0) + +/** + * release an OpenCL Memory Object + */ +#define CL_RELEASE_MEMORY(m) \ +do { \ + if (m) { \ + cle = clReleaseMemObject(m); \ + if (cle != CL_SUCCESS) \ + av_log(avctx, AV_LOG_ERROR, "Failed to release " \ + "OpenCL memory: %d.\n", cle); \ + } \ +} while(0) + +/** + * release an OpenCL Command Queue + */ +#define CL_RELEASE_QUEUE(q) \ +do { \ + if (q) { \ + cle = clReleaseCommandQueue(q); \ + if (cle != CL_SUCCESS) \ + av_log(avctx, AV_LOG_ERROR, "Failed to release " \ + "OpenCL command queue: %d.\n", cle); \ + } \ +} while(0) /** * Return that all inputs and outputs support only AV_PIX_FMT_OPENCL.