MediaRecorderStressTestRunner.java revision 55c1ad99949a6011e82528adf0fc6fa162ab0fcd
19066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* 29066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Copyright (C) 2009 The Android Open Source Project 39066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 49066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Licensed under the Apache License, Version 2.0 (the "License"); 59066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * you may not use this file except in compliance with the License. 69066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * You may obtain a copy of the License at 79066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 89066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * http://www.apache.org/licenses/LICENSE-2.0 99066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Unless required by applicable law or agreed to in writing, software 119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * distributed under the License is distributed on an "AS IS" BASIS, 129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * See the License for the specific language governing permissions and 149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * limitations under the License. 159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectpackage com.android.mediaframeworktest; 189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1955c1ad99949a6011e82528adf0fc6fa162ab0fcdYu Shan Emily Lauimport android.media.EncoderCapabilities.AudioEncoderCap; 2055c1ad99949a6011e82528adf0fc6fa162ab0fcdYu Shan Emily Lauimport android.media.EncoderCapabilities.VideoEncoderCap; 2148584d7b8f5e56b73bb13180bf6546b2647c1b28Yu Shan Emily Lauimport android.media.MediaRecorder; 2248584d7b8f5e56b73bb13180bf6546b2647c1b28Yu Shan Emily Lauimport android.os.Bundle; 239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.test.InstrumentationTestRunner; 249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.test.InstrumentationTestSuite; 255d386a1ae28084626f2e207add4be6912db033ceYu Shan Emily Lauimport com.android.mediaframeworktest.stress.MediaRecorderStressTest; 269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 2755c1ad99949a6011e82528adf0fc6fa162ab0fcdYu Shan Emily Lauimport java.util.List; 289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport junit.framework.TestSuite; 299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectpublic class MediaRecorderStressTestRunner extends InstrumentationTestRunner { 319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 3255c1ad99949a6011e82528adf0fc6fa162ab0fcdYu Shan Emily Lau public static List<VideoEncoderCap> videoEncoders = MediaProfileReader.getVideoEncoders(); 3355c1ad99949a6011e82528adf0fc6fa162ab0fcdYu Shan Emily Lau public static List<AudioEncoderCap> audioEncoders = MediaProfileReader.getAudioEncoders(); 3455c1ad99949a6011e82528adf0fc6fa162ab0fcdYu Shan Emily Lau 3555c1ad99949a6011e82528adf0fc6fa162ab0fcdYu Shan Emily Lau //Get the first capability as the default 3655c1ad99949a6011e82528adf0fc6fa162ab0fcdYu Shan Emily Lau public static VideoEncoderCap videoEncoder = videoEncoders.get(0); 3755c1ad99949a6011e82528adf0fc6fa162ab0fcdYu Shan Emily Lau public static AudioEncoderCap audioEncoder = audioEncoders.get(0); 3855c1ad99949a6011e82528adf0fc6fa162ab0fcdYu Shan Emily Lau 3948584d7b8f5e56b73bb13180bf6546b2647c1b28Yu Shan Emily Lau public static int mIterations = 100; 4055c1ad99949a6011e82528adf0fc6fa162ab0fcdYu Shan Emily Lau public static int mVideoEncoder = videoEncoder.mCodec; 4155c1ad99949a6011e82528adf0fc6fa162ab0fcdYu Shan Emily Lau public static int mAudioEncdoer = audioEncoder.mCodec; 4255c1ad99949a6011e82528adf0fc6fa162ab0fcdYu Shan Emily Lau public static int mFrameRate = videoEncoder.mMaxFrameRate; 4355c1ad99949a6011e82528adf0fc6fa162ab0fcdYu Shan Emily Lau public static int mVideoWidth = videoEncoder.mMaxFrameWidth; 4455c1ad99949a6011e82528adf0fc6fa162ab0fcdYu Shan Emily Lau public static int mVideoHeight = videoEncoder.mMaxFrameHeight; 4555c1ad99949a6011e82528adf0fc6fa162ab0fcdYu Shan Emily Lau public static int mBitRate = audioEncoder.mMaxBitRate; 4648584d7b8f5e56b73bb13180bf6546b2647c1b28Yu Shan Emily Lau public static boolean mRemoveVideo = true; 4748584d7b8f5e56b73bb13180bf6546b2647c1b28Yu Shan Emily Lau public static int mDuration = 10000; 4848584d7b8f5e56b73bb13180bf6546b2647c1b28Yu Shan Emily Lau 499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project @Override 509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public TestSuite getAllTests() { 519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project TestSuite suite = new InstrumentationTestSuite(this); 529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project suite.addTestSuite(MediaRecorderStressTest.class); 539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return suite; 549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project @Override 579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public ClassLoader getLoader() { 589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return MediaRecorderStressTestRunner.class.getClassLoader(); 599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 6048584d7b8f5e56b73bb13180bf6546b2647c1b28Yu Shan Emily Lau 6148584d7b8f5e56b73bb13180bf6546b2647c1b28Yu Shan Emily Lau @Override 6248584d7b8f5e56b73bb13180bf6546b2647c1b28Yu Shan Emily Lau public void onCreate(Bundle icicle) { 6348584d7b8f5e56b73bb13180bf6546b2647c1b28Yu Shan Emily Lau super.onCreate(icicle); 6448584d7b8f5e56b73bb13180bf6546b2647c1b28Yu Shan Emily Lau String iterations = (String) icicle.get("iterations"); 6548584d7b8f5e56b73bb13180bf6546b2647c1b28Yu Shan Emily Lau String video_encoder = (String) icicle.get("video_encoder"); 6648584d7b8f5e56b73bb13180bf6546b2647c1b28Yu Shan Emily Lau String audio_encoder = (String) icicle.get("audio_encoder"); 6748584d7b8f5e56b73bb13180bf6546b2647c1b28Yu Shan Emily Lau String frame_rate = (String) icicle.get("frame_rate"); 6848584d7b8f5e56b73bb13180bf6546b2647c1b28Yu Shan Emily Lau String video_width = (String) icicle.get("video_width"); 6948584d7b8f5e56b73bb13180bf6546b2647c1b28Yu Shan Emily Lau String video_height = (String) icicle.get("video_height"); 7048584d7b8f5e56b73bb13180bf6546b2647c1b28Yu Shan Emily Lau String bit_rate = (String) icicle.get("bit_rate"); 7148584d7b8f5e56b73bb13180bf6546b2647c1b28Yu Shan Emily Lau String record_duration = (String) icicle.get("record_duration"); 7248584d7b8f5e56b73bb13180bf6546b2647c1b28Yu Shan Emily Lau String remove_videos = (String) icicle.get("remove_videos"); 7348584d7b8f5e56b73bb13180bf6546b2647c1b28Yu Shan Emily Lau 7448584d7b8f5e56b73bb13180bf6546b2647c1b28Yu Shan Emily Lau if (iterations != null ) { 7548584d7b8f5e56b73bb13180bf6546b2647c1b28Yu Shan Emily Lau mIterations = Integer.parseInt(iterations); 7648584d7b8f5e56b73bb13180bf6546b2647c1b28Yu Shan Emily Lau } 7748584d7b8f5e56b73bb13180bf6546b2647c1b28Yu Shan Emily Lau if ( video_encoder != null) { 7848584d7b8f5e56b73bb13180bf6546b2647c1b28Yu Shan Emily Lau mVideoEncoder = Integer.parseInt(video_encoder); 7948584d7b8f5e56b73bb13180bf6546b2647c1b28Yu Shan Emily Lau } 8048584d7b8f5e56b73bb13180bf6546b2647c1b28Yu Shan Emily Lau if ( audio_encoder != null) { 8148584d7b8f5e56b73bb13180bf6546b2647c1b28Yu Shan Emily Lau mAudioEncdoer = Integer.parseInt(audio_encoder); 8248584d7b8f5e56b73bb13180bf6546b2647c1b28Yu Shan Emily Lau } 8348584d7b8f5e56b73bb13180bf6546b2647c1b28Yu Shan Emily Lau if (frame_rate != null) { 8448584d7b8f5e56b73bb13180bf6546b2647c1b28Yu Shan Emily Lau mFrameRate = Integer.parseInt(frame_rate); 8548584d7b8f5e56b73bb13180bf6546b2647c1b28Yu Shan Emily Lau } 8648584d7b8f5e56b73bb13180bf6546b2647c1b28Yu Shan Emily Lau if (video_width != null) { 8748584d7b8f5e56b73bb13180bf6546b2647c1b28Yu Shan Emily Lau mVideoWidth = Integer.parseInt(video_width); 8848584d7b8f5e56b73bb13180bf6546b2647c1b28Yu Shan Emily Lau } 8948584d7b8f5e56b73bb13180bf6546b2647c1b28Yu Shan Emily Lau if (video_height != null) { 9048584d7b8f5e56b73bb13180bf6546b2647c1b28Yu Shan Emily Lau mVideoHeight = Integer.parseInt(video_height); 9148584d7b8f5e56b73bb13180bf6546b2647c1b28Yu Shan Emily Lau } 9248584d7b8f5e56b73bb13180bf6546b2647c1b28Yu Shan Emily Lau if (bit_rate != null) { 9348584d7b8f5e56b73bb13180bf6546b2647c1b28Yu Shan Emily Lau mBitRate = Integer.parseInt(bit_rate); 9448584d7b8f5e56b73bb13180bf6546b2647c1b28Yu Shan Emily Lau } 9548584d7b8f5e56b73bb13180bf6546b2647c1b28Yu Shan Emily Lau if (record_duration != null) { 9648584d7b8f5e56b73bb13180bf6546b2647c1b28Yu Shan Emily Lau mDuration = Integer.parseInt(record_duration); 9748584d7b8f5e56b73bb13180bf6546b2647c1b28Yu Shan Emily Lau } 9848584d7b8f5e56b73bb13180bf6546b2647c1b28Yu Shan Emily Lau if (remove_videos != null) { 9948584d7b8f5e56b73bb13180bf6546b2647c1b28Yu Shan Emily Lau if (remove_videos.compareTo("true") == 0) { 10048584d7b8f5e56b73bb13180bf6546b2647c1b28Yu Shan Emily Lau mRemoveVideo = true; 10148584d7b8f5e56b73bb13180bf6546b2647c1b28Yu Shan Emily Lau } else { 10248584d7b8f5e56b73bb13180bf6546b2647c1b28Yu Shan Emily Lau mRemoveVideo = false; 10348584d7b8f5e56b73bb13180bf6546b2647c1b28Yu Shan Emily Lau } 10448584d7b8f5e56b73bb13180bf6546b2647c1b28Yu Shan Emily Lau } 10548584d7b8f5e56b73bb13180bf6546b2647c1b28Yu Shan Emily Lau } 1069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project} 107