Merge change 1017 into donut

* changes:
  Changes in mediaframework test for the OpenCore 2.0 integration. Changes included: 1) The default value for the metatData 2) Add the videoSizedChange callback to get the video dimension Added the test cases for the async reset callback test case for the Qualcomm new realease.
This commit is contained in:
Android (Google) Code Review
2009-05-05 18:46:51 -07:00
4 changed files with 109 additions and 42 deletions

View File

@@ -380,35 +380,35 @@ public class MediaNames {
public static final String META_DATA_MP3 [][] = { public static final String META_DATA_MP3 [][] = {
{"/sdcard/media_api/metaDataTestMedias/MP3/ID3V1_ID3V2.mp3", "1/10", "ID3V2.3 Album", "ID3V2.3 Artist", {"/sdcard/media_api/metaDataTestMedias/MP3/ID3V1_ID3V2.mp3", "1/10", "ID3V2.3 Album", "ID3V2.3 Artist",
"ID3V2.3 Lyricist", "ID3V2.3 Composer", null, "Blues", "ID3V2.3 Lyricist", "ID3V2.3 Composer", null, "Blues",
"ID3V2.3 Title", "1234", "321", "1"}, "ID3V2.3 Title", "1234", "295", "1"},
{"/sdcard/media_api/metaDataTestMedias/MP3/ID3V2.mp3", "1/10", "ID3V2.3 Album", "ID3V2.3 Artist", {"/sdcard/media_api/metaDataTestMedias/MP3/ID3V2.mp3", "1/10", "ID3V2.3 Album", "ID3V2.3 Artist",
"ID3V2.3 Lyricist", "ID3V2.3 Composer", null, "Blues", "ID3V2.3 Lyricist", "ID3V2.3 Composer", null, "Blues",
"ID3V2.3 Title", "1234", "313", "1"}, "ID3V2.3 Title", "1234", "287", "1"},
{"/sdcard/media_api/metaDataTestMedias/MP3/ID3V1.mp3", null, "test ID3V1 Album", "test ID3V1 Artist", {"/sdcard/media_api/metaDataTestMedias/MP3/ID3V1.mp3", "1", "test ID3V1 Album", "test ID3V1 Artist",
null, null, null, null, "test ID3V1 Title", "1234", "231332", "1"}, null, null, null, "255", "test ID3V1 Title", "1234", "231332", "1"},
{"/sdcard/media_api/metaDataTestMedias/MP3/Corrupted_ID3V1.mp3" , null, null, null, {"/sdcard/media_api/metaDataTestMedias/MP3/Corrupted_ID3V1.mp3" , null, null, null,
null, null, null, null, null, null, "231330", "1"}, null, null, null, null, null, null, "231330", "1"},
//The corrupted TALB field in id3v2 would not switch to id3v1 tag automatically //The corrupted TALB field in id3v2 would not switch to id3v1 tag automatically
{"/sdcard/media_api/metaDataTestMedias/MP3/Corrupted_ID3V2_TALB.mp3", "01", null, "ID3V2.3 Artist", {"/sdcard/media_api/metaDataTestMedias/MP3/Corrupted_ID3V2_TALB.mp3", "01", null, "ID3V2.3 Artist",
"ID3V2.3 Lyricist", "ID3V2.3 Composer", null, "ID3V2.3 Lyricist", "ID3V2.3 Composer", null,
"Blues", "ID3V2.3 Title", "1234", "321", "1"}, "Blues", "ID3V2.3 Title", "1234", "295", "1"},
{"/sdcard/media_api/metaDataTestMedias/MP3/Corrupted_ID3V2_TCOM.mp3", "01", "ID3V2.3 Album", {"/sdcard/media_api/metaDataTestMedias/MP3/Corrupted_ID3V2_TCOM.mp3", "01", "ID3V2.3 Album",
"ID3V2.3 Artist", "ID3V2.3 Lyricist", null, null, "ID3V2.3 Artist", "ID3V2.3 Lyricist", null, null,
"Blues", "ID3V2.3 Title", "1234", "321", "1"}, "Blues", "ID3V2.3 Title", "1234", "295", "1"},
{"/sdcard/media_api/metaDataTestMedias/MP3/Corrupted_ID3V2_TCOM_2.mp3", "01", "ID3V2.3 Album", {"/sdcard/media_api/metaDataTestMedias/MP3/Corrupted_ID3V2_TCOM_2.mp3", "01", "ID3V2.3 Album",
"ID3V2.3 Artist", null, null, null, "Blues", "ID3V2.3 Title", "1234", "321", "1"}, "ID3V2.3 Artist", null, null, null, "Blues", "ID3V2.3 Title", "1234", "295", "1"},
{"/sdcard/media_api/metaDataTestMedias/MP3/Corrupted_ID3V2_TRCK.mp3", "dd", "ID3V2.3 Album", {"/sdcard/media_api/metaDataTestMedias/MP3/Corrupted_ID3V2_TRCK.mp3", "dd", "ID3V2.3 Album",
"ID3V2.3 Artist", "ID3V2.3 Lyricist", "ID3V2.3 Composer", null, "ID3V2.3 Artist", "ID3V2.3 Lyricist", "ID3V2.3 Composer", null,
"Blues", "ID3V2.3 Title", "1234", "321", "1"}, "Blues", "ID3V2.3 Title", "1234", "295", "1"},
{"/sdcard/media_api/metaDataTestMedias/MP3/Corrupted_ID3V2_TRCK_2.mp3", "01", "ID3V2.3 Album", {"/sdcard/media_api/metaDataTestMedias/MP3/Corrupted_ID3V2_TRCK_2.mp3", "01", "ID3V2.3 Album",
"ID3V2.3 Artist", null, null, null, null, "ID3V2.3 Title", null, "321", "1"}, "ID3V2.3 Artist", null, null, null, "255", "ID3V2.3 Title", "1234", "295", "1"},
{"/sdcard/media_api/metaDataTestMedias/MP3/Corrupted_ID3V2_TYER.mp3", "01", "ID3V2.3 Album", {"/sdcard/media_api/metaDataTestMedias/MP3/Corrupted_ID3V2_TYER.mp3", "01", "ID3V2.3 Album",
"ID3V2.3 Artist", null, null, null, null, "ID3V2.3 Title", "9999", "321", "1"}, "ID3V2.3 Artist", null, null, null, null, "ID3V2.3 Title", "9999", "295", "1"},
{"/sdcard/media_api/metaDataTestMedias/MP3/Corrupted_ID3V2_TYER_2.mp3", "01", "ID3V2.3 Album", {"/sdcard/media_api/metaDataTestMedias/MP3/Corrupted_ID3V2_TYER_2.mp3", "01", "ID3V2.3 Album",
"ID3V2.3 Artist", "ID3V2.3 Lyricist", "ID3V2.3 Composer", null, "ID3V2.3 Artist", "ID3V2.3 Lyricist", "ID3V2.3 Composer", null,
"Blues", "ID3V2.3 Title", null, "321", "1"}, "Blues", "ID3V2.3 Title", null, "295", "1"},
{"/sdcard/media_api/metaDataTestMedias/MP3/Corrupted_ID3V2_TIT.mp3", null, null, null, {"/sdcard/media_api/metaDataTestMedias/MP3/Corrupted_ID3V2_TIT.mp3", null, null, null,
null, null, null, null, null, null, "577", "1"} null, null, null, null, null, null, "295", "1"}
}; };
public static final String META_DATA_OTHERS [][] = { public static final String META_DATA_OTHERS [][] = {
@@ -432,7 +432,7 @@ public class MediaNames {
null, null, "2005", "231180", "1"}, null, null, "2005", "231180", "1"},
{"/sdcard/media_api/metaDataTestMedias/MP4/kung_fu_panda_h264.mp4", null, "mp4 album Kung Fu Panda", {"/sdcard/media_api/metaDataTestMedias/MP4/kung_fu_panda_h264.mp4", null, "mp4 album Kung Fu Panda",
"mp4 artist Kung Fu Panda", null, null, "20080517T091451.000Z", "mp4 artist Kung Fu Panda", null, null, "20080517T091451.000Z",
"Kung Fu Panda", "Kung Fu Panda", "2008", "5667840", "2"}, "41", "Kung Fu Panda", "2008", "5667840", "2"},
{"/sdcard/media_api/metaDataTestMedias/OGG/Ring_Classic_02.ogg", null, "Suspended Animation", {"/sdcard/media_api/metaDataTestMedias/OGG/Ring_Classic_02.ogg", null, "Suspended Animation",
"John Petrucci", null, null, "20070510T125223.000Z", "John Petrucci", null, null, "20070510T125223.000Z",
null, null, "2005", "231180", "1"}, null, null, "2005", "231180", "1"},

View File

@@ -43,11 +43,13 @@ public class CodecTest {
private static MediaPlayer mMediaPlayer; private static MediaPlayer mMediaPlayer;
private MediaPlayer.OnPreparedListener mOnPreparedListener; private MediaPlayer.OnPreparedListener mOnPreparedListener;
private static int WAIT_FOR_COMMAND_TO_COMPLETE = 10000; //10 seconds max. private static int WAIT_FOR_COMMAND_TO_COMPLETE = 60000; //1 min max.
private static boolean mInitialized = false; private static boolean mInitialized = false;
private static boolean mPrepareReset = false;
private static Looper mLooper = null; private static Looper mLooper = null;
private static final Object lock = new Object(); private static final Object lock = new Object();
private static final Object prepareDone = new Object(); private static final Object prepareDone = new Object();
private static final Object videoSizeChanged = new Object();
private static boolean onPrepareSuccess = false; private static boolean onPrepareSuccess = false;
@@ -227,28 +229,84 @@ public class CodecTest {
mp.pause(); mp.pause();
mp.release(); mp.release();
} }
static MediaPlayer.OnVideoSizeChangedListener mOnVideoSizeChangedListener =
new MediaPlayer.OnVideoSizeChangedListener() {
public void onVideoSizeChanged(MediaPlayer mp, int width, int height) {
synchronized (videoSizeChanged) {
Log.v(TAG, "sizechanged notification received ...");
videoSizeChanged.notify();
}
}
};
//Register the videoSizeChanged listener
public static int videoHeight(String filePath) throws Exception { public static int videoHeight(String filePath) throws Exception {
Log.v(TAG, "videoHeight - " + filePath); Log.v(TAG, "videoHeight - " + filePath);
int videoHeight = 0; int videoHeight = 0;
MediaPlayer mp = new MediaPlayer(); synchronized (lock) {
mp.setDataSource(filePath); initializeMessageLooper();
mp.setDisplay(MediaFrameworkTest.mSurfaceView.getHolder()); try {
mp.prepare(); lock.wait(WAIT_FOR_COMMAND_TO_COMPLETE);
videoHeight = mp.getVideoHeight(); } catch(Exception e) {
mp.release(); Log.v(TAG, "looper was interrupted.");
return 0;
}
}
try {
mMediaPlayer.setDataSource(filePath);
mMediaPlayer.setDisplay(MediaFrameworkTest.mSurfaceView.getHolder());
mMediaPlayer.setOnVideoSizeChangedListener(mOnVideoSizeChangedListener);
synchronized (videoSizeChanged) {
try {
mMediaPlayer.prepare();
mMediaPlayer.start();
videoSizeChanged.wait(WAIT_FOR_COMMAND_TO_COMPLETE);
} catch (Exception e) {
Log.v(TAG, "wait was interrupted");
}
}
videoHeight = mMediaPlayer.getVideoHeight();
terminateMessageLooper();
} catch (Exception e) {
Log.e(TAG, e.getMessage());
}
return videoHeight; return videoHeight;
} }
//Register the videoSizeChanged listener
public static int videoWidth(String filePath) throws Exception { public static int videoWidth(String filePath) throws Exception {
Log.v(TAG, "videoWidth - " + filePath); Log.v(TAG, "videoWidth - " + filePath);
int videoWidth = 0; int videoWidth = 0;
MediaPlayer mp = new MediaPlayer();
mp.setDataSource(filePath); synchronized (lock) {
mp.setDisplay(MediaFrameworkTest.mSurfaceView.getHolder()); initializeMessageLooper();
mp.prepare(); try {
videoWidth = mp.getVideoWidth(); lock.wait(WAIT_FOR_COMMAND_TO_COMPLETE);
mp.release(); } catch(Exception e) {
Log.v(TAG, "looper was interrupted.");
return 0;
}
}
try {
mMediaPlayer.setDataSource(filePath);
mMediaPlayer.setDisplay(MediaFrameworkTest.mSurfaceView.getHolder());
mMediaPlayer.setOnVideoSizeChangedListener(mOnVideoSizeChangedListener);
synchronized (videoSizeChanged) {
try {
mMediaPlayer.prepare();
mMediaPlayer.start();
videoSizeChanged.wait(WAIT_FOR_COMMAND_TO_COMPLETE);
} catch (Exception e) {
Log.v(TAG, "wait was interrupted");
}
}
videoWidth = mMediaPlayer.getVideoWidth();
terminateMessageLooper();
} catch (Exception e) {
Log.e(TAG, e.getMessage());
}
return videoWidth; return videoWidth;
} }
@@ -622,6 +680,10 @@ public class CodecTest {
static MediaPlayer.OnPreparedListener mPreparedListener = new MediaPlayer.OnPreparedListener() { static MediaPlayer.OnPreparedListener mPreparedListener = new MediaPlayer.OnPreparedListener() {
public void onPrepared(MediaPlayer mp) { public void onPrepared(MediaPlayer mp) {
synchronized (prepareDone) { synchronized (prepareDone) {
if(mPrepareReset){
Log.v(TAG, "call Reset");
mMediaPlayer.reset();
}
Log.v(TAG, "notify the prepare callback"); Log.v(TAG, "notify the prepare callback");
prepareDone.notify(); prepareDone.notify();
onPrepareSuccess = true; onPrepareSuccess = true;
@@ -629,13 +691,15 @@ public class CodecTest {
} }
}; };
public static boolean prepareAsyncCallback(String filePath) throws Exception { public static boolean prepareAsyncCallback(String filePath, boolean reset) throws Exception {
int videoWidth = 0; //Added the PrepareReset flag which allow us to switch to different
int videoHeight = 0; //test case.
boolean checkVideoDimension = false; if (reset){
mPrepareReset = true;
}
initializeMessageLooper();
synchronized (lock) { synchronized (lock) {
initializeMessageLooper();
try { try {
lock.wait(WAIT_FOR_COMMAND_TO_COMPLETE); lock.wait(WAIT_FOR_COMMAND_TO_COMPLETE);
} catch(Exception e) { } catch(Exception e) {
@@ -651,14 +715,10 @@ public class CodecTest {
synchronized (prepareDone) { synchronized (prepareDone) {
try { try {
prepareDone.wait(WAIT_FOR_COMMAND_TO_COMPLETE); prepareDone.wait(WAIT_FOR_COMMAND_TO_COMPLETE);
Log.v(TAG, "setPreview done");
} catch (Exception e) { } catch (Exception e) {
Log.v(TAG, "wait was interrupted."); Log.v(TAG, "wait was interrupted.");
} }
} }
videoWidth = mMediaPlayer.getVideoWidth();
videoHeight = mMediaPlayer.getVideoHeight();
terminateMessageLooper(); terminateMessageLooper();
}catch (Exception e){ }catch (Exception e){
Log.v(TAG,e.getMessage()); Log.v(TAG,e.getMessage());
@@ -666,7 +726,7 @@ public class CodecTest {
return onPrepareSuccess; return onPrepareSuccess;
} }
} }

View File

@@ -432,14 +432,21 @@ public class MediaPlayerApiTest extends ActivityInstrumentationTestCase<MediaFra
@LargeTest @LargeTest
public void testLocalMp3PrepareAsyncCallback() throws Exception { public void testLocalMp3PrepareAsyncCallback() throws Exception {
boolean onPrepareSuccess = boolean onPrepareSuccess =
CodecTest.prepareAsyncCallback(MediaNames.VIDEO_H263_AMR); CodecTest.prepareAsyncCallback(MediaNames.VIDEO_H263_AMR, false);
assertTrue("LocalMp3prepareAsyncCallback", onPrepareSuccess); assertTrue("LocalMp3prepareAsyncCallback", onPrepareSuccess);
} }
@LargeTest @LargeTest
public void testStreamPrepareAsyncCallback() throws Exception { public void testStreamPrepareAsyncCallback() throws Exception {
boolean onPrepareSuccess = boolean onPrepareSuccess =
CodecTest.prepareAsyncCallback(MediaNames.STREAM_H264_480_360_1411k); CodecTest.prepareAsyncCallback(MediaNames.STREAM_H264_480_360_1411k, false);
assertTrue("StreamH264PrepareAsyncCallback", onPrepareSuccess);
}
@LargeTest
public void testStreamPrepareAsyncCallbackReset() throws Exception {
boolean onPrepareSuccess =
CodecTest.prepareAsyncCallback(MediaNames.STREAM_H264_480_360_1411k, true);
assertTrue("StreamH264PrepareAsyncCallback", onPrepareSuccess); assertTrue("StreamH264PrepareAsyncCallback", onPrepareSuccess);
} }
} }

View File

@@ -148,8 +148,8 @@ public class MediaRecorderTest extends ActivityInstrumentationTestCase<MediaFram
Log.v(TAG, "before getduration"); Log.v(TAG, "before getduration");
mOutputDuration = mediaPlayer.getDuration(); mOutputDuration = mediaPlayer.getDuration();
Log.v(TAG, "get video dimension"); Log.v(TAG, "get video dimension");
mOutputVideoHeight = mediaPlayer.getVideoHeight(); mOutputVideoHeight = CodecTest.videoHeight(outputFilePath);
mOutputVideoWidth = mediaPlayer.getVideoWidth(); mOutputVideoWidth = CodecTest.videoWidth(outputFilePath);
mediaPlayer.release(); mediaPlayer.release();
} catch (Exception e) { } catch (Exception e) {
Log.v(TAG, e.toString()); Log.v(TAG, e.toString());