summaryrefslogtreecommitdiffstats
path: root/media/tests
diff options
context:
space:
mode:
authorYu Shan Emily Lau <yslau@google.com>2010-05-25 17:44:46 -0700
committerAndroid Git Automerger <android-git-automerger@android.com>2010-05-25 17:44:46 -0700
commitf35ce7f8ee2d14b6cf0785fc671fcdfeeb1682cb (patch)
treebfd9407f1636d61ad1082b379b3e7fca6bc1d69c /media/tests
parentb35cd7dde521746401158fdc4f3324e6e53e095a (diff)
parent6e0967b3c4561e188df72f478baf16c6627b12be (diff)
downloadframeworks_base-f35ce7f8ee2d14b6cf0785fc671fcdfeeb1682cb.zip
frameworks_base-f35ce7f8ee2d14b6cf0785fc671fcdfeeb1682cb.tar.gz
frameworks_base-f35ce7f8ee2d14b6cf0785fc671fcdfeeb1682cb.tar.bz2
am 6e0967b3: am b0016e2b: Merge "Added the runtime parameters for the mediarecorder stress test. Set the total number of the stress loops of camera preview memory test to 200." into froyo
Merge commit '6e0967b3c4561e188df72f478baf16c6627b12be' into kraken * commit '6e0967b3c4561e188df72f478baf16c6627b12be': Added the runtime parameters for the mediarecorder stress test.
Diffstat (limited to 'media/tests')
-rwxr-xr-xmedia/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/MediaRecorderStressTestRunner.java59
-rw-r--r--media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/performance/MediaPlayerPerformance.java26
-rw-r--r--media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/stress/MediaRecorderStressTest.java61
3 files changed, 126 insertions, 20 deletions
diff --git a/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/MediaRecorderStressTestRunner.java b/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/MediaRecorderStressTestRunner.java
index ae9e102..3e46e27 100755
--- a/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/MediaRecorderStressTestRunner.java
+++ b/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/MediaRecorderStressTestRunner.java
@@ -16,6 +16,8 @@
package com.android.mediaframeworktest;
+import android.media.MediaRecorder;
+import android.os.Bundle;
import android.test.InstrumentationTestRunner;
import android.test.InstrumentationTestSuite;
import com.android.mediaframeworktest.stress.MediaRecorderStressTest;
@@ -25,6 +27,17 @@ import junit.framework.TestSuite;
public class MediaRecorderStressTestRunner extends InstrumentationTestRunner {
+ // Default recorder settings
+ public static int mIterations = 100;
+ public static int mVideoEncoder = MediaRecorder.VideoEncoder.H263;
+ public static int mAudioEncdoer = MediaRecorder.AudioEncoder.AMR_NB;
+ public static int mFrameRate = 20;
+ public static int mVideoWidth = 352;
+ public static int mVideoHeight = 288;
+ public static int mBitRate = 100;
+ public static boolean mRemoveVideo = true;
+ public static int mDuration = 10000;
+
@Override
public TestSuite getAllTests() {
TestSuite suite = new InstrumentationTestSuite(this);
@@ -37,4 +50,50 @@ public class MediaRecorderStressTestRunner extends InstrumentationTestRunner {
public ClassLoader getLoader() {
return MediaRecorderStressTestRunner.class.getClassLoader();
}
+
+ @Override
+ public void onCreate(Bundle icicle) {
+ super.onCreate(icicle);
+ String iterations = (String) icicle.get("iterations");
+ String video_encoder = (String) icicle.get("video_encoder");
+ String audio_encoder = (String) icicle.get("audio_encoder");
+ String frame_rate = (String) icicle.get("frame_rate");
+ String video_width = (String) icicle.get("video_width");
+ String video_height = (String) icicle.get("video_height");
+ String bit_rate = (String) icicle.get("bit_rate");
+ String record_duration = (String) icicle.get("record_duration");
+ String remove_videos = (String) icicle.get("remove_videos");
+
+ if (iterations != null ) {
+ mIterations = Integer.parseInt(iterations);
+ }
+ if ( video_encoder != null) {
+ mVideoEncoder = Integer.parseInt(video_encoder);
+ }
+ if ( audio_encoder != null) {
+ mAudioEncdoer = Integer.parseInt(audio_encoder);
+ }
+ if (frame_rate != null) {
+ mFrameRate = Integer.parseInt(frame_rate);
+ }
+ if (video_width != null) {
+ mVideoWidth = Integer.parseInt(video_width);
+ }
+ if (video_height != null) {
+ mVideoHeight = Integer.parseInt(video_height);
+ }
+ if (bit_rate != null) {
+ mBitRate = Integer.parseInt(bit_rate);
+ }
+ if (record_duration != null) {
+ mDuration = Integer.parseInt(record_duration);
+ }
+ if (remove_videos != null) {
+ if (remove_videos.compareTo("true") == 0) {
+ mRemoveVideo = true;
+ } else {
+ mRemoveVideo = false;
+ }
+ }
+ }
}
diff --git a/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/performance/MediaPlayerPerformance.java b/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/performance/MediaPlayerPerformance.java
index 2652281..a0ef905 100644
--- a/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/performance/MediaPlayerPerformance.java
+++ b/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/performance/MediaPlayerPerformance.java
@@ -237,18 +237,20 @@ public class MediaPlayerPerformance extends ActivityInstrumentationTestCase<Medi
}
public void stressCameraPreview() {
- try {
- initializeMessageLooper();
- mCamera.setPreviewCallback(mRawPreviewCallback);
- mSurfaceHolder = MediaFrameworkTest.mSurfaceView.getHolder();
- mCamera.setPreviewDisplay(mSurfaceHolder);
- mCamera.startPreview();
- waitForPreviewDone();
- Thread.sleep(1000);
- mCamera.stopPreview();
- terminateMessageLooper();
- } catch (Exception e) {
- Log.v(TAG, e.toString());
+ for (int i = 0; i < NUM_PLAYBACk_IN_EACH_LOOP; i++) {
+ try {
+ initializeMessageLooper();
+ mCamera.setPreviewCallback(mRawPreviewCallback);
+ mSurfaceHolder = MediaFrameworkTest.mSurfaceView.getHolder();
+ mCamera.setPreviewDisplay(mSurfaceHolder);
+ mCamera.startPreview();
+ waitForPreviewDone();
+ Thread.sleep(1000);
+ mCamera.stopPreview();
+ terminateMessageLooper();
+ } catch (Exception e) {
+ Log.v(TAG, e.toString());
+ }
}
}
diff --git a/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/stress/MediaRecorderStressTest.java b/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/stress/MediaRecorderStressTest.java
index b6a1bfa..e442c85 100644
--- a/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/stress/MediaRecorderStressTest.java
+++ b/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/stress/MediaRecorderStressTest.java
@@ -32,6 +32,7 @@ import android.test.ActivityInstrumentationTestCase2;
import android.test.suitebuilder.annotation.LargeTest;
import android.util.Log;
import android.view.SurfaceHolder;
+import com.android.mediaframeworktest.MediaRecorderStressTestRunner;
/**
* Junit / Instrumentation test case for the media player api
@@ -310,20 +311,51 @@ public class MediaRecorderStressTest extends ActivityInstrumentationTestCase2<Me
output.close();
}
+ public void validateRecordedVideo(String recorded_file) {
+ try {
+ MediaPlayer mp = new MediaPlayer();
+ mp.setDataSource(recorded_file);
+ mp.prepare();
+ int duration = mp.getDuration();
+ if (duration <= 0){
+ assertTrue("stressRecordAndPlayback", false);
+ }
+ } catch (Exception e) {
+ assertTrue("stressRecordAndPlayback", false);
+ }
+ }
+
+ public void removeRecodedVideo(String filename){
+ File video = new File(filename);
+ Log.v(TAG, "remove recorded video " + filename);
+ video.delete();
+ }
+
//Stress test case for record a video and play right away.
@LargeTest
public void testStressRecordVideoAndPlayback() throws Exception {
+ int iterations = MediaRecorderStressTestRunner.mIterations;
+ int video_encoder = MediaRecorderStressTestRunner.mVideoEncoder;
+ int audio_encoder = MediaRecorderStressTestRunner.mAudioEncdoer;
+ int frame_rate = MediaRecorderStressTestRunner.mFrameRate;
+ int video_width = MediaRecorderStressTestRunner.mVideoWidth;
+ int video_height = MediaRecorderStressTestRunner.mVideoHeight;
+ int bit_rate = MediaRecorderStressTestRunner.mBitRate;
+ boolean remove_video = MediaRecorderStressTestRunner.mRemoveVideo;
+ int record_duration = MediaRecorderStressTestRunner.mDuration;
+
String filename;
SurfaceHolder mSurfaceHolder;
mSurfaceHolder = MediaFrameworkTest.mSurfaceView.getHolder();
File stressOutFile = new File(MEDIA_STRESS_OUTPUT);
- Writer output = new BufferedWriter(new FileWriter(stressOutFile, true));
+ Writer output = new BufferedWriter(
+ new FileWriter(stressOutFile, true));
output.write("Video record and play back stress test:\n");
output.write("Total number of loops:"
+ NUMBER_OF_RECORDERANDPLAY_STRESS_LOOPS + "\n");
try {
output.write("No of loop: ");
- for (int i = 0; i < NUMBER_OF_RECORDERANDPLAY_STRESS_LOOPS; i++){
+ for (int i = 0; i < iterations; i++){
filename = OUTPUT_FILE + i + OUTPUT_FILE_EXT;
Log.v(TAG, filename);
synchronized (recorderlock) {
@@ -334,20 +366,29 @@ public class MediaRecorderStressTest extends ActivityInstrumentationTestCase2<Me
Log.v(TAG, "wait was interrupted.");
}
}
+ Log.v(TAG, "iterations : " + iterations);
+ Log.v(TAG, "video_encoder : " + video_encoder);
+ Log.v(TAG, "audio_encoder : " + audio_encoder);
+ Log.v(TAG, "frame_rate : " + frame_rate);
+ Log.v(TAG, "video_width : " + video_width);
+ Log.v(TAG, "video_height : " + video_height);
+ Log.v(TAG, "bit rate : " + bit_rate);
+ Log.v(TAG, "record_duration : " + record_duration);
+
mRecorder.setOnErrorListener(mRecorderErrorCallback);
mRecorder.setVideoSource(MediaRecorder.VideoSource.CAMERA);
mRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);
mRecorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);
mRecorder.setOutputFile(filename);
- mRecorder.setVideoFrameRate(20);
- mRecorder.setVideoSize(352,288);
- mRecorder.setVideoEncoder(MediaRecorder.VideoEncoder.H263);
- mRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
+ mRecorder.setVideoFrameRate(frame_rate);
+ mRecorder.setVideoSize(video_width, video_height);
+ mRecorder.setVideoEncoder(video_encoder);
+ mRecorder.setAudioEncoder(audio_encoder);
Log.v(TAG, "mediaRecorder setPreview");
mRecorder.setPreviewDisplay(mSurfaceHolder.getSurface());
mRecorder.prepare();
mRecorder.start();
- Thread.sleep(WAIT_TIME_RECORD);
+ Thread.sleep(record_duration);
Log.v(TAG, "Before stop");
mRecorder.stop();
terminateRecorderMessageLooper();
@@ -357,8 +398,12 @@ public class MediaRecorderStressTest extends ActivityInstrumentationTestCase2<Me
mp.setDisplay(MediaFrameworkTest.mSurfaceView.getHolder());
mp.prepare();
mp.start();
- Thread.sleep(WAIT_TIME_PLAYBACK);
+ Thread.sleep(record_duration);
mp.release();
+ validateRecordedVideo(filename);
+ if (remove_video) {
+ removeRecodedVideo(filename);
+ }
output.write(", " + i);
}
} catch (Exception e) {