Merge "MediaTranscodingService: Separate jni file into a sperate library."

This commit is contained in:
TreeHugger Robot
2020-04-27 20:20:31 +00:00
committed by Android (Google) Code Review
6 changed files with 101 additions and 28 deletions

View File

@@ -397,7 +397,7 @@ public final class MediaTranscodeManager {
}
static {
System.loadLibrary("media_jni");
System.loadLibrary("mediatranscodemanager_jni");
native_init();
}
}

View File

@@ -21,7 +21,6 @@ cc_library_shared {
"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 @@ cc_library_shared {
"-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",
],
}

View File

@@ -1453,7 +1453,6 @@ extern int register_android_media_MediaProfiles(JNIEnv *env);
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 @@ jint JNI_OnLoad(JavaVM* vm, void* /* reserved */)
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;

View File

@@ -100,3 +100,26 @@ int register_android_media_MediaTranscodeManager(JNIEnv *env) {
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;
}

View File

@@ -16,27 +16,29 @@
package com.android.mediaframeworktest;
import android.os.Bundle;
import android.test.InstrumentationTestRunner;
import android.test.InstrumentationTestSuite;
import com.android.mediaframeworktest.functional.CameraTest;
import com.android.mediaframeworktest.functional.MediaMetadataTest;
import com.android.mediaframeworktest.functional.MediaMimeTest;
import com.android.mediaframeworktest.functional.MediaPlayerInvokeTest;
import com.android.mediaframeworktest.functional.mediaplayback.MediaPlayerApiTest;
import com.android.mediaframeworktest.functional.mediarecorder.MediaRecorderTest;
import com.android.mediaframeworktest.functional.audio.SimTonesTest;
import com.android.mediaframeworktest.functional.audio.MediaAudioTrackTest;
import com.android.mediaframeworktest.functional.audio.MediaAudioManagerTest;
import com.android.mediaframeworktest.functional.MediaTranscodeManagerTest;
import com.android.mediaframeworktest.functional.audio.MediaAudioEffectTest;
import com.android.mediaframeworktest.functional.audio.MediaAudioManagerTest;
import com.android.mediaframeworktest.functional.audio.MediaAudioTrackTest;
import com.android.mediaframeworktest.functional.audio.MediaBassBoostTest;
import com.android.mediaframeworktest.functional.audio.MediaEnvReverbTest;
import com.android.mediaframeworktest.functional.audio.MediaEqualizerTest;
import com.android.mediaframeworktest.functional.audio.MediaPresetReverbTest;
import com.android.mediaframeworktest.functional.audio.MediaVirtualizerTest;
import com.android.mediaframeworktest.functional.audio.MediaVisualizerTest;
import junit.framework.TestSuite;
import com.android.mediaframeworktest.functional.audio.SimTonesTest;
import com.android.mediaframeworktest.functional.mediaplayback.MediaPlayerApiTest;
import com.android.mediaframeworktest.functional.mediarecorder.MediaRecorderTest;
import android.os.Bundle;
import android.test.InstrumentationTestRunner;
import android.test.InstrumentationTestSuite;
import junit.framework.TestSuite;
/**
@@ -69,6 +71,7 @@ public class MediaFrameworkTestRunner extends InstrumentationTestRunner {
suite.addTestSuite(MediaEnvReverbTest.class);
suite.addTestSuite(MediaEqualizerTest.class);
suite.addTestSuite(MediaPresetReverbTest.class);
suite.addTestSuite(MediaTranscodeManagerTest.class);
suite.addTestSuite(MediaVirtualizerTest.class);
suite.addTestSuite(MediaVisualizerTest.class);
return suite;

View File

@@ -14,32 +14,66 @@
* limitations under the License.
*/
package com.android.mediaframeworktest.functional.mediatranscodemanager;
package com.android.mediaframeworktest.functional;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertTrue;
import android.content.Context;
import android.media.MediaTranscodeManager;
import android.test.ActivityInstrumentationTestCase2;
import android.util.Log;
import androidx.test.core.app.ApplicationProvider;
import androidx.test.ext.junit.runners.AndroidJUnit4;
import com.android.mediaframeworktest.MediaFrameworkTest;
import org.junit.Test;
import org.junit.runner.RunWith;
import java.util.concurrent.Executor;
import java.util.concurrent.Executors;
import java.util.concurrent.Semaphore;
import java.util.concurrent.TimeUnit;
@RunWith(AndroidJUnit4.class)
public class MediaTranscodeManagerTest {
/*
* Functional tests for MediaTranscodeManager in the media framework.
*
* To run this test suite:
make frameworks/base/media/tests/MediaFrameworkTest
make mediaframeworktest
adb install -r out/target/product/dream/data/app/mediaframeworktest.apk
adb shell am instrument -e class \
com.android.mediaframeworktest.functional.MediaTranscodeManagerTest \
-w com.android.mediaframeworktest/.MediaFrameworkTestRunner
*
*/
public class MediaTranscodeManagerTest
extends ActivityInstrumentationTestCase2<MediaFrameworkTest> {
private static final String TAG = "MediaTranscodeManagerTest";
private Context mContext;
private MediaTranscodeManager mMediaTranscodeManager = null;
/** The time to wait for the transcode operation to complete before failing the test. */
private static final int TRANSCODE_TIMEOUT_SECONDS = 2;
public MediaTranscodeManagerTest() {
super("com.android.MediaTranscodeManagerTest", MediaFrameworkTest.class);
}
@Override
protected void setUp() throws Exception {
super.setUp();
mContext = getActivity();
mMediaTranscodeManager =
MediaTranscodeManager.getInstance(mContext);
assertNotNull(mMediaTranscodeManager);
}
@Override
protected void tearDown() throws Exception {
super.tearDown();
}
@Test
public void testMediaTranscodeManager() throws InterruptedException {
Log.d(TAG, "Starting: testMediaTranscodeManager");
@@ -49,12 +83,8 @@ public class MediaTranscodeManagerTest {
new MediaTranscodeManager.TranscodingRequest.Builder().build();
Executor listenerExecutor = Executors.newSingleThreadExecutor();
MediaTranscodeManager mediaTranscodeManager =
MediaTranscodeManager.getInstance(ApplicationProvider.getApplicationContext());
assertNotNull(mediaTranscodeManager);
MediaTranscodeManager.TranscodingJob job;
job = mediaTranscodeManager.enqueueTranscodingRequest(request, listenerExecutor,
job = mMediaTranscodeManager.enqueueTranscodingRequest(request, listenerExecutor,
transcodingJob -> {
Log.d(TAG, "Transcoding completed with result: " + transcodingJob.getResult());
transcodeCompleteSemaphore.release();