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
1948584d7b8f5e56b73bb13180bf6546b2647c1b28Yu Shan Emily Lauimport android.media.MediaRecorder;
2048584d7b8f5e56b73bb13180bf6546b2647c1b28Yu Shan Emily Lauimport android.os.Bundle;
219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.test.InstrumentationTestRunner;
229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.test.InstrumentationTestSuite;
239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport com.android.mediaframeworktest.stress.MediaRecorderStressTest;
24f47b8e991f60aac8a8f4e6e710cf5eb7cfb3a05aYu Shan Emily Lauimport com.android.mediaframeworktest.stress.MediaPlayerStressTest;
259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport junit.framework.TestSuite;
279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectpublic class MediaRecorderStressTestRunner extends InstrumentationTestRunner {
299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
3048584d7b8f5e56b73bb13180bf6546b2647c1b28Yu Shan Emily Lau    // Default recorder settings
3148584d7b8f5e56b73bb13180bf6546b2647c1b28Yu Shan Emily Lau    public static int mIterations = 100;
3248584d7b8f5e56b73bb13180bf6546b2647c1b28Yu Shan Emily Lau    public static int mVideoEncoder = MediaRecorder.VideoEncoder.H263;
3348584d7b8f5e56b73bb13180bf6546b2647c1b28Yu Shan Emily Lau    public static int mAudioEncdoer = MediaRecorder.AudioEncoder.AMR_NB;
3448584d7b8f5e56b73bb13180bf6546b2647c1b28Yu Shan Emily Lau    public static int mFrameRate = 20;
3548584d7b8f5e56b73bb13180bf6546b2647c1b28Yu Shan Emily Lau    public static int mVideoWidth = 352;
3648584d7b8f5e56b73bb13180bf6546b2647c1b28Yu Shan Emily Lau    public static int mVideoHeight = 288;
3748584d7b8f5e56b73bb13180bf6546b2647c1b28Yu Shan Emily Lau    public static int mBitRate = 100;
3848584d7b8f5e56b73bb13180bf6546b2647c1b28Yu Shan Emily Lau    public static boolean mRemoveVideo = true;
3948584d7b8f5e56b73bb13180bf6546b2647c1b28Yu Shan Emily Lau    public static int mDuration = 10000;
4048584d7b8f5e56b73bb13180bf6546b2647c1b28Yu Shan Emily Lau
419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    @Override
429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public TestSuite getAllTests() {
439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        TestSuite suite = new InstrumentationTestSuite(this);
449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        suite.addTestSuite(MediaRecorderStressTest.class);
45f47b8e991f60aac8a8f4e6e710cf5eb7cfb3a05aYu Shan Emily Lau        suite.addTestSuite(MediaPlayerStressTest.class);
469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        return suite;
479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    @Override
509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public ClassLoader getLoader() {
519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        return MediaRecorderStressTestRunner.class.getClassLoader();
529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
5348584d7b8f5e56b73bb13180bf6546b2647c1b28Yu Shan Emily Lau
5448584d7b8f5e56b73bb13180bf6546b2647c1b28Yu Shan Emily Lau    @Override
5548584d7b8f5e56b73bb13180bf6546b2647c1b28Yu Shan Emily Lau    public void onCreate(Bundle icicle) {
5648584d7b8f5e56b73bb13180bf6546b2647c1b28Yu Shan Emily Lau        super.onCreate(icicle);
5748584d7b8f5e56b73bb13180bf6546b2647c1b28Yu Shan Emily Lau        String iterations = (String) icicle.get("iterations");
5848584d7b8f5e56b73bb13180bf6546b2647c1b28Yu Shan Emily Lau        String video_encoder = (String) icicle.get("video_encoder");
5948584d7b8f5e56b73bb13180bf6546b2647c1b28Yu Shan Emily Lau        String audio_encoder = (String) icicle.get("audio_encoder");
6048584d7b8f5e56b73bb13180bf6546b2647c1b28Yu Shan Emily Lau        String frame_rate = (String) icicle.get("frame_rate");
6148584d7b8f5e56b73bb13180bf6546b2647c1b28Yu Shan Emily Lau        String video_width = (String) icicle.get("video_width");
6248584d7b8f5e56b73bb13180bf6546b2647c1b28Yu Shan Emily Lau        String video_height = (String) icicle.get("video_height");
6348584d7b8f5e56b73bb13180bf6546b2647c1b28Yu Shan Emily Lau        String bit_rate = (String) icicle.get("bit_rate");
6448584d7b8f5e56b73bb13180bf6546b2647c1b28Yu Shan Emily Lau        String record_duration = (String) icicle.get("record_duration");
6548584d7b8f5e56b73bb13180bf6546b2647c1b28Yu Shan Emily Lau        String remove_videos = (String) icicle.get("remove_videos");
6648584d7b8f5e56b73bb13180bf6546b2647c1b28Yu Shan Emily Lau
6748584d7b8f5e56b73bb13180bf6546b2647c1b28Yu Shan Emily Lau        if (iterations != null ) {
6848584d7b8f5e56b73bb13180bf6546b2647c1b28Yu Shan Emily Lau            mIterations = Integer.parseInt(iterations);
6948584d7b8f5e56b73bb13180bf6546b2647c1b28Yu Shan Emily Lau        }
7048584d7b8f5e56b73bb13180bf6546b2647c1b28Yu Shan Emily Lau        if ( video_encoder != null) {
7148584d7b8f5e56b73bb13180bf6546b2647c1b28Yu Shan Emily Lau            mVideoEncoder = Integer.parseInt(video_encoder);
7248584d7b8f5e56b73bb13180bf6546b2647c1b28Yu Shan Emily Lau        }
7348584d7b8f5e56b73bb13180bf6546b2647c1b28Yu Shan Emily Lau        if ( audio_encoder != null) {
7448584d7b8f5e56b73bb13180bf6546b2647c1b28Yu Shan Emily Lau            mAudioEncdoer = Integer.parseInt(audio_encoder);
7548584d7b8f5e56b73bb13180bf6546b2647c1b28Yu Shan Emily Lau        }
7648584d7b8f5e56b73bb13180bf6546b2647c1b28Yu Shan Emily Lau        if (frame_rate != null) {
7748584d7b8f5e56b73bb13180bf6546b2647c1b28Yu Shan Emily Lau            mFrameRate = Integer.parseInt(frame_rate);
7848584d7b8f5e56b73bb13180bf6546b2647c1b28Yu Shan Emily Lau        }
7948584d7b8f5e56b73bb13180bf6546b2647c1b28Yu Shan Emily Lau        if (video_width != null) {
8048584d7b8f5e56b73bb13180bf6546b2647c1b28Yu Shan Emily Lau            mVideoWidth = Integer.parseInt(video_width);
8148584d7b8f5e56b73bb13180bf6546b2647c1b28Yu Shan Emily Lau        }
8248584d7b8f5e56b73bb13180bf6546b2647c1b28Yu Shan Emily Lau        if (video_height != null) {
8348584d7b8f5e56b73bb13180bf6546b2647c1b28Yu Shan Emily Lau            mVideoHeight = Integer.parseInt(video_height);
8448584d7b8f5e56b73bb13180bf6546b2647c1b28Yu Shan Emily Lau        }
8548584d7b8f5e56b73bb13180bf6546b2647c1b28Yu Shan Emily Lau        if (bit_rate != null) {
8648584d7b8f5e56b73bb13180bf6546b2647c1b28Yu Shan Emily Lau            mBitRate = Integer.parseInt(bit_rate);
8748584d7b8f5e56b73bb13180bf6546b2647c1b28Yu Shan Emily Lau        }
8848584d7b8f5e56b73bb13180bf6546b2647c1b28Yu Shan Emily Lau        if (record_duration != null) {
8948584d7b8f5e56b73bb13180bf6546b2647c1b28Yu Shan Emily Lau            mDuration = Integer.parseInt(record_duration);
9048584d7b8f5e56b73bb13180bf6546b2647c1b28Yu Shan Emily Lau        }
9148584d7b8f5e56b73bb13180bf6546b2647c1b28Yu Shan Emily Lau        if (remove_videos != null) {
9248584d7b8f5e56b73bb13180bf6546b2647c1b28Yu Shan Emily Lau            if (remove_videos.compareTo("true") == 0) {
9348584d7b8f5e56b73bb13180bf6546b2647c1b28Yu Shan Emily Lau                mRemoveVideo = true;
9448584d7b8f5e56b73bb13180bf6546b2647c1b28Yu Shan Emily Lau            } else {
9548584d7b8f5e56b73bb13180bf6546b2647c1b28Yu Shan Emily Lau                mRemoveVideo = false;
9648584d7b8f5e56b73bb13180bf6546b2647c1b28Yu Shan Emily Lau            }
9748584d7b8f5e56b73bb13180bf6546b2647c1b28Yu Shan Emily Lau        }
9848584d7b8f5e56b73bb13180bf6546b2647c1b28Yu Shan Emily Lau    }
999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
100