From fc8e5d027372c41b9b6b38bc4c16ed3302334be7 Mon Sep 17 00:00:00 2001 From: Jaroslav Kysela Date: Sun, 3 Sep 2017 19:27:13 +0200 Subject: [PATCH] transcode: vaapi - remove depedency on libdrm --- configure | 1 - src/transcoding/codec/codecs/libs/vaapi.c | 28 +++++++++++++++++++---- 2 files changed, 23 insertions(+), 6 deletions(-) diff --git a/configure b/configure index 40a2fec77..231df2347 100755 --- a/configure +++ b/configure @@ -591,7 +591,6 @@ if enabled_or_auto vaapi; then check_pkg libva-drm ">=0.38.0" || die "libva-drm not found" enable vaapi enable hwaccels - check_cc_header "libdrm/drm" libdrm_h elif enabled vaapi; then die "vaapi (Video Acceleration (VA) API for Linux) not found" fi diff --git a/src/transcoding/codec/codecs/libs/vaapi.c b/src/transcoding/codec/codecs/libs/vaapi.c index 48f849173..3d4fc022b 100644 --- a/src/transcoding/codec/codecs/libs/vaapi.c +++ b/src/transcoding/codec/codecs/libs/vaapi.c @@ -21,11 +21,6 @@ #include "transcoding/codec/internals.h" #include #include -#if ENABLE_LIBDRM_H -#include -#else -#include -#endif #define AV_DICT_SET_QP(d, v, a) \ @@ -40,6 +35,29 @@ typedef struct { int quality; } tvh_codec_profile_vaapi_t; +#if defined(__linux__) +#include +#include +#else +#include +#include +typedef size_t __kernel_size_t; +#endif + +typedef struct drm_version { + int version_major; /**< Major version */ + int version_minor; /**< Minor version */ + int version_patchlevel; /**< Patch level */ + __kernel_size_t name_len; /**< Length of name buffer */ + char *name; /**< Name of driver */ + __kernel_size_t date_len; /**< Length of date buffer */ + char *date; /**< User-space buffer to hold date */ + __kernel_size_t desc_len; /**< Length of desc buffer */ + char *desc; /**< User-space buffer to hold desc */ +} drm_version_t; + +#define DRM_IOCTL_VERSION _IOWR('d', 0x00, struct drm_version) + static int probe_vaapi_device(const char *device, char *name, size_t namelen) -- 2.47.3