FFmpeg
|
OpenCL wrapper. More...
Go to the source code of this file.
Data Structures | |
struct | AVOpenCLDeviceNode |
struct | AVOpenCLPlatformNode |
struct | AVOpenCLDeviceList |
struct | AVOpenCLKernelEnv |
struct | AVOpenCLExternalEnv |
Macros | |
#define | AV_OPENCL_KERNEL(...) # __VA_ARGS__ |
#define | AV_OPENCL_MAX_KERNEL_NAME_SIZE 150 |
#define | AV_OPENCL_MAX_DEVICE_NAME_SIZE 100 |
#define | AV_OPENCL_MAX_PLATFORM_NAME_SIZE 100 |
Functions | |
int | av_opencl_get_device_list (AVOpenCLDeviceList **device_list) |
Get OpenCL device list. More... | |
void | av_opencl_free_device_list (AVOpenCLDeviceList **device_list) |
Free OpenCL device list. More... | |
int | av_opencl_set_option (const char *key, const char *val) |
Set option in the global OpenCL context. More... | |
int | av_opencl_get_option (const char *key, uint8_t **out_val) |
Get option value from the global OpenCL context. More... | |
void | av_opencl_free_option (void) |
Free option values of the global OpenCL context. More... | |
AVOpenCLExternalEnv * | av_opencl_alloc_external_env (void) |
Allocate OpenCL external environment. More... | |
void | av_opencl_free_external_env (AVOpenCLExternalEnv **ext_opencl_env) |
Free OpenCL external environment. More... | |
int | av_opencl_register_kernel_code (const char *kernel_code) |
Register kernel code. More... | |
int | av_opencl_init (AVOpenCLExternalEnv *ext_opencl_env) |
Initialize the run time OpenCL environment and compile the kernel code registered with av_opencl_register_kernel_code(). More... | |
int | av_opencl_create_kernel (AVOpenCLKernelEnv *env, const char *kernel_name) |
Create kernel object in the specified kernel environment. More... | |
int | av_opencl_buffer_create (cl_mem *cl_buf, size_t cl_buf_size, int flags, void *host_ptr) |
Create OpenCL buffer. More... | |
int | av_opencl_buffer_write (cl_mem dst_cl_buf, uint8_t *src_buf, size_t buf_size) |
Write OpenCL buffer with data from src_buf. More... | |
int | av_opencl_buffer_read (uint8_t *dst_buf, cl_mem src_cl_buf, size_t buf_size) |
Read data from OpenCL buffer to memory buffer. More... | |
int | av_opencl_buffer_write_image (cl_mem dst_cl_buf, size_t cl_buffer_size, int dst_cl_offset, uint8_t **src_data, int *plane_size, int plane_num) |
Write image data from memory to OpenCL buffer. More... | |
int | av_opencl_buffer_read_image (uint8_t **dst_data, int *plane_size, int plane_num, cl_mem src_cl_buf, size_t cl_buffer_size) |
Read image data from OpenCL buffer. More... | |
void | av_opencl_buffer_release (cl_mem *cl_buf) |
Release OpenCL buffer. More... | |
void | av_opencl_release_kernel (AVOpenCLKernelEnv *env) |
Release kernel object. More... | |
void | av_opencl_uninit (void) |
Release OpenCL environment. More... | |
Detailed Description
OpenCL wrapper.
This interface is considered still experimental and its API and ABI may change without prior notice.
Definition in file opencl.h.
Macro Definition Documentation
#define AV_OPENCL_MAX_KERNEL_NAME_SIZE 150 |
Definition at line 40 of file opencl.h.
Referenced by av_opencl_create_kernel().
Function Documentation
AVOpenCLExternalEnv* av_opencl_alloc_external_env | ( | void | ) |
Allocate OpenCL external environment.
It must be freed with av_opencl_free_external_env().
- Returns
- pointer to allocated OpenCL external environment
int av_opencl_buffer_create | ( | cl_mem * | cl_buf, |
size_t | cl_buf_size, | ||
int | flags, | ||
void * | host_ptr | ||
) |
Create OpenCL buffer.
The buffer is used to save the data used or created by an OpenCL kernel. The created buffer must be released with av_opencl_buffer_release().
See clCreateBuffer() function reference for more information about the parameters.
- Parameters
-
cl_buf pointer to OpenCL buffer cl_buf_size size in bytes of the OpenCL buffer to create flags flags used to control buffer attributes host_ptr host pointer of the OpenCL buffer
- Returns
- >=0 on success, a negative error code in case of failure
Definition at line 672 of file opencl.c.
Referenced by ff_opencl_deshake_init(), and ff_opencl_deshake_process_inout_buf().
int av_opencl_buffer_read | ( | uint8_t * | dst_buf, |
cl_mem | src_cl_buf, | ||
size_t | buf_size | ||
) |
Read data from OpenCL buffer to memory buffer.
- Parameters
-
dst_buf pointer to destination buffer (CPU memory) src_cl_buf pointer to source OpenCL buffer buf_size size in bytes of the source and destination buffers
- Returns
- >=0 on success, a negative error code in case of failure
int av_opencl_buffer_read_image | ( | uint8_t ** | dst_data, |
int * | plane_size, | ||
int | plane_num, | ||
cl_mem | src_cl_buf, | ||
size_t | cl_buffer_size | ||
) |
Read image data from OpenCL buffer.
- Parameters
-
dst_data array of pointers to destination plane buffers dst_plane_sizes array of pointers to destination plane buffers dst_plane_num number of destination image planes src_cl_buf pointer to source OpenCL buffer src_cl_buf_size size in bytes of OpenCL buffer
- Returns
- >=0 on success, a negative error code in case of failure
Definition at line 783 of file opencl.c.
Referenced by ff_opencl_transform().
void av_opencl_buffer_release | ( | cl_mem * | cl_buf | ) |
Release OpenCL buffer.
- Parameters
-
cl_buf pointer to OpenCL buffer to release, which was previously filled with av_opencl_buffer_create()
Definition at line 683 of file opencl.c.
Referenced by ff_opencl_deshake_uninit().
int av_opencl_buffer_write | ( | cl_mem | dst_cl_buf, |
uint8_t * | src_buf, | ||
size_t | buf_size | ||
) |
Write OpenCL buffer with data from src_buf.
- Parameters
-
dst_cl_buf pointer to OpenCL destination buffer src_buf pointer to source buffer buf_size size in bytes of the source and destination buffers
- Returns
- >=0 on success, a negative error code in case of failure
Definition at line 696 of file opencl.c.
Referenced by ff_opencl_transform().
int av_opencl_buffer_write_image | ( | cl_mem | dst_cl_buf, |
size_t | cl_buffer_size, | ||
int | dst_cl_offset, | ||
uint8_t ** | src_data, | ||
int * | plane_size, | ||
int | plane_num | ||
) |
Write image data from memory to OpenCL buffer.
The source must be an array of pointers to image plane buffers.
- Parameters
-
dst_cl_buf pointer to destination OpenCL buffer dst_cl_buf_size size in bytes of OpenCL buffer dst_cl_buf_offset the offset of the OpenCL buffer start position src_data array of pointers to source plane buffers src_plane_sizes array of sizes in bytes of the source plane buffers src_plane_num number of source image planes
- Returns
- >=0 on success, a negative error code in case of failure
Definition at line 742 of file opencl.c.
Referenced by ff_opencl_deshake_process_inout_buf().
int av_opencl_create_kernel | ( | AVOpenCLKernelEnv * | env, |
const char * | kernel_name | ||
) |
Create kernel object in the specified kernel environment.
- Parameters
-
env pointer to kernel environment which is filled with the environment used to run the kernel kernel_name kernel function name
- Returns
- >=0 on success, a negative error code in case of failure
Definition at line 390 of file opencl.c.
Referenced by ff_opencl_deshake_init().
void av_opencl_free_device_list | ( | AVOpenCLDeviceList ** | device_list | ) |
Free OpenCL device list.
- Parameters
-
device_list pointer to OpenCL environment device list created by av_opencl_get_device_list()
void av_opencl_free_external_env | ( | AVOpenCLExternalEnv ** | ext_opencl_env | ) |
Free OpenCL external environment.
- Parameters
-
ext_opencl_env pointer to OpenCL external environment created by av_opencl_alloc_external_env()
int av_opencl_get_device_list | ( | AVOpenCLDeviceList ** | device_list | ) |
Get OpenCL device list.
It must be freed with av_opencl_free_device_list().
- Parameters
-
device_list pointer to OpenCL environment device list, should be released by av_opencl_free_device_list()
- Returns
- >=0 on success, a negative error code in case of failure
int av_opencl_get_option | ( | const char * | key, |
uint8_t ** | out_val | ||
) |
Get option value from the global OpenCL context.
- Parameters
-
key option key out_val pointer to location where option value will be written, must be freed with av_freep()
- Returns
- >=0 on success, a negative error code in case of failure
- See also
- av_opencl_set_option()
int av_opencl_init | ( | AVOpenCLExternalEnv * | ext_opencl_env | ) |
Initialize the run time OpenCL environment and compile the kernel code registered with av_opencl_register_kernel_code().
- Parameters
-
ext_opencl_env external OpenCL environment, created by an application program, ignored if set to NULL
- Returns
- >=0 on success, a negative error code in case of failure
Definition at line 600 of file opencl.c.
Referenced by ff_opencl_deshake_init().
int av_opencl_register_kernel_code | ( | const char * | kernel_code | ) |
Register kernel code.
The registered kernel code is stored in a global context, and compiled in the runtime environment when av_opencl_init() is called.
- Parameters
-
kernel_code kernel code to be compiled in the OpenCL runtime environment
- Returns
- >=0 on success, a negative error code in case of failure
void av_opencl_release_kernel | ( | AVOpenCLKernelEnv * | env | ) |
Release kernel object.
- Parameters
-
env kernel environment where the kernel object was created with av_opencl_create_kernel()
Definition at line 432 of file opencl.c.
Referenced by ff_opencl_deshake_uninit().
int av_opencl_set_option | ( | const char * | key, |
const char * | val | ||
) |
Set option in the global OpenCL context.
This options affect the operation performed by the next av_opencl_init() operation.
The currently accepted options are:
- build_options: set options to compile registered kernels code
- platform: set index of platform in device list
- device: set index of device in device list
See reference "OpenCL Specification Version: 1.2 chapter 5.6.4".
- Parameters
-
key option key val option value
- Returns
- >=0 on success, a negative error code in case of failure
- See also
- av_opencl_get_option()
Definition at line 320 of file opencl.c.
Referenced by opt_timelimit().
Release OpenCL environment.
The OpenCL environment is effectively released only if all the created kernels had been released with av_opencl_release_kernel().
Definition at line 629 of file opencl.c.
Referenced by ff_opencl_deshake_uninit().
Generated on Mon Nov 18 2024 06:52:08 for FFmpeg by 1.8.11