Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(259)

Side by Side Diff: media/base/android/media_codec_player_unittest.cc

Issue 1669193003: Disable flaky media unit tests. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « media/base/android/media_codec_decoder_unittest.cc ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "media/base/android/media_codec_player.h" 5 #include "media/base/android/media_codec_player.h"
6 6
7 #include <stdint.h> 7 #include <stdint.h>
8 #include <utility> 8 #include <utility>
9 9
10 #include "base/bind.h" 10 #include "base/bind.h"
(...skipping 920 matching lines...) Expand 10 before | Expand all | Expand 10 after
931 // Configuration should propagate through the player and to the manager. 931 // Configuration should propagate through the player and to the manager.
932 EXPECT_TRUE( 932 EXPECT_TRUE(
933 WaitForCondition(base::Bind(&MockMediaPlayerManager::IsMetadataChanged, 933 WaitForCondition(base::Bind(&MockMediaPlayerManager::IsMetadataChanged,
934 base::Unretained(&manager_)))); 934 base::Unretained(&manager_))));
935 935
936 EXPECT_EQ(duration, manager_.media_metadata_.duration); 936 EXPECT_EQ(duration, manager_.media_metadata_.duration);
937 EXPECT_EQ(320, manager_.media_metadata_.width); 937 EXPECT_EQ(320, manager_.media_metadata_.width);
938 EXPECT_EQ(240, manager_.media_metadata_.height); 938 EXPECT_EQ(240, manager_.media_metadata_.height);
939 } 939 }
940 940
941 TEST_F(MediaCodecPlayerTest, AudioPlayTillCompletion) { 941 TEST_F(MediaCodecPlayerTest, DISABLED_AudioPlayTillCompletion) {
942 SKIP_TEST_IF_MEDIA_CODEC_BRIDGE_IS_NOT_AVAILABLE(); 942 SKIP_TEST_IF_MEDIA_CODEC_BRIDGE_IS_NOT_AVAILABLE();
943 943
944 base::TimeDelta duration = base::TimeDelta::FromMilliseconds(1000); 944 base::TimeDelta duration = base::TimeDelta::FromMilliseconds(1000);
945 base::TimeDelta timeout = base::TimeDelta::FromMilliseconds(2000); 945 base::TimeDelta timeout = base::TimeDelta::FromMilliseconds(2000);
946 946
947 demuxer_->SetAudioFactory( 947 demuxer_->SetAudioFactory(
948 scoped_ptr<AudioFactory>(new AudioFactory(duration))); 948 scoped_ptr<AudioFactory>(new AudioFactory(duration)));
949 949
950 CreatePlayer(); 950 CreatePlayer();
951 951
(...skipping 94 matching lines...) Expand 10 before | Expand all | Expand 10 after
1046 player_->Start(); 1046 player_->Start();
1047 1047
1048 // Playback should not start. 1048 // Playback should not start.
1049 EXPECT_FALSE( 1049 EXPECT_FALSE(
1050 WaitForCondition(base::Bind(&MockMediaPlayerManager::IsPlaybackStarted, 1050 WaitForCondition(base::Bind(&MockMediaPlayerManager::IsPlaybackStarted,
1051 base::Unretained(&manager_)), 1051 base::Unretained(&manager_)),
1052 start_timeout)); 1052 start_timeout));
1053 } 1053 }
1054 1054
1055 // http://crbug.com/518900 1055 // http://crbug.com/518900
1056 TEST_F(MediaCodecPlayerTest, AudioSeekAfterStop) { 1056 TEST_F(MediaCodecPlayerTest, DISABLED_AudioSeekAfterStop) {
1057 SKIP_TEST_IF_MEDIA_CODEC_BRIDGE_IS_NOT_AVAILABLE(); 1057 SKIP_TEST_IF_MEDIA_CODEC_BRIDGE_IS_NOT_AVAILABLE();
1058 1058
1059 // Play for 300 ms, then Pause, then Seek to beginning. The playback should 1059 // Play for 300 ms, then Pause, then Seek to beginning. The playback should
1060 // start from the beginning. 1060 // start from the beginning.
1061 1061
1062 base::TimeDelta duration = base::TimeDelta::FromMilliseconds(2000); 1062 base::TimeDelta duration = base::TimeDelta::FromMilliseconds(2000);
1063 1063
1064 demuxer_->SetAudioFactory( 1064 demuxer_->SetAudioFactory(
1065 scoped_ptr<AudioFactory>(new AudioFactory(duration))); 1065 scoped_ptr<AudioFactory>(new AudioFactory(duration)));
1066 1066
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
1105 base::Unretained(&manager_)))); 1105 base::Unretained(&manager_))));
1106 1106
1107 // Make sure we started from the beginninig 1107 // Make sure we started from the beginninig
1108 EXPECT_GT(base::TimeDelta::FromMilliseconds(40), manager_.pts_stat_.min()); 1108 EXPECT_GT(base::TimeDelta::FromMilliseconds(40), manager_.pts_stat_.min());
1109 1109
1110 // The player should have reported the seek completion to the manager. 1110 // The player should have reported the seek completion to the manager.
1111 EXPECT_TRUE(WaitForCondition(base::Bind( 1111 EXPECT_TRUE(WaitForCondition(base::Bind(
1112 &MockMediaPlayerManager::IsSeekCompleted, base::Unretained(&manager_)))); 1112 &MockMediaPlayerManager::IsSeekCompleted, base::Unretained(&manager_))));
1113 } 1113 }
1114 1114
1115 TEST_F(MediaCodecPlayerTest, AudioSeekThenPlay) { 1115 TEST_F(MediaCodecPlayerTest, DISABLED_AudioSeekThenPlay) {
1116 SKIP_TEST_IF_MEDIA_CODEC_BRIDGE_IS_NOT_AVAILABLE(); 1116 SKIP_TEST_IF_MEDIA_CODEC_BRIDGE_IS_NOT_AVAILABLE();
1117 1117
1118 // Issue Seek command immediately followed by Start. The playback should 1118 // Issue Seek command immediately followed by Start. The playback should
1119 // start at the seek position. 1119 // start at the seek position.
1120 1120
1121 base::TimeDelta duration = base::TimeDelta::FromMilliseconds(2000); 1121 base::TimeDelta duration = base::TimeDelta::FromMilliseconds(2000);
1122 base::TimeDelta seek_position = base::TimeDelta::FromMilliseconds(500); 1122 base::TimeDelta seek_position = base::TimeDelta::FromMilliseconds(500);
1123 1123
1124 demuxer_->SetAudioFactory( 1124 demuxer_->SetAudioFactory(
1125 scoped_ptr<AudioFactory>(new AudioFactory(duration))); 1125 scoped_ptr<AudioFactory>(new AudioFactory(duration)));
(...skipping 13 matching lines...) Expand all
1139 base::Unretained(&manager_)))); 1139 base::Unretained(&manager_))));
1140 1140
1141 // The playback should start at |seek_position| 1141 // The playback should start at |seek_position|
1142 EXPECT_TRUE(AlmostEqual(seek_position, manager_.pts_stat_.min(), 25)); 1142 EXPECT_TRUE(AlmostEqual(seek_position, manager_.pts_stat_.min(), 25));
1143 1143
1144 // The player should have reported the seek completion to the manager. 1144 // The player should have reported the seek completion to the manager.
1145 EXPECT_TRUE(WaitForCondition(base::Bind( 1145 EXPECT_TRUE(WaitForCondition(base::Bind(
1146 &MockMediaPlayerManager::IsSeekCompleted, base::Unretained(&manager_)))); 1146 &MockMediaPlayerManager::IsSeekCompleted, base::Unretained(&manager_))));
1147 } 1147 }
1148 1148
1149 TEST_F(MediaCodecPlayerTest, AudioSeekThenPlayThenConfig) { 1149 TEST_F(MediaCodecPlayerTest, DISABLED_AudioSeekThenPlayThenConfig) {
1150 SKIP_TEST_IF_MEDIA_CODEC_BRIDGE_IS_NOT_AVAILABLE(); 1150 SKIP_TEST_IF_MEDIA_CODEC_BRIDGE_IS_NOT_AVAILABLE();
1151 1151
1152 // Issue Seek command immediately followed by Start but without prior demuxer 1152 // Issue Seek command immediately followed by Start but without prior demuxer
1153 // configuration. Start should wait for configuration. After it has been 1153 // configuration. Start should wait for configuration. After it has been
1154 // posted the playback should start at the seek position. 1154 // posted the playback should start at the seek position.
1155 1155
1156 base::TimeDelta duration = base::TimeDelta::FromMilliseconds(2000); 1156 base::TimeDelta duration = base::TimeDelta::FromMilliseconds(2000);
1157 base::TimeDelta seek_position = base::TimeDelta::FromMilliseconds(500); 1157 base::TimeDelta seek_position = base::TimeDelta::FromMilliseconds(500);
1158 1158
1159 demuxer_->SetAudioFactory( 1159 demuxer_->SetAudioFactory(
(...skipping 19 matching lines...) Expand all
1179 1179
1180 // The playback should start at |seek_position| 1180 // The playback should start at |seek_position|
1181 EXPECT_TRUE(AlmostEqual(seek_position, manager_.pts_stat_.min(), 25)); 1181 EXPECT_TRUE(AlmostEqual(seek_position, manager_.pts_stat_.min(), 25));
1182 1182
1183 // The player should have reported the seek completion to the manager. 1183 // The player should have reported the seek completion to the manager.
1184 EXPECT_TRUE(WaitForCondition(base::Bind( 1184 EXPECT_TRUE(WaitForCondition(base::Bind(
1185 &MockMediaPlayerManager::IsSeekCompleted, base::Unretained(&manager_)))); 1185 &MockMediaPlayerManager::IsSeekCompleted, base::Unretained(&manager_))));
1186 } 1186 }
1187 1187
1188 // http://crbug.com/518900 1188 // http://crbug.com/518900
1189 TEST_F(MediaCodecPlayerTest, AudioSeekWhilePlaying) { 1189 TEST_F(MediaCodecPlayerTest, DISABLED_AudioSeekWhilePlaying) {
1190 SKIP_TEST_IF_MEDIA_CODEC_BRIDGE_IS_NOT_AVAILABLE(); 1190 SKIP_TEST_IF_MEDIA_CODEC_BRIDGE_IS_NOT_AVAILABLE();
1191 1191
1192 // Play for 300 ms, then issue several Seek commands in the row. 1192 // Play for 300 ms, then issue several Seek commands in the row.
1193 // The playback should continue at the last seek position. 1193 // The playback should continue at the last seek position.
1194 1194
1195 // To test this condition without analyzing the reported time details 1195 // To test this condition without analyzing the reported time details
1196 // and without introducing dependency on implementation I make a long (10s) 1196 // and without introducing dependency on implementation I make a long (10s)
1197 // duration and test that the playback resumes after big time jump (5s) in a 1197 // duration and test that the playback resumes after big time jump (5s) in a
1198 // short period of time (200 ms). 1198 // short period of time (200 ms).
1199 base::TimeDelta duration = base::TimeDelta::FromSeconds(10); 1199 base::TimeDelta duration = base::TimeDelta::FromSeconds(10);
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after
1258 base::Unretained(demuxer_)))); 1258 base::Unretained(demuxer_))));
1259 1259
1260 // Playback should continue with a new surface. Wait till completion. 1260 // Playback should continue with a new surface. Wait till completion.
1261 EXPECT_TRUE( 1261 EXPECT_TRUE(
1262 WaitForCondition(base::Bind(&MockMediaPlayerManager::IsPlaybackCompleted, 1262 WaitForCondition(base::Bind(&MockMediaPlayerManager::IsPlaybackCompleted,
1263 base::Unretained(&manager_)), 1263 base::Unretained(&manager_)),
1264 timeout)); 1264 timeout));
1265 EXPECT_LE(duration, manager_.pts_stat_.max()); 1265 EXPECT_LE(duration, manager_.pts_stat_.max());
1266 } 1266 }
1267 1267
1268 TEST_F(MediaCodecPlayerTest, VideoRemoveAndSetSurface) { 1268 TEST_F(MediaCodecPlayerTest, DISABLED_VideoRemoveAndSetSurface) {
1269 SKIP_TEST_IF_MEDIA_CODEC_BRIDGE_IS_NOT_AVAILABLE(); 1269 SKIP_TEST_IF_MEDIA_CODEC_BRIDGE_IS_NOT_AVAILABLE();
1270 1270
1271 base::TimeDelta duration = base::TimeDelta::FromMilliseconds(1000); 1271 base::TimeDelta duration = base::TimeDelta::FromMilliseconds(1000);
1272 1272
1273 ASSERT_TRUE(StartVideoPlayback(duration, "VideoRemoveAndSetSurface")); 1273 ASSERT_TRUE(StartVideoPlayback(duration, "VideoRemoveAndSetSurface"));
1274 1274
1275 // Wait for some time and check statistics. 1275 // Wait for some time and check statistics.
1276 WaitForDelay(base::TimeDelta::FromMilliseconds(200)); 1276 WaitForDelay(base::TimeDelta::FromMilliseconds(200));
1277 1277
1278 // Make sure we played at least 100 ms. 1278 // Make sure we played at least 100 ms.
(...skipping 29 matching lines...) Expand all
1308 EXPECT_TRUE( 1308 EXPECT_TRUE(
1309 WaitForCondition(base::Bind(&MockMediaPlayerManager::IsPlaybackStarted, 1309 WaitForCondition(base::Bind(&MockMediaPlayerManager::IsPlaybackStarted,
1310 base::Unretained(&manager_)), 1310 base::Unretained(&manager_)),
1311 reconfigure_timeout)); 1311 reconfigure_timeout));
1312 1312
1313 // Timestamps should not go back. 1313 // Timestamps should not go back.
1314 EXPECT_LE(max_pts_before_removal, manager_.pts_stat_.max()); 1314 EXPECT_LE(max_pts_before_removal, manager_.pts_stat_.max());
1315 } 1315 }
1316 1316
1317 // http://crbug.com/518900 1317 // http://crbug.com/518900
1318 TEST_F(MediaCodecPlayerTest, VideoReleaseAndStart) { 1318 TEST_F(MediaCodecPlayerTest, DISABLED_VideoReleaseAndStart) {
1319 SKIP_TEST_IF_MEDIA_CODEC_BRIDGE_IS_NOT_AVAILABLE(); 1319 SKIP_TEST_IF_MEDIA_CODEC_BRIDGE_IS_NOT_AVAILABLE();
1320 1320
1321 base::TimeDelta duration = base::TimeDelta::FromMilliseconds(1000); 1321 base::TimeDelta duration = base::TimeDelta::FromMilliseconds(1000);
1322 1322
1323 ASSERT_TRUE(StartVideoPlayback(duration, "VideoReleaseAndStart")); 1323 ASSERT_TRUE(StartVideoPlayback(duration, "VideoReleaseAndStart"));
1324 1324
1325 // Wait for some time and check statistics. 1325 // Wait for some time and check statistics.
1326 WaitForDelay(base::TimeDelta::FromMilliseconds(200)); 1326 WaitForDelay(base::TimeDelta::FromMilliseconds(200));
1327 1327
1328 // Make sure we played at least 100 ms. 1328 // Make sure we played at least 100 ms.
(...skipping 27 matching lines...) Expand all
1356 base::TimeDelta reconfigure_timeout = base::TimeDelta::FromMilliseconds(800); 1356 base::TimeDelta reconfigure_timeout = base::TimeDelta::FromMilliseconds(800);
1357 EXPECT_TRUE( 1357 EXPECT_TRUE(
1358 WaitForCondition(base::Bind(&MockMediaPlayerManager::IsPlaybackStarted, 1358 WaitForCondition(base::Bind(&MockMediaPlayerManager::IsPlaybackStarted,
1359 base::Unretained(&manager_)), 1359 base::Unretained(&manager_)),
1360 reconfigure_timeout)); 1360 reconfigure_timeout));
1361 1361
1362 // Timestamps should not go back. 1362 // Timestamps should not go back.
1363 EXPECT_LE(max_pts_before_backgrounding, manager_.pts_stat_.max()); 1363 EXPECT_LE(max_pts_before_backgrounding, manager_.pts_stat_.max());
1364 } 1364 }
1365 1365
1366 TEST_F(MediaCodecPlayerTest, VideoSeekAndRelease) { 1366 TEST_F(MediaCodecPlayerTest, DISABLED_VideoSeekAndRelease) {
1367 SKIP_TEST_IF_MEDIA_CODEC_BRIDGE_IS_NOT_AVAILABLE(); 1367 SKIP_TEST_IF_MEDIA_CODEC_BRIDGE_IS_NOT_AVAILABLE();
1368 1368
1369 base::TimeDelta duration = base::TimeDelta::FromMilliseconds(2000); 1369 base::TimeDelta duration = base::TimeDelta::FromMilliseconds(2000);
1370 base::TimeDelta seek_position = base::TimeDelta::FromMilliseconds(1000); 1370 base::TimeDelta seek_position = base::TimeDelta::FromMilliseconds(1000);
1371 1371
1372 ASSERT_TRUE(StartVideoPlayback(duration, "VideoSeekAndRelease")); 1372 ASSERT_TRUE(StartVideoPlayback(duration, "VideoSeekAndRelease"));
1373 1373
1374 // Wait for some time and check statistics. 1374 // Wait for some time and check statistics.
1375 WaitForDelay(base::TimeDelta::FromMilliseconds(200)); 1375 WaitForDelay(base::TimeDelta::FromMilliseconds(200));
1376 1376
(...skipping 142 matching lines...) Expand 10 before | Expand all | Expand 10 after
1519 WaitForCondition(base::Bind(&MockMediaPlayerManager::IsPlaybackCompleted, 1519 WaitForCondition(base::Bind(&MockMediaPlayerManager::IsPlaybackCompleted,
1520 base::Unretained(&manager_)))); 1520 base::Unretained(&manager_))));
1521 1521
1522 // The first pts should be equal than seek position even if video frames 1522 // The first pts should be equal than seek position even if video frames
1523 // started 100 ms eralier than the seek request. 1523 // started 100 ms eralier than the seek request.
1524 EXPECT_EQ(seek_position, manager_.pts_stat_.min()); 1524 EXPECT_EQ(seek_position, manager_.pts_stat_.min());
1525 1525
1526 EXPECT_EQ(6, manager_.pts_stat_.num_values()); 1526 EXPECT_EQ(6, manager_.pts_stat_.num_values());
1527 } 1527 }
1528 1528
1529 TEST_F(MediaCodecPlayerTest, AVPrerollAudioWaitsForVideo) { 1529 TEST_F(MediaCodecPlayerTest, DISABLED_AVPrerollAudioWaitsForVideo) {
1530 SKIP_TEST_IF_MEDIA_CODEC_BRIDGE_IS_NOT_AVAILABLE(); 1530 SKIP_TEST_IF_MEDIA_CODEC_BRIDGE_IS_NOT_AVAILABLE();
1531 1531
1532 // Test that during prerolling neither audio nor video plays and that both 1532 // Test that during prerolling neither audio nor video plays and that both
1533 // resume simultaneously after preroll is finished. In other words, test 1533 // resume simultaneously after preroll is finished. In other words, test
1534 // that preroll works. 1534 // that preroll works.
1535 // We put the video into the long preroll and intercept the time when first 1535 // We put the video into the long preroll and intercept the time when first
1536 // rendering happens in each stream. The moment of rendering is approximated 1536 // rendering happens in each stream. The moment of rendering is approximated
1537 // with a decoder PTS that is delivered by a test-only callback. 1537 // with a decoder PTS that is delivered by a test-only callback.
1538 1538
1539 base::TimeDelta duration = base::TimeDelta::FromMilliseconds(2000); 1539 base::TimeDelta duration = base::TimeDelta::FromMilliseconds(2000);
(...skipping 30 matching lines...) Expand all
1570 EXPECT_TRUE(AlmostEqual(manager_.FirstFramePTS(DemuxerStream::AUDIO), 1570 EXPECT_TRUE(AlmostEqual(manager_.FirstFramePTS(DemuxerStream::AUDIO),
1571 manager_.FirstFramePTS(DemuxerStream::VIDEO), 25)); 1571 manager_.FirstFramePTS(DemuxerStream::VIDEO), 25));
1572 1572
1573 EXPECT_TRUE(AlmostEqual(manager_.FirstFrameTime(DemuxerStream::AUDIO), 1573 EXPECT_TRUE(AlmostEqual(manager_.FirstFrameTime(DemuxerStream::AUDIO),
1574 manager_.FirstFrameTime(DemuxerStream::VIDEO), 50)); 1574 manager_.FirstFrameTime(DemuxerStream::VIDEO), 50));
1575 1575
1576 // The playback should start at |seek_position| 1576 // The playback should start at |seek_position|
1577 EXPECT_TRUE(AlmostEqual(seek_position, manager_.pts_stat_.min(), 25)); 1577 EXPECT_TRUE(AlmostEqual(seek_position, manager_.pts_stat_.min(), 25));
1578 } 1578 }
1579 1579
1580 TEST_F(MediaCodecPlayerTest, AVPrerollReleaseAndRestart) { 1580 TEST_F(MediaCodecPlayerTest, DISABLED_AVPrerollReleaseAndRestart) {
1581 SKIP_TEST_IF_MEDIA_CODEC_BRIDGE_IS_NOT_AVAILABLE(); 1581 SKIP_TEST_IF_MEDIA_CODEC_BRIDGE_IS_NOT_AVAILABLE();
1582 1582
1583 // Test that player will resume prerolling if prerolling is interrupted by 1583 // Test that player will resume prerolling if prerolling is interrupted by
1584 // Release() and Start(). 1584 // Release() and Start().
1585 1585
1586 base::TimeDelta duration = base::TimeDelta::FromMilliseconds(2000); 1586 base::TimeDelta duration = base::TimeDelta::FromMilliseconds(2000);
1587 1587
1588 // Set significant preroll interval. 500 ms means 25 frames, at 10 ms 1588 // Set significant preroll interval. 500 ms means 25 frames, at 10 ms
1589 // per frame it would take 250 ms to preroll. 1589 // per frame it would take 250 ms to preroll.
1590 base::TimeDelta seek_position = base::TimeDelta::FromMilliseconds(1000); 1590 base::TimeDelta seek_position = base::TimeDelta::FromMilliseconds(1000);
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after
1644 manager_.FirstFramePTS(DemuxerStream::VIDEO), 50)); 1644 manager_.FirstFramePTS(DemuxerStream::VIDEO), 50));
1645 1645
1646 EXPECT_TRUE(AlmostEqual(manager_.FirstFrameTime(DemuxerStream::AUDIO), 1646 EXPECT_TRUE(AlmostEqual(manager_.FirstFrameTime(DemuxerStream::AUDIO),
1647 manager_.FirstFrameTime(DemuxerStream::VIDEO), 50)); 1647 manager_.FirstFrameTime(DemuxerStream::VIDEO), 50));
1648 1648
1649 // The playback should start at |seek_position|, but Release() might discard 1649 // The playback should start at |seek_position|, but Release() might discard
1650 // the first audio frame. 1650 // the first audio frame.
1651 EXPECT_TRUE(AlmostEqual(seek_position, manager_.pts_stat_.min(), 50)); 1651 EXPECT_TRUE(AlmostEqual(seek_position, manager_.pts_stat_.min(), 50));
1652 } 1652 }
1653 1653
1654 TEST_F(MediaCodecPlayerTest, AVPrerollStopAndRestart) { 1654 TEST_F(MediaCodecPlayerTest, DISABLED_AVPrerollStopAndRestart) {
1655 SKIP_TEST_IF_MEDIA_CODEC_BRIDGE_IS_NOT_AVAILABLE(); 1655 SKIP_TEST_IF_MEDIA_CODEC_BRIDGE_IS_NOT_AVAILABLE();
1656 1656
1657 // Test that if Pause() happens during the preroll phase, 1657 // Test that if Pause() happens during the preroll phase,
1658 // we continue to do preroll after restart. 1658 // we continue to do preroll after restart.
1659 1659
1660 base::TimeDelta duration = base::TimeDelta::FromMilliseconds(1200); 1660 base::TimeDelta duration = base::TimeDelta::FromMilliseconds(1200);
1661 1661
1662 // Set significant preroll interval. 500 ms means 25 frames, at 10 ms 1662 // Set significant preroll interval. 500 ms means 25 frames, at 10 ms
1663 // per frame it would take 250 ms to preroll. 1663 // per frame it would take 250 ms to preroll.
1664 base::TimeDelta seek_position = base::TimeDelta::FromMilliseconds(1000); 1664 base::TimeDelta seek_position = base::TimeDelta::FromMilliseconds(1000);
(...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after
1736 EXPECT_TRUE(AlmostEqual(manager_.FirstFramePTS(DemuxerStream::AUDIO), 1736 EXPECT_TRUE(AlmostEqual(manager_.FirstFramePTS(DemuxerStream::AUDIO),
1737 manager_.FirstFramePTS(DemuxerStream::VIDEO), 25)); 1737 manager_.FirstFramePTS(DemuxerStream::VIDEO), 25));
1738 1738
1739 EXPECT_TRUE(AlmostEqual(manager_.FirstFrameTime(DemuxerStream::AUDIO), 1739 EXPECT_TRUE(AlmostEqual(manager_.FirstFrameTime(DemuxerStream::AUDIO),
1740 manager_.FirstFrameTime(DemuxerStream::VIDEO), 50)); 1740 manager_.FirstFrameTime(DemuxerStream::VIDEO), 50));
1741 1741
1742 // The playback should start at |seek_position| 1742 // The playback should start at |seek_position|
1743 EXPECT_TRUE(AlmostEqual(seek_position, manager_.pts_stat_.min(), 25)); 1743 EXPECT_TRUE(AlmostEqual(seek_position, manager_.pts_stat_.min(), 25));
1744 } 1744 }
1745 1745
1746 TEST_F(MediaCodecPlayerTest, AVPrerollVideoEndsWhilePrerolling) { 1746 TEST_F(MediaCodecPlayerTest, DISABLED_AVPrerollVideoEndsWhilePrerolling) {
1747 SKIP_TEST_IF_MEDIA_CODEC_BRIDGE_IS_NOT_AVAILABLE(); 1747 SKIP_TEST_IF_MEDIA_CODEC_BRIDGE_IS_NOT_AVAILABLE();
1748 1748
1749 // Test that when one stream ends in the preroll phase and another is not 1749 // Test that when one stream ends in the preroll phase and another is not
1750 // the preroll finishes and playback continues after it. 1750 // the preroll finishes and playback continues after it.
1751 1751
1752 // http://crbug.com/526755 1752 // http://crbug.com/526755
1753 // TODO(timav): remove these logs after verifying that the bug is fixed. 1753 // TODO(timav): remove these logs after verifying that the bug is fixed.
1754 DVLOG(0) << "AVPrerollVideoEndsWhilePrerolling: begin"; 1754 DVLOG(0) << "AVPrerollVideoEndsWhilePrerolling: begin";
1755 1755
1756 base::TimeDelta audio_duration = base::TimeDelta::FromMilliseconds(1100); 1756 base::TimeDelta audio_duration = base::TimeDelta::FromMilliseconds(1100);
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after
1821 WaitForCondition(base::Bind(&MockMediaPlayerManager::IsPlaybackCompleted, 1821 WaitForCondition(base::Bind(&MockMediaPlayerManager::IsPlaybackCompleted,
1822 base::Unretained(&manager_)))); 1822 base::Unretained(&manager_))));
1823 1823
1824 // There should not be any video frames. 1824 // There should not be any video frames.
1825 EXPECT_FALSE(manager_.HasFirstFrame(DemuxerStream::VIDEO)); 1825 EXPECT_FALSE(manager_.HasFirstFrame(DemuxerStream::VIDEO));
1826 1826
1827 // http://crbug.com/526755 1827 // http://crbug.com/526755
1828 DVLOG(0) << "AVPrerollVideoEndsWhilePrerolling: end"; 1828 DVLOG(0) << "AVPrerollVideoEndsWhilePrerolling: end";
1829 } 1829 }
1830 1830
1831 TEST_F(MediaCodecPlayerTest, VideoConfigChangeWhilePlaying) { 1831 TEST_F(MediaCodecPlayerTest, DISABLED_VideoConfigChangeWhilePlaying) {
1832 SKIP_TEST_IF_MEDIA_CODEC_BRIDGE_IS_NOT_AVAILABLE(); 1832 SKIP_TEST_IF_MEDIA_CODEC_BRIDGE_IS_NOT_AVAILABLE();
1833 1833
1834 // Test that video only playback continues after video config change. 1834 // Test that video only playback continues after video config change.
1835 1835
1836 // Initialize video playback 1836 // Initialize video playback
1837 base::TimeDelta duration = base::TimeDelta::FromMilliseconds(1200); 1837 base::TimeDelta duration = base::TimeDelta::FromMilliseconds(1200);
1838 base::TimeDelta config_change_position = 1838 base::TimeDelta config_change_position =
1839 base::TimeDelta::FromMilliseconds(1000); 1839 base::TimeDelta::FromMilliseconds(1000);
1840 1840
1841 base::TimeDelta start_timeout = base::TimeDelta::FromMilliseconds(2000); 1841 base::TimeDelta start_timeout = base::TimeDelta::FromMilliseconds(2000);
(...skipping 96 matching lines...) Expand 10 before | Expand all | Expand 10 after
1938 1938
1939 // Check that we did not miss audio frames. We expect one postponed frames 1939 // Check that we did not miss audio frames. We expect one postponed frames
1940 // that are not reported. 1940 // that are not reported.
1941 // For Nexus 4 KitKat the AAC decoder seems to swallow the first frame 1941 // For Nexus 4 KitKat the AAC decoder seems to swallow the first frame
1942 // but reports the last pts twice, maybe it just shifts the reported PTS. 1942 // but reports the last pts twice, maybe it just shifts the reported PTS.
1943 int expected_audio_frames = GetFrameCount(duration, kAudioFramePeriod, 0) - 1; 1943 int expected_audio_frames = GetFrameCount(duration, kAudioFramePeriod, 0) - 1;
1944 EXPECT_EQ(expected_audio_frames, 1944 EXPECT_EQ(expected_audio_frames,
1945 manager_.render_stat_[DemuxerStream::AUDIO].num_values()); 1945 manager_.render_stat_[DemuxerStream::AUDIO].num_values());
1946 } 1946 }
1947 1947
1948 TEST_F(MediaCodecPlayerTest, AVAudioConfigChangeWhilePlaying) { 1948 TEST_F(MediaCodecPlayerTest, DISABLED_AVAudioConfigChangeWhilePlaying) {
1949 SKIP_TEST_IF_MEDIA_CODEC_BRIDGE_IS_NOT_AVAILABLE(); 1949 SKIP_TEST_IF_MEDIA_CODEC_BRIDGE_IS_NOT_AVAILABLE();
1950 1950
1951 // Test that A/V playback continues after audio config change. 1951 // Test that A/V playback continues after audio config change.
1952 1952
1953 base::TimeDelta duration = base::TimeDelta::FromMilliseconds(1200); 1953 base::TimeDelta duration = base::TimeDelta::FromMilliseconds(1200);
1954 base::TimeDelta config_change_position = 1954 base::TimeDelta config_change_position =
1955 base::TimeDelta::FromMilliseconds(1000); 1955 base::TimeDelta::FromMilliseconds(1000);
1956 1956
1957 base::TimeDelta completion_timeout = base::TimeDelta::FromMilliseconds(3000); 1957 base::TimeDelta completion_timeout = base::TimeDelta::FromMilliseconds(3000);
1958 1958
(...skipping 23 matching lines...) Expand all
1982 EXPECT_EQ(expected_video_frames, 1982 EXPECT_EQ(expected_video_frames,
1983 manager_.render_stat_[DemuxerStream::VIDEO].num_values()); 1983 manager_.render_stat_[DemuxerStream::VIDEO].num_values());
1984 1984
1985 // Check that we did not miss audio frames. We expect two postponed frames 1985 // Check that we did not miss audio frames. We expect two postponed frames
1986 // that are not reported. 1986 // that are not reported.
1987 int expected_audio_frames = GetFrameCount(duration, kAudioFramePeriod, 1) - 2; 1987 int expected_audio_frames = GetFrameCount(duration, kAudioFramePeriod, 1) - 2;
1988 EXPECT_EQ(expected_audio_frames, 1988 EXPECT_EQ(expected_audio_frames,
1989 manager_.render_stat_[DemuxerStream::AUDIO].num_values()); 1989 manager_.render_stat_[DemuxerStream::AUDIO].num_values());
1990 } 1990 }
1991 1991
1992 TEST_F(MediaCodecPlayerTest, AVSimultaneousConfigChange_1) { 1992 TEST_F(MediaCodecPlayerTest, DISABLED_AVSimultaneousConfigChange_1) {
1993 SKIP_TEST_IF_MEDIA_CODEC_BRIDGE_IS_NOT_AVAILABLE(); 1993 SKIP_TEST_IF_MEDIA_CODEC_BRIDGE_IS_NOT_AVAILABLE();
1994 1994
1995 // Test that the playback continues if audio and video config changes happen 1995 // Test that the playback continues if audio and video config changes happen
1996 // at the same time. 1996 // at the same time.
1997 1997
1998 base::TimeDelta duration = base::TimeDelta::FromMilliseconds(1200); 1998 base::TimeDelta duration = base::TimeDelta::FromMilliseconds(1200);
1999 base::TimeDelta config_change_audio = base::TimeDelta::FromMilliseconds(1000); 1999 base::TimeDelta config_change_audio = base::TimeDelta::FromMilliseconds(1000);
2000 base::TimeDelta config_change_video = base::TimeDelta::FromMilliseconds(1000); 2000 base::TimeDelta config_change_video = base::TimeDelta::FromMilliseconds(1000);
2001 2001
2002 base::TimeDelta completion_timeout = base::TimeDelta::FromMilliseconds(3000); 2002 base::TimeDelta completion_timeout = base::TimeDelta::FromMilliseconds(3000);
(...skipping 26 matching lines...) Expand all
2029 EXPECT_EQ(expected_video_frames, 2029 EXPECT_EQ(expected_video_frames,
2030 manager_.render_stat_[DemuxerStream::VIDEO].num_values()); 2030 manager_.render_stat_[DemuxerStream::VIDEO].num_values());
2031 2031
2032 // Check that we did not miss audio frames. We expect two postponed frames 2032 // Check that we did not miss audio frames. We expect two postponed frames
2033 // that are not reported. 2033 // that are not reported.
2034 int expected_audio_frames = GetFrameCount(duration, kAudioFramePeriod, 1) - 2; 2034 int expected_audio_frames = GetFrameCount(duration, kAudioFramePeriod, 1) - 2;
2035 EXPECT_EQ(expected_audio_frames, 2035 EXPECT_EQ(expected_audio_frames,
2036 manager_.render_stat_[DemuxerStream::AUDIO].num_values()); 2036 manager_.render_stat_[DemuxerStream::AUDIO].num_values());
2037 } 2037 }
2038 2038
2039 TEST_F(MediaCodecPlayerTest, AVSimultaneousConfigChange_2) { 2039 TEST_F(MediaCodecPlayerTest, DISABLED_AVSimultaneousConfigChange_2) {
2040 SKIP_TEST_IF_MEDIA_CODEC_BRIDGE_IS_NOT_AVAILABLE(); 2040 SKIP_TEST_IF_MEDIA_CODEC_BRIDGE_IS_NOT_AVAILABLE();
2041 2041
2042 // Test that the playback continues if audio and video config changes happen 2042 // Test that the playback continues if audio and video config changes happen
2043 // at the same time. Move audio change moment slightly to make it drained 2043 // at the same time. Move audio change moment slightly to make it drained
2044 // after video. 2044 // after video.
2045 2045
2046 base::TimeDelta duration = base::TimeDelta::FromMilliseconds(1200); 2046 base::TimeDelta duration = base::TimeDelta::FromMilliseconds(1200);
2047 base::TimeDelta config_change_audio = base::TimeDelta::FromMilliseconds(1020); 2047 base::TimeDelta config_change_audio = base::TimeDelta::FromMilliseconds(1020);
2048 base::TimeDelta config_change_video = base::TimeDelta::FromMilliseconds(1000); 2048 base::TimeDelta config_change_video = base::TimeDelta::FromMilliseconds(1000);
2049 2049
(...skipping 27 matching lines...) Expand all
2077 EXPECT_EQ(expected_video_frames, 2077 EXPECT_EQ(expected_video_frames,
2078 manager_.render_stat_[DemuxerStream::VIDEO].num_values()); 2078 manager_.render_stat_[DemuxerStream::VIDEO].num_values());
2079 2079
2080 // Check that we did not miss audio frames. We expect two postponed frames 2080 // Check that we did not miss audio frames. We expect two postponed frames
2081 // that are not reported. 2081 // that are not reported.
2082 int expected_audio_frames = GetFrameCount(duration, kAudioFramePeriod, 1) - 2; 2082 int expected_audio_frames = GetFrameCount(duration, kAudioFramePeriod, 1) - 2;
2083 EXPECT_EQ(expected_audio_frames, 2083 EXPECT_EQ(expected_audio_frames,
2084 manager_.render_stat_[DemuxerStream::AUDIO].num_values()); 2084 manager_.render_stat_[DemuxerStream::AUDIO].num_values());
2085 } 2085 }
2086 2086
2087 TEST_F(MediaCodecPlayerTest, AVAudioEndsAcrossVideoConfigChange) { 2087 TEST_F(MediaCodecPlayerTest, DISABLED_AVAudioEndsAcrossVideoConfigChange) {
2088 SKIP_TEST_IF_MEDIA_CODEC_BRIDGE_IS_NOT_AVAILABLE(); 2088 SKIP_TEST_IF_MEDIA_CODEC_BRIDGE_IS_NOT_AVAILABLE();
2089 2089
2090 // Test that audio can end while video config change processing. 2090 // Test that audio can end while video config change processing.
2091 2091
2092 base::TimeDelta audio_duration = base::TimeDelta::FromMilliseconds(1000); 2092 base::TimeDelta audio_duration = base::TimeDelta::FromMilliseconds(1000);
2093 base::TimeDelta video_duration = base::TimeDelta::FromMilliseconds(1200); 2093 base::TimeDelta video_duration = base::TimeDelta::FromMilliseconds(1200);
2094 base::TimeDelta config_change_video = base::TimeDelta::FromMilliseconds(1000); 2094 base::TimeDelta config_change_video = base::TimeDelta::FromMilliseconds(1000);
2095 2095
2096 base::TimeDelta completion_timeout = base::TimeDelta::FromMilliseconds(3000); 2096 base::TimeDelta completion_timeout = base::TimeDelta::FromMilliseconds(3000);
2097 2097
(...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after
2166 EXPECT_EQ(1, manager_.num_video_codecs_created()); 2166 EXPECT_EQ(1, manager_.num_video_codecs_created());
2167 2167
2168 // Check that we did not miss audio frames. We expect two postponed frames 2168 // Check that we did not miss audio frames. We expect two postponed frames
2169 // that are not reported. 2169 // that are not reported.
2170 int expected_audio_frames = 2170 int expected_audio_frames =
2171 GetFrameCount(audio_duration, kAudioFramePeriod, 1) - 2; 2171 GetFrameCount(audio_duration, kAudioFramePeriod, 1) - 2;
2172 EXPECT_EQ(expected_audio_frames, 2172 EXPECT_EQ(expected_audio_frames,
2173 manager_.render_stat_[DemuxerStream::AUDIO].num_values()); 2173 manager_.render_stat_[DemuxerStream::AUDIO].num_values());
2174 } 2174 }
2175 2175
2176 TEST_F(MediaCodecPlayerTest, AVPrerollAcrossVideoConfigChange) { 2176 TEST_F(MediaCodecPlayerTest, DISABLED_AVPrerollAcrossVideoConfigChange) {
2177 SKIP_TEST_IF_MEDIA_CODEC_BRIDGE_IS_NOT_AVAILABLE(); 2177 SKIP_TEST_IF_MEDIA_CODEC_BRIDGE_IS_NOT_AVAILABLE();
2178 2178
2179 // Test that preroll continues if interrupted by video config change. 2179 // Test that preroll continues if interrupted by video config change.
2180 2180
2181 base::TimeDelta duration = base::TimeDelta::FromMilliseconds(1200); 2181 base::TimeDelta duration = base::TimeDelta::FromMilliseconds(1200);
2182 base::TimeDelta seek_position = base::TimeDelta::FromMilliseconds(1000); 2182 base::TimeDelta seek_position = base::TimeDelta::FromMilliseconds(1000);
2183 base::TimeDelta config_change_position = 2183 base::TimeDelta config_change_position =
2184 base::TimeDelta::FromMilliseconds(800); 2184 base::TimeDelta::FromMilliseconds(800);
2185 base::TimeDelta video_preroll_intvl = base::TimeDelta::FromMilliseconds(500); 2185 base::TimeDelta video_preroll_intvl = base::TimeDelta::FromMilliseconds(500);
2186 base::TimeDelta preroll_timeout = base::TimeDelta::FromMilliseconds(3000); 2186 base::TimeDelta preroll_timeout = base::TimeDelta::FromMilliseconds(3000);
(...skipping 28 matching lines...) Expand all
2215 EXPECT_TRUE(AlmostEqual(manager_.FirstFramePTS(DemuxerStream::AUDIO), 2215 EXPECT_TRUE(AlmostEqual(manager_.FirstFramePTS(DemuxerStream::AUDIO),
2216 manager_.FirstFramePTS(DemuxerStream::VIDEO), 25)); 2216 manager_.FirstFramePTS(DemuxerStream::VIDEO), 25));
2217 2217
2218 EXPECT_TRUE(AlmostEqual(manager_.FirstFrameTime(DemuxerStream::AUDIO), 2218 EXPECT_TRUE(AlmostEqual(manager_.FirstFrameTime(DemuxerStream::AUDIO),
2219 manager_.FirstFrameTime(DemuxerStream::VIDEO), 50)); 2219 manager_.FirstFrameTime(DemuxerStream::VIDEO), 50));
2220 2220
2221 // The playback should start at |seek_position| 2221 // The playback should start at |seek_position|
2222 EXPECT_TRUE(AlmostEqual(seek_position, manager_.pts_stat_.min(), 25)); 2222 EXPECT_TRUE(AlmostEqual(seek_position, manager_.pts_stat_.min(), 25));
2223 } 2223 }
2224 2224
2225 TEST_F(MediaCodecPlayerTest, AVPrerollAcrossAudioConfigChange) { 2225 TEST_F(MediaCodecPlayerTest, DISABLED_AVPrerollAcrossAudioConfigChange) {
2226 SKIP_TEST_IF_MEDIA_CODEC_BRIDGE_IS_NOT_AVAILABLE(); 2226 SKIP_TEST_IF_MEDIA_CODEC_BRIDGE_IS_NOT_AVAILABLE();
2227 2227
2228 // Test that preroll continues if interrupted by video config change. 2228 // Test that preroll continues if interrupted by video config change.
2229 2229
2230 base::TimeDelta duration = base::TimeDelta::FromMilliseconds(1200); 2230 base::TimeDelta duration = base::TimeDelta::FromMilliseconds(1200);
2231 base::TimeDelta seek_position = base::TimeDelta::FromMilliseconds(1000); 2231 base::TimeDelta seek_position = base::TimeDelta::FromMilliseconds(1000);
2232 base::TimeDelta config_change_position = 2232 base::TimeDelta config_change_position =
2233 base::TimeDelta::FromMilliseconds(800); 2233 base::TimeDelta::FromMilliseconds(800);
2234 base::TimeDelta audio_preroll_intvl = base::TimeDelta::FromMilliseconds(400); 2234 base::TimeDelta audio_preroll_intvl = base::TimeDelta::FromMilliseconds(400);
2235 base::TimeDelta preroll_timeout = base::TimeDelta::FromMilliseconds(3000); 2235 base::TimeDelta preroll_timeout = base::TimeDelta::FromMilliseconds(3000);
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
2273 // TODO(timav): maybe we should not call the testing callback for 2273 // TODO(timav): maybe we should not call the testing callback for
2274 // kRenderAfterPreroll for video (for audio we already do not call). 2274 // kRenderAfterPreroll for video (for audio we already do not call).
2275 // EXPECT_TRUE(AlmostEqual(manager_.FirstFrameTime(DemuxerStream::AUDIO), 2275 // EXPECT_TRUE(AlmostEqual(manager_.FirstFrameTime(DemuxerStream::AUDIO),
2276 // manager_.FirstFrameTime(DemuxerStream::VIDEO), 50)); 2276 // manager_.FirstFrameTime(DemuxerStream::VIDEO), 50));
2277 2277
2278 // The playback should start at |seek_position| 2278 // The playback should start at |seek_position|
2279 EXPECT_TRUE(AlmostEqual(seek_position, manager_.pts_stat_.min(), 25)); 2279 EXPECT_TRUE(AlmostEqual(seek_position, manager_.pts_stat_.min(), 25));
2280 } 2280 }
2281 2281
2282 } // namespace media 2282 } // namespace media
OLDNEW
« no previous file with comments | « media/base/android/media_codec_decoder_unittest.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698