@ -473,6 +473,10 @@ mkdir -p contrib/${TARGET_TUPLE}/lib/pkgconfig
gen_pc_file EGL 1.1
gen_pc_file GLESv2 2
# Add vulkan.so even for older API
cp ${ANDROID_NDK}/platforms/android-24/arch-${PLATFORM_SHORT_ARCH}/usr/lib/libvulkan.so ${VLC_CONTRIB}/lib
gen_pc_file vulkan 1.1
cd contrib/contrib-android-${TARGET_TUPLE}
export USE_FFMPEG=1
@ -39,3 +39,9 @@ LOCAL_LDLIBS := \
-llog
LOCAL_CXXFLAGS := -std=c++11
include $(BUILD_SHARED_LIBRARY)
# vulkan: dummy lib to satisfy link dependency on older devices
include $(CLEAR_VARS)
LOCAL_MODULE := libvulkan
LOCAL_SRC_FILES := vulkan-dummy.c
@ -23,6 +23,7 @@ package org.videolan.libvlc;
import android.content.Context;
import android.util.Log;
import org.videolan.libvlc.util.AndroidUtil;
import org.videolan.libvlc.util.HWDecoderUtil;
import java.util.ArrayList;
@ -135,7 +136,30 @@ public class LibVLC extends VLCObject<LibVLC.Event> {
return;
sLoaded = true;
boolean vulkanLoaded = false;
if (AndroidUtil.isNougatOrLater) {
/* Load the real vulkan library from system path */
String searchPaths = System.getProperty("java.library.path");
if (searchPaths != null) {
String searchPathList[] = searchPaths.split(":");
for (String searchPath : searchPathList)
{
try {
System.load(searchPath + "/libvulkan.so");
vulkanLoaded = true;
} catch (Exception ignored) {
}
if (vulkanLoaded)
break;
if (!vulkanLoaded) {
/* Load our vulkan dummy libary in order to satify link dependency */
System.loadLibrary("vulkan");
System.loadLibrary("c++_shared");
System.loadLibrary("vlc");
System.loadLibrary("vlcjni");