|
|
|
@@ -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. |
|
|
|
|