This project builds Android native replacements for desktop gdx-video library files:
libgdx-video-desktoparm64.solibgdx-video-desktoparm.so
The JNI surface is compatible with:
com.badlogic.gdx.video.VideoDecodercom.badlogic.gdx.video.FfMpeg
The core decoder implementation is ported from upstream gdx-video-desktop C++ code and linked against FFmpeg static libraries built for Android.
src/main/cpp/- Upstream decoder core (
VideoDecoder.*, threading utilities) - JNI bridge (
jni_bridge.cpp)
- Upstream decoder core (
third_party/ffmpeg/- FFmpeg source and per-ABI build outputs
scripts/build_ffmpeg_android.ps1- Builds FFmpeg static libs for Android ABIs
scripts/build_native_android.ps1- Builds gdx-video compatibility
.sousing Android NDK CMake
- Builds gdx-video compatibility
scripts/inject_into_modjar.ps1- Injects built
.sofiles into a mod jar root
- Injects built
- Windows PowerShell
- Android NDK (detected from
ANDROID_NDK_HOME/ SDK path) cmakein PATHbashin PATH (Git Bash is supported)gitin PATHjarin PATH (from JDK)
cd D:\Desktop\GdxVideoDesktopAndroidNative
.\scripts\build_ffmpeg_android.ps1Note: asm is disabled by default for NDK compatibility when linking static FFmpeg into shared .so.
Optional:
- Clean rebuild:
.\scripts\build_ffmpeg_android.ps1 -Clean- Re-enable asm (not recommended on this setup):
.\scripts\build_ffmpeg_android.ps1 -DisableAsm:$false.\scripts\build_native_android.ps1Outputs:
out\arm64-v8a\libgdx-video-desktoparm64.soout\armeabi-v7a\libgdx-video-desktoparm.so
.\scripts\inject_into_modjar.ps1 -ModJar "D:\path\to\your_mod.jar"Default output jar:
<original-name>.android-video.jar
If your runtime loader maps gdx-video-desktop to:
libgdx-video-desktoparm64.soonarm64libgdx-video-desktoparm.soonarmv7
then the mod can call desktop gdx-video APIs unchanged.
- This project targets Android-hosted JVM environments that run desktop STS mods.
- FFmpeg feature set is intentionally constrained to common STS mod formats:
- containers:
ogg,matroska/webm,mov/mp4 - decoders:
vorbis,opus,aac,vp8,vp9,theora,av1
- containers:
- If a mod uses additional codecs, extend
build_ffmpeg_android.ps1configure flags.