OSDN Git Service

Include and link against libva
authorJaap Jan Meijer <jjmeijer88@gmail.com>
Mon, 4 Jul 2016 17:14:30 +0000 (19:14 +0200)
committerChih-Wei Huang <cwhuang@linux.org.tw>
Wed, 7 Jun 2017 15:42:30 +0000 (23:42 +0800)
Change-Id: Iba7201ddafbd637d229f0d03b81fb56fc4d3f863

libavcodec/Android.mk
libavutil/Android.mk
libavutil/hwcontext_vaapi.c

index 2216a77..9efeb36 100644 (file)
@@ -14,12 +14,14 @@ FFMPEG_MULTILIB := 32
 include $(LOCAL_PATH)/../android/build.mk
 
 LOCAL_C_INCLUDES +=            \
-       external/zlib
+       external/zlib \
+       $(TARGET_OUT_HEADERS)/libva
 
 LOCAL_SHARED_LIBRARIES +=      \
        libz \
        libavutil \
-       libswresample
+       libswresample \
+       libva
 
 ifneq ($(ARCH_ARM_HAVE_NEON),)
   LOCAL_SRC_FILES += neon/mpegvideo.c
@@ -35,12 +37,14 @@ FFMPEG_MULTILIB := 64
 include $(LOCAL_PATH)/../android/build.mk
 
 LOCAL_C_INCLUDES +=            \
-       external/zlib
+       external/zlib \
+       $(TARGET_OUT_HEADERS)/libva
 
 LOCAL_SHARED_LIBRARIES +=      \
        libz \
        libavutil \
-       libswresample
+       libswresample \
+       libva
 
 ifneq ($(ARCH_ARM_HAVE_NEON),)
   LOCAL_SRC_FILES += neon/mpegvideo.c
index 22c509f..73116e2 100644 (file)
@@ -13,6 +13,13 @@ LOCAL_PATH := $(call my-dir)
 FFMPEG_MULTILIB := 32
 include $(LOCAL_PATH)/../android/build.mk
 
+LOCAL_C_INCLUDES +=            \
+       $(TARGET_OUT_HEADERS)/libva
+
+LOCAL_SHARED_LIBRARIES +=      \
+       libva \
+       libva-android \
+
 LOCAL_MULTILIB := $(FFMPEG_MULTILIB)
 
 include $(BUILD_SHARED_LIBRARY)
@@ -22,6 +29,13 @@ include $(BUILD_SHARED_LIBRARY)
 FFMPEG_MULTILIB := 64
 include $(LOCAL_PATH)/../android/build.mk
 
+LOCAL_C_INCLUDES +=            \
+       $(TARGET_OUT_HEADERS)/libva
+
+LOCAL_SHARED_LIBRARIES +=      \
+       libva \
+       libva-android \
+
 LOCAL_MULTILIB := $(FFMPEG_MULTILIB)
 
 include $(BUILD_SHARED_LIBRARY)
index 3b50e95..b24ebc9 100644 (file)
@@ -24,6 +24,9 @@
 #if HAVE_VAAPI_DRM
 #   include <va/va_drm.h>
 #endif
+#if HAVE_VAAPI_ANDROID
+#   include <va/va_android.h>
+#endif
 
 #include <fcntl.h>
 #if HAVE_UNISTD_H
@@ -968,6 +971,22 @@ static int vaapi_device_create(AVHWDeviceContext *ctx, const char *device,
     }
 #endif
 
+#if HAVE_VAAPI_ANDROID
+    if (!display) {
+        int mDisplay;
+        mDisplay = 0x18C34078;
+        display = vaGetDisplay(&mDisplay);
+        if (!display) {
+            av_log(ctx, AV_LOG_ERROR, "Cannot open a VA display "
+                   "from Android device %s.\n", device);
+            return AVERROR_UNKNOWN;
+        }
+
+        av_log(ctx, AV_LOG_VERBOSE, "Opened VA display via "
+               "Android device %s.\n", device);
+    }
+#endif
+
     if (!display) {
         av_log(ctx, AV_LOG_ERROR, "No VA display found for "
                "device: %s.\n", device ? device : "");