diff options
author | highgod0401 <highgod0401@gmail.com> | 2013-04-11 08:01:53 +0800 |
---|---|---|
committer | Michael Niedermayer <michaelni@gmx.at> | 2013-04-11 03:48:57 +0200 |
commit | db2de94e95c2095a781892ad7a3d472d952652a8 (patch) | |
tree | 5bcd86271cce21117ceae30cff01b80276abdc67 /libavutil/opencl.h | |
parent | 3a3d984445f0e49e692f712ebb51a4b7e6bb006c (diff) | |
download | ffmpeg-db2de94e95c2095a781892ad7a3d472d952652a8.tar.gz |
avutil/opencl: add opencl device list APIs 20130411
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Diffstat (limited to 'libavutil/opencl.h')
-rw-r--r-- | libavutil/opencl.h | 43 |
1 files changed, 42 insertions, 1 deletions
diff --git a/libavutil/opencl.h b/libavutil/opencl.h index 6ebde1023b..bcb25ed8be 100644 --- a/libavutil/opencl.h +++ b/libavutil/opencl.h @@ -39,6 +39,28 @@ #define AV_OPENCL_MAX_KERNEL_NAME_SIZE 150 +#define AV_OPENCL_MAX_DEVICE_NAME_SIZE 100 + +#define AV_OPENCL_MAX_PLATFORM_NAME_SIZE 100 + +typedef struct { + int device_type; + char device_name[AV_OPENCL_MAX_DEVICE_NAME_SIZE]; + cl_device_id device_id; +} AVOpenCLDeviceNode; + +typedef struct { + cl_platform_id platform_id; + char platform_name[AV_OPENCL_MAX_PLATFORM_NAME_SIZE]; + int device_num; + AVOpenCLDeviceNode **device_node; +} AVOpenCLPlatformNode; + +typedef struct { + int platform_num; + AVOpenCLPlatformNode **platform_node; +} AVOpenCLDeviceList; + typedef struct { cl_command_queue command_queue; cl_kernel kernel; @@ -49,13 +71,32 @@ typedef struct { cl_platform_id platform_id; cl_device_type device_type; cl_context context; - cl_device_id *device_ids; cl_device_id device_id; cl_command_queue command_queue; char *platform_name; } AVOpenCLExternalEnv; /** + * Get OpenCL device list. + * + * It must be freed with av_opencl_free_device_list(). + * + * @param device_list pointer to OpenCL environment device list, + * should be released by av_opencl_free_device_list() + * + * @return >=0 on success, a negative error code in case of failure + */ +int av_opencl_get_device_list(AVOpenCLDeviceList **device_list); + +/** + * Free OpenCL device list. + * + * @param device_list pointer to OpenCL environment device list + * created by av_opencl_get_device_list() + */ +void av_opencl_free_device_list(AVOpenCLDeviceList **device_list); + +/** * Allocate OpenCL external environment. * * It must be freed with av_opencl_free_external_env(). |