Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit f734abe9 authored by Android (Google) Code Review's avatar Android (Google) Code Review
Browse files

Merge change 9510

* changes:
  Untangle MediaPlayer, MediaRecorder, MediaScanner and MediaMetadataRetriever JNI code, so that creating one of those doesn't initialize all the others. Shaves a hundred milliseconds or so off music app startup time.
parents f6d1a552 4935d05e
Loading
Loading
Loading
Loading
+3 −1
Original line number Diff line number Diff line
@@ -35,6 +35,7 @@ public class MediaMetadataRetriever
{
    static {
        System.loadLibrary("media_jni");
        native_init();
    }

    // The field below is accessed by native methods
@@ -212,6 +213,7 @@ public class MediaMetadataRetriever
     */
    public native void release();
    private native void native_setup();
    private static native void native_init();

    private native final void native_finalize();

+2 −0
Original line number Diff line number Diff line
@@ -466,6 +466,7 @@ public class MediaPlayer

    static {
        System.loadLibrary("media_jni");
        native_init();
    }

    private final static String TAG = "MediaPlayer";
@@ -1109,6 +1110,7 @@ public class MediaPlayer
     */
    private native final int native_setMetadataFilter(Parcel request);

    private static native final void native_init();
    private native final void native_setup(Object mediaplayer_this);
    private native final void native_finalize();

+3 −0
Original line number Diff line number Diff line
@@ -57,6 +57,7 @@ public class MediaRecorder
{
    static {
        System.loadLibrary("media_jni");
        native_init();
    }
    private final static String TAG = "MediaRecorder";

@@ -655,6 +656,8 @@ public class MediaRecorder
     */
    public native void release();

    private static native final void native_init();

    private native final void native_setup(Object mediarecorder_this) throws IllegalStateException;

    private native final void native_finalize();
+2 −0
Original line number Diff line number Diff line
@@ -99,6 +99,7 @@ public class MediaScanner
{
    static {
        System.loadLibrary("media_jni");
        native_init();
    }

    private final static String TAG = "MediaScanner";
@@ -1404,6 +1405,7 @@ public class MediaScanner

    public native byte[] extractAlbumArt(FileDescriptor fd);

    private static native final void native_init();
    private native final void native_setup();
    private native final void native_finalize();
    @Override
+0 −7
Original line number Diff line number Diff line
@@ -169,13 +169,6 @@ static JNINativeMethod gMethods[] = {
int register_android_media_AmrInputStream(JNIEnv *env)
{
    const char* const kClassPathName = "android/media/AmrInputStream";
    jclass clazz;

    clazz = env->FindClass(kClassPathName);
    if (clazz == NULL) {
        LOGE("Can't find %s", kClassPathName);
        return -1;
    }

    return AndroidRuntime::registerNativeMethods(env,
            kClassPathName, gMethods, NELEM(gMethods));
Loading