summaryrefslogtreecommitdiff
path: root/libavutil
diff options
context:
space:
mode:
Diffstat (limited to 'libavutil')
-rw-r--r--libavutil/hwcontext_opencl.c38
1 files changed, 21 insertions, 17 deletions
diff --git a/libavutil/hwcontext_opencl.c b/libavutil/hwcontext_opencl.c
index a089e32107..95f811463e 100644
--- a/libavutil/hwcontext_opencl.c
+++ b/libavutil/hwcontext_opencl.c
@@ -143,6 +143,11 @@ typedef struct OpenCLDeviceContext {
} OpenCLDeviceContext;
typedef struct OpenCLFramesContext {
+ /**
+ * The public AVOpenCLFramesContext. See hwcontext_opencl.h for it.
+ */
+ AVOpenCLFramesContext p;
+
// Command queue used for transfer/mapping operations on this frames
// context. If the user supplies one, this is a reference to it.
// Otherwise, it is a reference to the default command queue for the
@@ -1700,9 +1705,9 @@ fail:
static int opencl_frames_init_command_queue(AVHWFramesContext *hwfc)
{
- AVOpenCLFramesContext *hwctx = hwfc->hwctx;
+ OpenCLFramesContext *priv = hwfc->hwctx;
+ AVOpenCLFramesContext *hwctx = &priv->p;
OpenCLDeviceContext *devpriv = hwfc->device_ctx->hwctx;
- OpenCLFramesContext *priv = hwfc->internal->priv;
cl_int cle;
priv->command_queue = hwctx->command_queue ? hwctx->command_queue
@@ -1732,7 +1737,7 @@ static int opencl_frames_init(AVHWFramesContext *hwfc)
static void opencl_frames_uninit(AVHWFramesContext *hwfc)
{
- OpenCLFramesContext *priv = hwfc->internal->priv;
+ OpenCLFramesContext *priv = hwfc->hwctx;
cl_int cle;
#if HAVE_OPENCL_DXVA2 || HAVE_OPENCL_D3D11
@@ -1826,7 +1831,7 @@ static int opencl_wait_events(AVHWFramesContext *hwfc,
static int opencl_transfer_data_from(AVHWFramesContext *hwfc,
AVFrame *dst, const AVFrame *src)
{
- OpenCLFramesContext *priv = hwfc->internal->priv;
+ OpenCLFramesContext *priv = hwfc->hwctx;
cl_image_format image_format;
cl_image_desc image_desc;
cl_int cle;
@@ -1881,7 +1886,7 @@ static int opencl_transfer_data_from(AVHWFramesContext *hwfc,
static int opencl_transfer_data_to(AVHWFramesContext *hwfc,
AVFrame *dst, const AVFrame *src)
{
- OpenCLFramesContext *priv = hwfc->internal->priv;
+ OpenCLFramesContext *priv = hwfc->hwctx;
cl_image_format image_format;
cl_image_desc image_desc;
cl_int cle;
@@ -1943,7 +1948,7 @@ typedef struct OpenCLMapping {
static void opencl_unmap_frame(AVHWFramesContext *hwfc,
HWMapDescriptor *hwmap)
{
- OpenCLFramesContext *priv = hwfc->internal->priv;
+ OpenCLFramesContext *priv = hwfc->hwctx;
OpenCLMapping *map = hwmap->priv;
cl_event events[AV_NUM_DATA_POINTERS];
int p, e;
@@ -1972,7 +1977,7 @@ static void opencl_unmap_frame(AVHWFramesContext *hwfc,
static int opencl_map_frame(AVHWFramesContext *hwfc, AVFrame *dst,
const AVFrame *src, int flags)
{
- OpenCLFramesContext *priv = hwfc->internal->priv;
+ OpenCLFramesContext *priv = hwfc->hwctx;
cl_map_flags map_flags;
cl_image_format image_format;
cl_image_desc image_desc;
@@ -2229,7 +2234,7 @@ static void opencl_unmap_from_qsv(AVHWFramesContext *dst_fc,
{
AVOpenCLFrameDescriptor *desc = hwmap->priv;
OpenCLDeviceContext *device_priv = dst_fc->device_ctx->hwctx;
- OpenCLFramesContext *frames_priv = dst_fc->internal->priv;
+ OpenCLFramesContext *frames_priv = dst_fc->hwctx;
cl_event event;
cl_int cle;
int p;
@@ -2265,7 +2270,7 @@ static int opencl_map_from_qsv(AVHWFramesContext *dst_fc, AVFrame *dst,
(AVHWFramesContext*)src->hw_frames_ctx->data;
OpenCLDeviceContext *device_priv = dst_fc->device_ctx->hwctx;
AVOpenCLDeviceContext *dst_dev = &device_priv->p;
- OpenCLFramesContext *frames_priv = dst_fc->internal->priv;
+ OpenCLFramesContext *frames_priv = dst_fc->hwctx;
AVOpenCLFrameDescriptor *desc;
VASurfaceID va_surface;
cl_mem_flags cl_flags;
@@ -2363,7 +2368,7 @@ static void opencl_unmap_from_dxva2(AVHWFramesContext *dst_fc,
{
AVOpenCLFrameDescriptor *desc = hwmap->priv;
OpenCLDeviceContext *device_priv = dst_fc->device_ctx->hwctx;
- OpenCLFramesContext *frames_priv = dst_fc->internal->priv;
+ OpenCLFramesContext *frames_priv = dst_fc->hwctx;
cl_event event;
cl_int cle;
@@ -2388,7 +2393,7 @@ static int opencl_map_from_dxva2(AVHWFramesContext *dst_fc, AVFrame *dst,
(AVHWFramesContext*)src->hw_frames_ctx->data;
AVDXVA2FramesContext *src_hwctx = src_fc->hwctx;
OpenCLDeviceContext *device_priv = dst_fc->device_ctx->hwctx;
- OpenCLFramesContext *frames_priv = dst_fc->internal->priv;
+ OpenCLFramesContext *frames_priv = dst_fc->hwctx;
AVOpenCLFrameDescriptor *desc;
cl_event event;
cl_int cle;
@@ -2451,7 +2456,7 @@ static int opencl_frames_derive_from_dxva2(AVHWFramesContext *dst_fc,
AVDXVA2FramesContext *src_hwctx = src_fc->hwctx;
OpenCLDeviceContext *device_priv = dst_fc->device_ctx->hwctx;
AVOpenCLDeviceContext *dst_dev = &device_priv->p;
- OpenCLFramesContext *frames_priv = dst_fc->internal->priv;
+ OpenCLFramesContext *frames_priv = dst_fc->hwctx;
cl_mem_flags cl_flags;
cl_int cle;
int err, i, p, nb_planes;
@@ -2528,7 +2533,7 @@ static void opencl_unmap_from_d3d11(AVHWFramesContext *dst_fc,
{
AVOpenCLFrameDescriptor *desc = hwmap->priv;
OpenCLDeviceContext *device_priv = dst_fc->device_ctx->hwctx;
- OpenCLFramesContext *frames_priv = dst_fc->internal->priv;
+ OpenCLFramesContext *frames_priv = dst_fc->hwctx;
cl_event event;
cl_int cle;
@@ -2547,7 +2552,7 @@ static int opencl_map_from_d3d11(AVHWFramesContext *dst_fc, AVFrame *dst,
const AVFrame *src, int flags)
{
OpenCLDeviceContext *device_priv = dst_fc->device_ctx->hwctx;
- OpenCLFramesContext *frames_priv = dst_fc->internal->priv;
+ OpenCLFramesContext *frames_priv = dst_fc->hwctx;
AVOpenCLFrameDescriptor *desc;
cl_event event;
cl_int cle;
@@ -2607,7 +2612,7 @@ static int opencl_frames_derive_from_d3d11(AVHWFramesContext *dst_fc,
AVD3D11VAFramesContext *src_hwctx = src_fc->hwctx;
OpenCLDeviceContext *device_priv = dst_fc->device_ctx->hwctx;
AVOpenCLDeviceContext *dst_dev = &device_priv->p;
- OpenCLFramesContext *frames_priv = dst_fc->internal->priv;
+ OpenCLFramesContext *frames_priv = dst_fc->hwctx;
cl_mem_flags cl_flags;
cl_int cle;
int err, i, p, nb_planes;
@@ -3036,8 +3041,7 @@ const HWContextType ff_hwcontext_type_opencl = {
.name = "OpenCL",
.device_hwctx_size = sizeof(OpenCLDeviceContext),
- .frames_hwctx_size = sizeof(AVOpenCLFramesContext),
- .frames_priv_size = sizeof(OpenCLFramesContext),
+ .frames_hwctx_size = sizeof(OpenCLFramesContext),
.device_create = &opencl_device_create,
.device_derive = &opencl_device_derive,