Merge 34344179
Change-Id: I0b2e27ec88b5c4616c5def77779b7242a35e8329
diff --git a/tests/tests/media/src/android/media/cts/MediaPlayerTest.java b/tests/tests/media/src/android/media/cts/MediaPlayerTest.java
index 99aec6b..a3769aa 100644
--- a/tests/tests/media/src/android/media/cts/MediaPlayerTest.java
+++ b/tests/tests/media/src/android/media/cts/MediaPlayerTest.java
@@ -27,6 +27,7 @@
import android.os.PowerManager;
import java.io.File;
+import java.util.concurrent.CountDownLatch;
/**
* Tests for the MediaPlayer API and local video/audio playback.
@@ -36,6 +37,7 @@
* Attribution 3.0 License at http://creativecommons.org/licenses/by/3.0/us/.
*/
public class MediaPlayerTest extends MediaPlayerTestBase {
+
private static final String RECORDED_FILE =
new File(Environment.getExternalStorageDirectory(),
"record.out").getAbsolutePath();
@@ -117,9 +119,18 @@
* from the time setDisplay() was called
*/
public void testVideoSurfaceResetting() throws Exception {
- final int tolerance = 150;
+ final int tolerance = 66 * 3 / 2; /* Test video is 15fps... 66 ms per frame */
final int seekPos = 1500;
+ final CountDownLatch seekDone = new CountDownLatch(1);
+
+ mMediaPlayer.setOnSeekCompleteListener(new MediaPlayer.OnSeekCompleteListener() {
+ @Override
+ public void onSeekComplete(MediaPlayer mp) {
+ seekDone.countDown();
+ }
+ });
+
playVideoTest(R.raw.testvideo, 352, 288);
mMediaPlayer.start();
@@ -129,19 +140,20 @@
mMediaPlayer.setDisplay(getActivity().getSurfaceHolder2());
int posAfter = mMediaPlayer.getCurrentPosition();
- assertEquals(posAfter, posBefore);
+ assertEquals(posAfter, posBefore, tolerance);
assertTrue(mMediaPlayer.isPlaying());
Thread.sleep(SLEEP_TIME);
mMediaPlayer.seekTo(seekPos);
+ seekDone.await();
Thread.sleep(SLEEP_TIME / 2);
posBefore = mMediaPlayer.getCurrentPosition();
mMediaPlayer.setDisplay(null);
posAfter = mMediaPlayer.getCurrentPosition();
- assertEquals(posAfter, posBefore);
+ assertEquals(posAfter, posBefore, tolerance);
assertEquals(seekPos + SLEEP_TIME / 2, posBefore, tolerance);
assertTrue(mMediaPlayer.isPlaying());
@@ -151,7 +163,7 @@
mMediaPlayer.setDisplay(getActivity().generateSurfaceHolder());
posAfter = mMediaPlayer.getCurrentPosition();
- assertEquals(posAfter, posBefore);
+ assertEquals(posAfter, posBefore, tolerance);
assertTrue(mMediaPlayer.isPlaying());
Thread.sleep(SLEEP_TIME);