#include <mfx/mfxstructures.h>
#endif
#include <va/va.h>
-#include <CL/va_ext.h>
+#include <CL/cl_va_api_media_sharing_intel.h>
#include "hwcontext_vaapi.h"
#endif
#endif
static int opencl_device_derive(AVHWDeviceContext *hwdev,
- AVHWDeviceContext *src_ctx,
+ AVHWDeviceContext *src_ctx, AVDictionary *opts,
int flags)
{
int err;
// Surface mapping works via DRM PRIME fds with no special
// initialisation required in advance. This just finds the
// Beignet ICD by name.
- AVDictionary *opts = NULL;
+ AVDictionary *selector_opts = NULL;
- err = av_dict_set(&opts, "platform_vendor", "Intel", 0);
+ err = av_dict_set(&selector_opts, "platform_vendor", "Intel", 0);
if (err >= 0)
- err = av_dict_set(&opts, "platform_version", "beignet", 0);
+ err = av_dict_set(&selector_opts, "platform_version", "beignet", 0);
if (err >= 0) {
OpenCLDeviceSelector selector = {
.platform_index = -1,
.device_index = 0,
- .context = opts,
+ .context = selector_opts,
.enumerate_platforms = &opencl_enumerate_platforms,
.filter_platform = &opencl_filter_platform,
.enumerate_devices = &opencl_enumerate_devices,
};
err = opencl_device_create_internal(hwdev, &selector, NULL);
}
- av_dict_free(&opts);
+ av_dict_free(&selector_opts);
}
break;
#endif
// from the same component.
if (step && comp->step != step)
return AVERROR(EINVAL);
- order = order * 10 + c + 1;
+
depth = comp->depth;
+ order = order * 10 + comp->offset / ((depth + 7) / 8) + 1;
step = comp->step;
alpha = (desc->flags & AV_PIX_FMT_FLAG_ALPHA &&
c == desc->nb_components - 1);
case order: image_format->image_channel_order = type; break;
switch (order) {
CHANNEL_ORDER(1, CL_R);
- CHANNEL_ORDER(2, CL_R);
- CHANNEL_ORDER(3, CL_R);
- CHANNEL_ORDER(4, CL_R);
CHANNEL_ORDER(12, CL_RG);
- CHANNEL_ORDER(23, CL_RG);
CHANNEL_ORDER(1234, CL_RGBA);
+ CHANNEL_ORDER(2341, CL_ARGB);
CHANNEL_ORDER(3214, CL_BGRA);
- CHANNEL_ORDER(4123, CL_ARGB);
#ifdef CL_ABGR
CHANNEL_ORDER(4321, CL_ABGR);
#endif
av_free(desc);
}
-static AVBufferRef *opencl_pool_alloc(void *opaque, int size)
+static AVBufferRef *opencl_pool_alloc(void *opaque, size_t size)
{
AVHWFramesContext *hwfc = opaque;
AVOpenCLDeviceContext *hwctx = hwfc->device_ctx->hwctx;