Skip to content

android: split some JNI tables and function into convenience library

android_utils depends on GLES2_LIBS and EGL_LIBS, but it isn't forwarded correctly from the convenience library. In particlar, it contains mostly video-related code, and some helpers for the android environment state, which is why the non-video code is using the utils library.

Move the code in a separate convenience library so that it can be imported without constraints.

In addition, DynamicsProcessing is used by android/device.c, by audiotrack and by aaudio and a common vtable is needed as well as the matching JNI helpers to use the vtable.

The vtable is currently stored in the audiotrack vtable, which is available in the other plugins in static build. But it leads to undefined reference errors when compiling a dynamic build of libvlc for android.

Split the code handling this vtable in a separate convenience library to address this, which is then linked to every other targets.

Since convenience libraries are playing a different role than static libraries, and are not linked but merged into the final objects that will be part of the library output (shared or archive), the symbols are then available to each of the plugins.

Draft because I still need more test in static and dynamic builds and checks to ensure I didn't break anything.

Merge request reports