#endif
#if HAVE_OPENCL_VAAPI_INTEL_MEDIA
+#if CONFIG_LIBMFX
#include <mfx/mfxstructures.h>
+#endif
#include <va/va.h>
#include <CL/va_ext.h>
#include "hwcontext_vaapi.h"
} OpenCLFramesContext;
-static void opencl_error_callback(const char *errinfo,
- const void *private_info, size_t cb,
- void *user_data)
+static void CL_CALLBACK opencl_error_callback(const char *errinfo,
+ const void *private_info,
+ size_t cb,
+ void *user_data)
{
AVHWDeviceContext *ctx = user_data;
av_log(ctx, AV_LOG_ERROR, "OpenCL error: %s\n", errinfo);
clGetDeviceIDsFromVA_APIMediaAdapterINTEL_fn
clGetDeviceIDsFromVA_APIMediaAdapterINTEL;
cl_int cle;
- int err;
clGetDeviceIDsFromVA_APIMediaAdapterINTEL =
clGetExtensionFunctionAddressForPlatform(platform_id,
break;
}
- if (err < 0)
- return err;
-
- return opencl_device_init(hwdev);
+ return err;
}
static int opencl_get_plane_format(enum AVPixelFormat pixfmt,
AVFrame *dst, const AVFrame *src,
int flags)
{
- HWMapDescriptor *hwmap;
AVFrame *tmp;
int err;
if (err < 0)
goto fail;
- // Adjust the map descriptor so that unmap works correctly.
- hwmap = (HWMapDescriptor*)dst->buf[0]->data;
- av_frame_unref(hwmap->source);
- err = av_frame_ref(hwmap->source, src);
+ err = ff_hwframe_map_replace(dst, src);
fail:
av_frame_free(&tmp);
cl_int cle;
int err, p;
+#if CONFIG_LIBMFX
if (src->format == AV_PIX_FMT_QSV) {
mfxFrameSurface1 *mfx_surface = (mfxFrameSurface1*)src->data[3];
va_surface = *(VASurfaceID*)mfx_surface->Data.MemId;
- } else if (src->format == AV_PIX_FMT_VAAPI) {
+ } else
+#endif
+ if (src->format == AV_PIX_FMT_VAAPI) {
va_surface = (VASurfaceID)(uintptr_t)src->data[3];
} else {
return AVERROR(ENOSYS);
static int opencl_map_to(AVHWFramesContext *hwfc, AVFrame *dst,
const AVFrame *src, int flags)
{
- OpenCLDeviceContext *priv = hwfc->device_ctx->internal->priv;
+ av_unused OpenCLDeviceContext *priv = hwfc->device_ctx->internal->priv;
av_assert0(dst->format == AV_PIX_FMT_OPENCL);
switch (src->format) {
#if HAVE_OPENCL_DRM_BEIGNET
static int opencl_frames_derive_to(AVHWFramesContext *dst_fc,
AVHWFramesContext *src_fc, int flags)
{
- OpenCLDeviceContext *priv = dst_fc->device_ctx->internal->priv;
+ av_unused OpenCLDeviceContext *priv = dst_fc->device_ctx->internal->priv;
switch (src_fc->device_ctx->type) {
#if HAVE_OPENCL_DRM_BEIGNET
case AV_HWDEVICE_TYPE_DRM: