[FFmpeg-devel] [PATCH V2 1/2] lavfi/opencl: add more opencl helper macro

Mark Thompson sw at jkqxz.net
Wed Apr 17 00:24:56 EEST 2019


On 12/04/2019 16:09, Ruiling Song wrote:
> Signed-off-by: Ruiling Song <ruiling.song at intel.com>
> ---
>  libavfilter/opencl.h | 38 ++++++++++++++++++++++++++++++++++++++
>  1 file changed, 38 insertions(+)
> 
> diff --git a/libavfilter/opencl.h b/libavfilter/opencl.h
> index 0b06232ade..0fa5b49d3f 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 "  \
> +                   "cl command queue: %d.\n", cle);           \
> +    }                                                         \
> +} while(0)
>  
>  /**
>   * Return that all inputs and outputs support only AV_PIX_FMT_OPENCL.
> 

LGTM.

Thanks,

- Mark


More information about the ffmpeg-devel mailing list