MediaTranscodingService: Separate jni file into a sperate library.

This is needed when we move MediaTranscodeManager into apex.
Also rework the MediaTranscodeManager test so it could be invoked with
instrument.

Bug: 145628554
Test: MediaTranscodeManagerTest.
Change-Id: If0572af30d3aa7b7189ea0fc89582b83dd0d5d35
diff --git a/media/jni/Android.bp b/media/jni/Android.bp
index d2294b3..7518496 100644
--- a/media/jni/Android.bp
+++ b/media/jni/Android.bp
@@ -21,7 +21,6 @@
         "android_media_MediaProfiles.cpp",
         "android_media_MediaRecorder.cpp",
         "android_media_MediaSync.cpp",
-        "android_media_MediaTranscodeManager.cpp",
         "android_media_ResampleInputStream.cpp",
         "android_media_Streams.cpp",
         "android_media_SyncParams.cpp",
@@ -166,3 +165,27 @@
         "-Wunreachable-code",
     ],
 }
+
+cc_library_shared {
+    name: "libmediatranscodemanager_jni",
+    srcs: [
+        "android_media_MediaTranscodeManager.cpp",
+    ],
+
+    shared_libs: [
+        "libandroid_runtime",
+        "libcutils",
+        "liblog",
+        "libmedia",
+    ],
+
+    export_include_dirs: ["."],
+
+    cflags: [
+        "-Wall",
+        "-Werror",
+        "-Wno-error=deprecated-declarations",
+        "-Wunused",
+        "-Wunreachable-code",
+    ],
+}
diff --git a/media/jni/android_media_MediaPlayer.cpp b/media/jni/android_media_MediaPlayer.cpp
index 5cb42a9a..963b650 100644
--- a/media/jni/android_media_MediaPlayer.cpp
+++ b/media/jni/android_media_MediaPlayer.cpp
@@ -1453,7 +1453,6 @@
 extern int register_android_mtp_MtpDatabase(JNIEnv *env);
 extern int register_android_mtp_MtpDevice(JNIEnv *env);
 extern int register_android_mtp_MtpServer(JNIEnv *env);
-extern int register_android_media_MediaTranscodeManager(JNIEnv *env);
 
 jint JNI_OnLoad(JavaVM* vm, void* /* reserved */)
 {
@@ -1566,11 +1565,6 @@
         goto bail;
     }
 
-    if (register_android_media_MediaTranscodeManager(env) < 0) {
-        ALOGE("ERROR: MediaTranscodeManager native registration failed");
-        goto bail;
-    }
-
     /* success -- return valid version number */
     result = JNI_VERSION_1_4;
 
diff --git a/media/jni/android_media_MediaTranscodeManager.cpp b/media/jni/android_media_MediaTranscodeManager.cpp
index 0b4048c..6695f85 100644
--- a/media/jni/android_media_MediaTranscodeManager.cpp
+++ b/media/jni/android_media_MediaTranscodeManager.cpp
@@ -100,3 +100,26 @@
     return AndroidRuntime::registerNativeMethods(env,
                 "android/media/MediaTranscodeManager", gMethods, NELEM(gMethods));
 }
+
+jint JNI_OnLoad(JavaVM* vm, void* /* reserved */)
+{
+    JNIEnv* env = NULL;
+    jint result = -1;
+
+    if (vm->GetEnv((void**) &env, JNI_VERSION_1_4) != JNI_OK) {
+        ALOGE("ERROR: GetEnv failed\n");
+        return result;
+    }
+    assert(env != NULL);
+
+    if (register_android_media_MediaTranscodeManager(env) < 0) {
+        ALOGE("ERROR: MediaTranscodeManager native registration failed");
+        goto bail;
+    }
+
+    /* success -- return valid version number */
+    result = JNI_VERSION_1_4;
+
+bail:
+    return result;
+}