From 0d16b5fc389234d8c1bc61ac4afb7f5582ddd136 Mon Sep 17 00:00:00 2001 From: Maksim Shabunin Date: Tue, 15 Mar 2022 19:00:52 +0300 Subject: [PATCH] Fix libva dynamic loading --- modules/core/src/va_wrapper.impl.hpp | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/modules/core/src/va_wrapper.impl.hpp b/modules/core/src/va_wrapper.impl.hpp index 260d3ba49b..77faa984d0 100644 --- a/modules/core/src/va_wrapper.impl.hpp +++ b/modules/core/src/va_wrapper.impl.hpp @@ -15,18 +15,33 @@ typedef VAStatus (*FN_vaDestroyImage)(VADisplay dpy, VAImageID image); typedef VAStatus (*FN_vaMapBuffer)(VADisplay dpy, VABufferID buf_id, void **pbuf); typedef VAStatus (*FN_vaSyncSurface)(VADisplay dpy, VASurfaceID render_target); typedef VAStatus (*FN_vaUnmapBuffer)(VADisplay dpy, VABufferID buf_id); +typedef int (*FN_vaMaxNumImageFormats)(VADisplay dpy); +typedef VAStatus (*FN_vaQueryImageFormats)(VADisplay dpy, VAImageFormat *format_list, int *num_formats); +typedef VAStatus (*FN_vaCreateImage)(VADisplay dpy, VAImageFormat *format, int width, int height, VAImage *image); +typedef VAStatus (*FN_vaPutImage)(VADisplay dpy, VASurfaceID surface, VAImageID image, int src_x, int src_y, unsigned int src_width, unsigned int src_height, int dest_x, int dest_y, unsigned int dest_width, unsigned int dest_height); +typedef VAStatus (*FN_vaGetImage)(VADisplay dpy, VASurfaceID surface, int x, int y, unsigned int width, unsigned int height, VAImageID image); static FN_vaDeriveImage fn_vaDeriveImage = NULL; static FN_vaDestroyImage fn_vaDestroyImage = NULL; static FN_vaMapBuffer fn_vaMapBuffer = NULL; static FN_vaSyncSurface fn_vaSyncSurface = NULL; static FN_vaUnmapBuffer fn_vaUnmapBuffer = NULL; +static FN_vaMaxNumImageFormats fn_vaMaxNumImageFormats = NULL; +static FN_vaQueryImageFormats fn_vaQueryImageFormats = NULL; +static FN_vaCreateImage fn_vaCreateImage = NULL; +static FN_vaPutImage fn_vaPutImage = NULL; +static FN_vaGetImage fn_vaGetImage = NULL; #define vaDeriveImage fn_vaDeriveImage #define vaDestroyImage fn_vaDestroyImage #define vaMapBuffer fn_vaMapBuffer #define vaSyncSurface fn_vaSyncSurface #define vaUnmapBuffer fn_vaUnmapBuffer +#define vaMaxNumImageFormats fn_vaMaxNumImageFormats +#define vaQueryImageFormats fn_vaQueryImageFormats +#define vaCreateImage fn_vaCreateImage +#define vaPutImage fn_vaPutImage +#define vaGetImage fn_vaGetImage static std::shared_ptr loadLibVA() @@ -76,6 +91,11 @@ static void init_libva() VA_LOAD_SYMBOL(vaMapBuffer); VA_LOAD_SYMBOL(vaSyncSurface); VA_LOAD_SYMBOL(vaUnmapBuffer); + VA_LOAD_SYMBOL(vaMaxNumImageFormats); + VA_LOAD_SYMBOL(vaQueryImageFormats); + VA_LOAD_SYMBOL(vaCreateImage); + VA_LOAD_SYMBOL(vaPutImage); + VA_LOAD_SYMBOL(vaGetImage); initialized = true; } if (!library)