#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
*device_name_src = NULL;
int err, found, p, d;
+ av_assert0(selector->enumerate_platforms &&
+ selector->enumerate_devices);
+
err = selector->enumerate_platforms(hwdev, &nb_platforms, &platforms,
selector->context);
if (err)
continue;
}
- err = opencl_enumerate_devices(hwdev, platforms[p], platform_name,
- &nb_devices, &devices,
- selector->context);
+ err = selector->enumerate_devices(hwdev, platforms[p], platform_name,
+ &nb_devices, &devices,
+ selector->context);
if (err < 0)
continue;
// 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_freep(&priv->mapped_frames);
#endif
- cle = clReleaseCommandQueue(priv->command_queue);
- if (cle != CL_SUCCESS) {
- av_log(hwfc, AV_LOG_ERROR, "Failed to release frame "
- "command queue: %d.\n", cle);
+ if (priv->command_queue) {
+ cle = clReleaseCommandQueue(priv->command_queue);
+ if (cle != CL_SUCCESS) {
+ av_log(hwfc, AV_LOG_ERROR, "Failed to release frame "
+ "command queue: %d.\n", cle);
+ }
+ priv->command_queue = NULL;
}
}