Merge "MediaTranscodingService: Separate jni file into a sperate library."
This commit is contained in:
committed by
Android (Google) Code Review
commit
66e55af6f8
@@ -397,7 +397,7 @@ public final class MediaTranscodeManager {
|
||||
}
|
||||
|
||||
static {
|
||||
System.loadLibrary("media_jni");
|
||||
System.loadLibrary("mediatranscodemanager_jni");
|
||||
native_init();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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",
|
||||
],
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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();
|
||||
|
||||
Reference in New Issue
Block a user