diff --git a/android/ffmpeg-kit-android-lib/src/main/cpp/ffmpegkit.c b/android/ffmpeg-kit-android-lib/src/main/cpp/ffmpegkit.c index 05169fd..0d7da37 100644 --- a/android/ffmpeg-kit-android-lib/src/main/cpp/ffmpegkit.c +++ b/android/ffmpeg-kit-android-lib/src/main/cpp/ffmpegkit.c @@ -120,6 +120,7 @@ JNINativeMethod configMethods[] = { {"getNativeLogLevel", "()I", (void*) Java_com_arthenica_ffmpegkit_FFmpegKitConfig_getNativeLogLevel}, {"getNativeFFmpegVersion", "()Ljava/lang/String;", (void*) Java_com_arthenica_ffmpegkit_FFmpegKitConfig_getNativeFFmpegVersion}, {"getNativeVersion", "()Ljava/lang/String;", (void*) Java_com_arthenica_ffmpegkit_FFmpegKitConfig_getNativeVersion}, + {"getNativePackageName", "()Ljava/lang/String;", (void*) Java_com_arthenica_ffmpegkit_FFmpegKitConfig_getNativePackageName}, {"nativeFFmpegExecute", "(J[Ljava/lang/String;)I", (void*) Java_com_arthenica_ffmpegkit_FFmpegKitConfig_nativeFFmpegExecute}, {"nativeFFmpegCancel", "(J)V", (void*) Java_com_arthenica_ffmpegkit_FFmpegKitConfig_nativeFFmpegCancel}, {"nativeFFprobeExecute", "(J[Ljava/lang/String;)I", (void*) Java_com_arthenica_ffmpegkit_FFmpegKitConfig_nativeFFprobeExecute}, @@ -663,7 +664,7 @@ jint JNI_OnLoad(JavaVM *vm, void *reserved) { return JNI_FALSE; } - if ((*env)->RegisterNatives(env, localConfigClass, configMethods, 14) < 0) { + if ((*env)->RegisterNatives(env, localConfigClass, configMethods, 15) < 0) { LOGE("OnLoad failed to RegisterNatives for class %s.\n", configClassName); return JNI_FALSE; } @@ -724,7 +725,7 @@ jint JNI_OnLoad(JavaVM *vm, void *reserved) { redirectionEnabled = 0; -#ifdef _USES_FFMPEG_KIT_PROTOCOLS +#ifdef USES_FFMPEG_KIT_PROTOCOLS av_set_saf_open(saf_open); av_set_saf_close(saf_close); #endif @@ -811,6 +812,21 @@ JNIEXPORT jstring JNICALL Java_com_arthenica_ffmpegkit_FFmpegKitConfig_getNative return (*env)->NewStringUTF(env, FFMPEG_KIT_VERSION); } +/** + * Returns the native FFmpegKit package name. + * + * @param env pointer to native method interface + * @param object reference to the class on which this method is invoked + * @return native FFmpegKit package name + */ +JNIEXPORT jstring JNICALL Java_com_arthenica_ffmpegkit_FFmpegKitConfig_getNativePackageName(JNIEnv *env, jclass object) { +#ifdef FFMPEG_KIT_PACKAGE + return (*env)->NewStringUTF(env, FFMPEG_KIT_PACKAGE); +#else + return (*env)->NewStringUTF(env, ""); +#endif +} + /** * Synchronously executes FFmpeg natively with arguments provided. * diff --git a/android/ffmpeg-kit-android-lib/src/main/cpp/ffmpegkit.h b/android/ffmpeg-kit-android-lib/src/main/cpp/ffmpegkit.h index dde9b19..b0dfc9c 100644 --- a/android/ffmpeg-kit-android-lib/src/main/cpp/ffmpegkit.h +++ b/android/ffmpeg-kit-android-lib/src/main/cpp/ffmpegkit.h @@ -89,6 +89,13 @@ JNIEXPORT jstring JNICALL Java_com_arthenica_ffmpegkit_FFmpegKitConfig_getNative */ JNIEXPORT jstring JNICALL Java_com_arthenica_ffmpegkit_FFmpegKitConfig_getNativeVersion(JNIEnv *, jclass); +/* + * Class: com_arthenica_ffmpegkit_FFmpegKitConfig + * Method: getNativePackageName + * Signature: ()Ljava/lang/String; + */ +JNIEXPORT jstring JNICALL Java_com_arthenica_ffmpegkit_FFmpegKitConfig_getNativePackageName(JNIEnv *, jclass); + /* * Class: com_arthenica_ffmpegkit_FFmpegKitConfig * Method: nativeFFmpegExecute diff --git a/android/ffmpeg-kit-android-lib/src/main/cpp/fftools_ffmpeg_demux.c b/android/ffmpeg-kit-android-lib/src/main/cpp/fftools_ffmpeg_demux.c index c80315a..5ad6014 100644 --- a/android/ffmpeg-kit-android-lib/src/main/cpp/fftools_ffmpeg_demux.c +++ b/android/ffmpeg-kit-android-lib/src/main/cpp/fftools_ffmpeg_demux.c @@ -987,7 +987,7 @@ int ifile_open(const OptionsContext *o, const char *filename) if (scan_all_pmts_set) av_dict_set(&o->g->format_opts, "scan_all_pmts", NULL, AV_DICT_MATCH_CASE); remove_avoptions(&o->g->format_opts, o->g->codec_opts); -#ifndef _USES_FFMPEG_KIT_PROTOCOLS +#ifndef USES_FFMPEG_KIT_PROTOCOLS assert_avoptions(o->g->format_opts); #endif diff --git a/android/ffmpeg-kit-android-lib/src/main/java/com/arthenica/ffmpegkit/FFmpegKitConfig.java b/android/ffmpeg-kit-android-lib/src/main/java/com/arthenica/ffmpegkit/FFmpegKitConfig.java index a927e2d..93efad7 100644 --- a/android/ffmpeg-kit-android-lib/src/main/java/com/arthenica/ffmpegkit/FFmpegKitConfig.java +++ b/android/ffmpeg-kit-android-lib/src/main/java/com/arthenica/ffmpegkit/FFmpegKitConfig.java @@ -1485,6 +1485,13 @@ public class FFmpegKitConfig { */ private native static String getNativeVersion(); + /** + *
Returns the native FFmpegKit package name. + * + * @return native FFmpegKit package name + */ + native static String getNativePackageName(); + /** *
Synchronously executes FFmpeg natively.
*
diff --git a/android/ffmpeg-kit-android-lib/src/main/java/com/arthenica/ffmpegkit/Packages.java b/android/ffmpeg-kit-android-lib/src/main/java/com/arthenica/ffmpegkit/Packages.java
index 70f9dea..582b307 100644
--- a/android/ffmpeg-kit-android-lib/src/main/java/com/arthenica/ffmpegkit/Packages.java
+++ b/android/ffmpeg-kit-android-lib/src/main/java/com/arthenica/ffmpegkit/Packages.java
@@ -74,6 +74,10 @@ public class Packages {
* @return predicted FFmpegKit binary package name
*/
public static String getPackageName() {
+ String nativePackageName = FFmpegKitConfig.getNativePackageName();
+ if (nativePackageName != null && !nativePackageName.isEmpty()) {
+ return nativePackageName;
+ }
final List