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

Side by Side Diff: media/test/pipeline_integration_test.cc

Issue 1999893004: Splits PipelineImpl into main and media thread components. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: restores posting stop done_cb Created 4 years, 6 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
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 <stddef.h> 5 #include <stddef.h>
6 #include <stdint.h> 6 #include <stdint.h>
7 7
8 #include <memory> 8 #include <memory>
9 #include <utility> 9 #include <utility>
10 10
(...skipping 1185 matching lines...) Expand 10 before | Expand all | Expand 10 after
1196 TEST_F(PipelineIntegrationTest, MediaSource_ConfigChange_WebM) { 1196 TEST_F(PipelineIntegrationTest, MediaSource_ConfigChange_WebM) {
1197 MockMediaSource source("bear-320x240-16x9-aspect.webm", kWebM, 1197 MockMediaSource source("bear-320x240-16x9-aspect.webm", kWebM,
1198 kAppendWholeFile); 1198 kAppendWholeFile);
1199 StartPipelineWithMediaSource(&source); 1199 StartPipelineWithMediaSource(&source);
1200 1200
1201 EXPECT_CALL(*this, OnVideoNaturalSizeChange(gfx::Size(640, 360))).Times(1); 1201 EXPECT_CALL(*this, OnVideoNaturalSizeChange(gfx::Size(640, 360))).Times(1);
1202 scoped_refptr<DecoderBuffer> second_file = 1202 scoped_refptr<DecoderBuffer> second_file =
1203 ReadTestDataFile("bear-640x360.webm"); 1203 ReadTestDataFile("bear-640x360.webm");
1204 source.AppendAtTime(base::TimeDelta::FromSeconds(kAppendTimeSec), 1204 source.AppendAtTime(base::TimeDelta::FromSeconds(kAppendTimeSec),
1205 second_file->data(), second_file->data_size()); 1205 second_file->data(), second_file->data_size());
1206 source.EndOfStream();
1206 1207
1207 source.EndOfStream(); 1208 Play();
1209 EXPECT_TRUE(WaitUntilOnEnded());
1208 1210
1209 EXPECT_EQ(1u, pipeline_->GetBufferedTimeRanges().size()); 1211 EXPECT_EQ(1u, pipeline_->GetBufferedTimeRanges().size());
1210 EXPECT_EQ(0, pipeline_->GetBufferedTimeRanges().start(0).InMilliseconds()); 1212 EXPECT_EQ(0, pipeline_->GetBufferedTimeRanges().start(0).InMilliseconds());
1211 EXPECT_EQ(kAppendTimeMs + k640WebMFileDurationMs, 1213 EXPECT_EQ(kAppendTimeMs + k640WebMFileDurationMs,
1212 pipeline_->GetBufferedTimeRanges().end(0).InMilliseconds()); 1214 pipeline_->GetBufferedTimeRanges().end(0).InMilliseconds());
1213 1215
1214 Play();
1215
1216 EXPECT_TRUE(WaitUntilOnEnded());
1217 source.Shutdown(); 1216 source.Shutdown();
1218 Stop(); 1217 Stop();
1219 } 1218 }
1220 1219
1221 TEST_F(PipelineIntegrationTest, MediaSource_Remove_Updates_BufferedRanges) { 1220 TEST_F(PipelineIntegrationTest, MediaSource_Remove_Updates_BufferedRanges) {
1222 const char* input_filename = "bear-320x240.webm"; 1221 const char* input_filename = "bear-320x240.webm";
1223 MockMediaSource source(input_filename, kWebM, kAppendWholeFile); 1222 MockMediaSource source(input_filename, kWebM, kAppendWholeFile);
1224 StartPipelineWithMediaSource(&source); 1223 StartPipelineWithMediaSource(&source);
1225 1224
1226 auto buffered_ranges = pipeline_->GetBufferedTimeRanges(); 1225 auto buffered_ranges = pipeline_->GetBufferedTimeRanges();
1227 EXPECT_EQ(1u, buffered_ranges.size()); 1226 EXPECT_EQ(1u, buffered_ranges.size());
1228 EXPECT_EQ(0, buffered_ranges.start(0).InMilliseconds()); 1227 EXPECT_EQ(0, buffered_ranges.start(0).InMilliseconds());
1229 EXPECT_EQ(k320WebMFileDurationMs, buffered_ranges.end(0).InMilliseconds()); 1228 EXPECT_EQ(k320WebMFileDurationMs, buffered_ranges.end(0).InMilliseconds());
1230 1229
1231 source.RemoveRange(base::TimeDelta::FromMilliseconds(1000), 1230 source.RemoveRange(base::TimeDelta::FromMilliseconds(1000),
1232 base::TimeDelta::FromMilliseconds(k320WebMFileDurationMs)); 1231 base::TimeDelta::FromMilliseconds(k320WebMFileDurationMs));
1232 message_loop_.RunUntilIdle();
1233
1233 buffered_ranges = pipeline_->GetBufferedTimeRanges(); 1234 buffered_ranges = pipeline_->GetBufferedTimeRanges();
1234 EXPECT_EQ(1u, buffered_ranges.size()); 1235 EXPECT_EQ(1u, buffered_ranges.size());
1235 EXPECT_EQ(0, buffered_ranges.start(0).InMilliseconds()); 1236 EXPECT_EQ(0, buffered_ranges.start(0).InMilliseconds());
1236 EXPECT_EQ(1001, buffered_ranges.end(0).InMilliseconds()); 1237 EXPECT_EQ(1001, buffered_ranges.end(0).InMilliseconds());
1237 1238
1238 source.Shutdown(); 1239 source.Shutdown();
1239 Stop(); 1240 Stop();
1240 } 1241 }
1241 1242
1242 // This test case imitates media playback with advancing media_time and 1243 // This test case imitates media playback with advancing media_time and
(...skipping 13 matching lines...) Expand all
1256 auto buffered_ranges = pipeline_->GetBufferedTimeRanges(); 1257 auto buffered_ranges = pipeline_->GetBufferedTimeRanges();
1257 EXPECT_EQ(1u, buffered_ranges.size()); 1258 EXPECT_EQ(1u, buffered_ranges.size());
1258 do { 1259 do {
1259 // Advance media_time to the end of the currently buffered data 1260 // Advance media_time to the end of the currently buffered data
1260 base::TimeDelta media_time = buffered_ranges.end(0); 1261 base::TimeDelta media_time = buffered_ranges.end(0);
1261 source.Seek(media_time); 1262 source.Seek(media_time);
1262 // Ask MediaSource to evict buffered data if buffering limit has been 1263 // Ask MediaSource to evict buffered data if buffering limit has been
1263 // reached (the data will be evicted from the front of the buffered range). 1264 // reached (the data will be evicted from the front of the buffered range).
1264 source.EvictCodedFrames(media_time, file->data_size()); 1265 source.EvictCodedFrames(media_time, file->data_size());
1265 source.AppendAtTime(media_time, file->data(), file->data_size()); 1266 source.AppendAtTime(media_time, file->data(), file->data_size());
1267 message_loop_.RunUntilIdle();
1268
1266 buffered_ranges = pipeline_->GetBufferedTimeRanges(); 1269 buffered_ranges = pipeline_->GetBufferedTimeRanges();
1267 } while (buffered_ranges.size() == 1 && 1270 } while (buffered_ranges.size() == 1 &&
1268 buffered_ranges.start(0) == base::TimeDelta::FromSeconds(0)); 1271 buffered_ranges.start(0) == base::TimeDelta::FromSeconds(0));
1269 1272
1270 EXPECT_EQ(1u, buffered_ranges.size()); 1273 EXPECT_EQ(1u, buffered_ranges.size());
1271 source.Shutdown(); 1274 source.Shutdown();
1272 Stop(); 1275 Stop();
1273 } 1276 }
1274 1277
1275 TEST_F(PipelineIntegrationTest, 1278 TEST_F(PipelineIntegrationTest,
1276 MAYBE_EME(MediaSource_ConfigChange_Encrypted_WebM)) { 1279 MAYBE_EME(MediaSource_ConfigChange_Encrypted_WebM)) {
1277 MockMediaSource source("bear-320x240-16x9-aspect-av_enc-av.webm", kWebM, 1280 MockMediaSource source("bear-320x240-16x9-aspect-av_enc-av.webm", kWebM,
1278 kAppendWholeFile); 1281 kAppendWholeFile);
1279 FakeEncryptedMedia encrypted_media(new KeyProvidingApp()); 1282 FakeEncryptedMedia encrypted_media(new KeyProvidingApp());
1280 StartPipelineWithEncryptedMedia(&source, &encrypted_media); 1283 StartPipelineWithEncryptedMedia(&source, &encrypted_media);
1281 1284
1282 EXPECT_CALL(*this, OnVideoNaturalSizeChange(gfx::Size(640, 360))).Times(1); 1285 EXPECT_CALL(*this, OnVideoNaturalSizeChange(gfx::Size(640, 360))).Times(1);
1283 scoped_refptr<DecoderBuffer> second_file = 1286 scoped_refptr<DecoderBuffer> second_file =
1284 ReadTestDataFile("bear-640x360-av_enc-av.webm"); 1287 ReadTestDataFile("bear-640x360-av_enc-av.webm");
1285 source.AppendAtTime(base::TimeDelta::FromSeconds(kAppendTimeSec), 1288 source.AppendAtTime(base::TimeDelta::FromSeconds(kAppendTimeSec),
1286 second_file->data(), second_file->data_size()); 1289 second_file->data(), second_file->data_size());
1290 source.EndOfStream();
1287 1291
1288 source.EndOfStream(); 1292 Play();
1293 EXPECT_TRUE(WaitUntilOnEnded());
1289 1294
1290 EXPECT_EQ(1u, pipeline_->GetBufferedTimeRanges().size()); 1295 EXPECT_EQ(1u, pipeline_->GetBufferedTimeRanges().size());
1291 EXPECT_EQ(0, pipeline_->GetBufferedTimeRanges().start(0).InMilliseconds()); 1296 EXPECT_EQ(0, pipeline_->GetBufferedTimeRanges().start(0).InMilliseconds());
1292 EXPECT_EQ(kAppendTimeMs + k640WebMFileDurationMs, 1297 EXPECT_EQ(kAppendTimeMs + k640WebMFileDurationMs,
1293 pipeline_->GetBufferedTimeRanges().end(0).InMilliseconds()); 1298 pipeline_->GetBufferedTimeRanges().end(0).InMilliseconds());
1294 1299
1295 Play();
1296
1297 EXPECT_TRUE(WaitUntilOnEnded());
1298 source.Shutdown(); 1300 source.Shutdown();
1299 Stop(); 1301 Stop();
1300 } 1302 }
1301 1303
1302 // Config changes from encrypted to clear are not currently supported. 1304 // Config changes from encrypted to clear are not currently supported.
1303 TEST_F(PipelineIntegrationTest, 1305 TEST_F(PipelineIntegrationTest,
1304 MAYBE_EME(MediaSource_ConfigChange_ClearThenEncrypted_WebM)) { 1306 MAYBE_EME(MediaSource_ConfigChange_ClearThenEncrypted_WebM)) {
1305 MockMediaSource source("bear-320x240-16x9-aspect.webm", kWebM, 1307 MockMediaSource source("bear-320x240-16x9-aspect.webm", kWebM,
1306 kAppendWholeFile); 1308 kAppendWholeFile);
1307 FakeEncryptedMedia encrypted_media(new KeyProvidingApp()); 1309 FakeEncryptedMedia encrypted_media(new KeyProvidingApp());
(...skipping 85 matching lines...) Expand 10 before | Expand all | Expand 10 after
1393 base::TimeDelta::FromSecondsD(2.5 * 1024 / 44100); 1395 base::TimeDelta::FromSecondsD(2.5 * 1024 / 44100);
1394 const base::TimeDelta append_time = 1396 const base::TimeDelta append_time =
1395 source.last_timestamp_offset() - adts_preroll_duration; 1397 source.last_timestamp_offset() - adts_preroll_duration;
1396 1398
1397 scoped_refptr<DecoderBuffer> second_file = ReadTestDataFile("sfx.adts"); 1399 scoped_refptr<DecoderBuffer> second_file = ReadTestDataFile("sfx.adts");
1398 source.AppendAtTimeWithWindow( 1400 source.AppendAtTimeWithWindow(
1399 append_time, append_time + adts_preroll_duration, kInfiniteDuration(), 1401 append_time, append_time + adts_preroll_duration, kInfiniteDuration(),
1400 second_file->data(), second_file->data_size()); 1402 second_file->data(), second_file->data_size());
1401 source.EndOfStream(); 1403 source.EndOfStream();
1402 1404
1405 Play();
1406 EXPECT_TRUE(WaitUntilOnEnded());
1407
1403 EXPECT_EQ(592, source.last_timestamp_offset().InMilliseconds()); 1408 EXPECT_EQ(592, source.last_timestamp_offset().InMilliseconds());
1404 EXPECT_EQ(1u, pipeline_->GetBufferedTimeRanges().size()); 1409 EXPECT_EQ(1u, pipeline_->GetBufferedTimeRanges().size());
1405 EXPECT_EQ(0, pipeline_->GetBufferedTimeRanges().start(0).InMilliseconds()); 1410 EXPECT_EQ(0, pipeline_->GetBufferedTimeRanges().start(0).InMilliseconds());
1406 EXPECT_EQ(592, pipeline_->GetBufferedTimeRanges().end(0).InMilliseconds()); 1411 EXPECT_EQ(592, pipeline_->GetBufferedTimeRanges().end(0).InMilliseconds());
1407 1412
1408 Play();
1409
1410 EXPECT_TRUE(WaitUntilOnEnded());
1411
1412 // Verify preroll is stripped. 1413 // Verify preroll is stripped.
1413 EXPECT_HASH_EQ("-0.06,0.97,-0.90,-0.70,-0.53,-0.34,", GetAudioHash()); 1414 EXPECT_HASH_EQ("-0.06,0.97,-0.90,-0.70,-0.53,-0.34,", GetAudioHash());
1414 } 1415 }
1415 1416
1416 TEST_F(PipelineIntegrationTest, BasicPlaybackHashed_MP3) { 1417 TEST_F(PipelineIntegrationTest, BasicPlaybackHashed_MP3) {
1417 ASSERT_EQ(PIPELINE_OK, Start("sfx.mp3", kHashed)); 1418 ASSERT_EQ(PIPELINE_OK, Start("sfx.mp3", kHashed));
1418 1419
1419 Play(); 1420 Play();
1420 1421
1421 ASSERT_TRUE(WaitUntilOnEnded()); 1422 ASSERT_TRUE(WaitUntilOnEnded());
(...skipping 103 matching lines...) Expand 10 before | Expand all | Expand 10 after
1525 base::TimeDelta::FromSecondsD(576.0 / 44100); 1526 base::TimeDelta::FromSecondsD(576.0 / 44100);
1526 const base::TimeDelta append_time = 1527 const base::TimeDelta append_time =
1527 source.last_timestamp_offset() - mp3_preroll_duration; 1528 source.last_timestamp_offset() - mp3_preroll_duration;
1528 1529
1529 scoped_refptr<DecoderBuffer> second_file = ReadTestDataFile("sfx.mp3"); 1530 scoped_refptr<DecoderBuffer> second_file = ReadTestDataFile("sfx.mp3");
1530 source.AppendAtTimeWithWindow(append_time, append_time + mp3_preroll_duration, 1531 source.AppendAtTimeWithWindow(append_time, append_time + mp3_preroll_duration,
1531 kInfiniteDuration(), second_file->data(), 1532 kInfiniteDuration(), second_file->data(),
1532 second_file->data_size()); 1533 second_file->data_size());
1533 source.EndOfStream(); 1534 source.EndOfStream();
1534 1535
1536 Play();
1537 EXPECT_TRUE(WaitUntilOnEnded());
1538
1535 EXPECT_EQ(613, source.last_timestamp_offset().InMilliseconds()); 1539 EXPECT_EQ(613, source.last_timestamp_offset().InMilliseconds());
1536 EXPECT_EQ(1u, pipeline_->GetBufferedTimeRanges().size()); 1540 EXPECT_EQ(1u, pipeline_->GetBufferedTimeRanges().size());
1537 EXPECT_EQ(0, pipeline_->GetBufferedTimeRanges().start(0).InMilliseconds()); 1541 EXPECT_EQ(0, pipeline_->GetBufferedTimeRanges().start(0).InMilliseconds());
1538 EXPECT_EQ(613, pipeline_->GetBufferedTimeRanges().end(0).InMilliseconds()); 1542 EXPECT_EQ(613, pipeline_->GetBufferedTimeRanges().end(0).InMilliseconds());
1539
1540 Play();
1541
1542 EXPECT_TRUE(WaitUntilOnEnded());
1543 } 1543 }
1544 1544
1545 TEST_F(PipelineIntegrationTest, MediaSource_MP3_Icecast) { 1545 TEST_F(PipelineIntegrationTest, MediaSource_MP3_Icecast) {
1546 MockMediaSource source("icy_sfx.mp3", kMP3, kAppendWholeFile); 1546 MockMediaSource source("icy_sfx.mp3", kMP3, kAppendWholeFile);
1547 StartPipelineWithMediaSource(&source); 1547 StartPipelineWithMediaSource(&source);
1548 source.EndOfStream(); 1548 source.EndOfStream();
1549 1549
1550 Play(); 1550 Play();
1551 1551
1552 EXPECT_TRUE(WaitUntilOnEnded()); 1552 EXPECT_TRUE(WaitUntilOnEnded());
1553 } 1553 }
1554 1554
1555 TEST_F(PipelineIntegrationTest, MediaSource_ConfigChange_MP4) { 1555 TEST_F(PipelineIntegrationTest, MediaSource_ConfigChange_MP4) {
1556 MockMediaSource source("bear-640x360-av_frag.mp4", kMP4, kAppendWholeFile); 1556 MockMediaSource source("bear-640x360-av_frag.mp4", kMP4, kAppendWholeFile);
1557 StartPipelineWithMediaSource(&source); 1557 StartPipelineWithMediaSource(&source);
1558 1558
1559 EXPECT_CALL(*this, OnVideoNaturalSizeChange(gfx::Size(1280, 720))).Times(1); 1559 EXPECT_CALL(*this, OnVideoNaturalSizeChange(gfx::Size(1280, 720))).Times(1);
1560 scoped_refptr<DecoderBuffer> second_file = 1560 scoped_refptr<DecoderBuffer> second_file =
1561 ReadTestDataFile("bear-1280x720-av_frag.mp4"); 1561 ReadTestDataFile("bear-1280x720-av_frag.mp4");
1562 source.AppendAtTime(base::TimeDelta::FromSeconds(kAppendTimeSec), 1562 source.AppendAtTime(base::TimeDelta::FromSeconds(kAppendTimeSec),
1563 second_file->data(), second_file->data_size()); 1563 second_file->data(), second_file->data_size());
1564 source.EndOfStream();
1564 1565
1565 source.EndOfStream(); 1566 Play();
1567 EXPECT_TRUE(WaitUntilOnEnded());
1566 1568
1567 EXPECT_EQ(1u, pipeline_->GetBufferedTimeRanges().size()); 1569 EXPECT_EQ(1u, pipeline_->GetBufferedTimeRanges().size());
1568 EXPECT_EQ(0, pipeline_->GetBufferedTimeRanges().start(0).InMilliseconds()); 1570 EXPECT_EQ(0, pipeline_->GetBufferedTimeRanges().start(0).InMilliseconds());
1569 EXPECT_EQ(kAppendTimeMs + k1280IsoFileDurationMs, 1571 EXPECT_EQ(kAppendTimeMs + k1280IsoFileDurationMs,
1570 pipeline_->GetBufferedTimeRanges().end(0).InMilliseconds()); 1572 pipeline_->GetBufferedTimeRanges().end(0).InMilliseconds());
1571 1573
1572 Play();
1573
1574 EXPECT_TRUE(WaitUntilOnEnded());
1575 source.Shutdown(); 1574 source.Shutdown();
1576 Stop(); 1575 Stop();
1577 } 1576 }
1578 1577
1579 TEST_F(PipelineIntegrationTest, 1578 TEST_F(PipelineIntegrationTest,
1580 MAYBE_EME(MediaSource_ConfigChange_Encrypted_MP4_CENC_VideoOnly)) { 1579 MAYBE_EME(MediaSource_ConfigChange_Encrypted_MP4_CENC_VideoOnly)) {
1581 MockMediaSource source("bear-640x360-v_frag-cenc.mp4", kMP4Video, 1580 MockMediaSource source("bear-640x360-v_frag-cenc.mp4", kMP4Video,
1582 kAppendWholeFile); 1581 kAppendWholeFile);
1583 FakeEncryptedMedia encrypted_media(new KeyProvidingApp()); 1582 FakeEncryptedMedia encrypted_media(new KeyProvidingApp());
1584 StartPipelineWithEncryptedMedia(&source, &encrypted_media); 1583 StartPipelineWithEncryptedMedia(&source, &encrypted_media);
1585 1584
1586 EXPECT_CALL(*this, OnVideoNaturalSizeChange(gfx::Size(1280, 720))).Times(1); 1585 EXPECT_CALL(*this, OnVideoNaturalSizeChange(gfx::Size(1280, 720))).Times(1);
1587 scoped_refptr<DecoderBuffer> second_file = 1586 scoped_refptr<DecoderBuffer> second_file =
1588 ReadTestDataFile("bear-1280x720-v_frag-cenc.mp4"); 1587 ReadTestDataFile("bear-1280x720-v_frag-cenc.mp4");
1589 source.AppendAtTime(base::TimeDelta::FromSeconds(kAppendTimeSec), 1588 source.AppendAtTime(base::TimeDelta::FromSeconds(kAppendTimeSec),
1590 second_file->data(), second_file->data_size()); 1589 second_file->data(), second_file->data_size());
1590 source.EndOfStream();
1591 1591
1592 source.EndOfStream(); 1592 Play();
1593 EXPECT_TRUE(WaitUntilOnEnded());
1593 1594
1594 EXPECT_EQ(1u, pipeline_->GetBufferedTimeRanges().size()); 1595 EXPECT_EQ(1u, pipeline_->GetBufferedTimeRanges().size());
1595 EXPECT_EQ(0, pipeline_->GetBufferedTimeRanges().start(0).InMilliseconds()); 1596 EXPECT_EQ(0, pipeline_->GetBufferedTimeRanges().start(0).InMilliseconds());
1596 EXPECT_EQ(kAppendTimeMs + k1280IsoFileDurationMs, 1597 EXPECT_EQ(kAppendTimeMs + k1280IsoFileDurationMs,
1597 pipeline_->GetBufferedTimeRanges().end(0).InMilliseconds()); 1598 pipeline_->GetBufferedTimeRanges().end(0).InMilliseconds());
1598 1599
1599 Play();
1600
1601 EXPECT_TRUE(WaitUntilOnEnded());
1602 source.Shutdown(); 1600 source.Shutdown();
1603 Stop(); 1601 Stop();
1604 } 1602 }
1605 1603
1606 TEST_F(PipelineIntegrationTest, 1604 TEST_F(PipelineIntegrationTest,
1607 MAYBE_EME( 1605 MAYBE_EME(
1608 MediaSource_ConfigChange_Encrypted_MP4_CENC_KeyRotation_VideoOnly)) { 1606 MediaSource_ConfigChange_Encrypted_MP4_CENC_KeyRotation_VideoOnly)) {
1609 MockMediaSource source("bear-640x360-v_frag-cenc-key_rotation.mp4", kMP4Video, 1607 MockMediaSource source("bear-640x360-v_frag-cenc-key_rotation.mp4", kMP4Video,
1610 kAppendWholeFile); 1608 kAppendWholeFile);
1611 FakeEncryptedMedia encrypted_media(new RotatingKeyProvidingApp()); 1609 FakeEncryptedMedia encrypted_media(new RotatingKeyProvidingApp());
1612 StartPipelineWithEncryptedMedia(&source, &encrypted_media); 1610 StartPipelineWithEncryptedMedia(&source, &encrypted_media);
1613 1611
1614 EXPECT_CALL(*this, OnVideoNaturalSizeChange(gfx::Size(1280, 720))).Times(1); 1612 EXPECT_CALL(*this, OnVideoNaturalSizeChange(gfx::Size(1280, 720))).Times(1);
1615 scoped_refptr<DecoderBuffer> second_file = 1613 scoped_refptr<DecoderBuffer> second_file =
1616 ReadTestDataFile("bear-1280x720-v_frag-cenc-key_rotation.mp4"); 1614 ReadTestDataFile("bear-1280x720-v_frag-cenc-key_rotation.mp4");
1617 source.AppendAtTime(base::TimeDelta::FromSeconds(kAppendTimeSec), 1615 source.AppendAtTime(base::TimeDelta::FromSeconds(kAppendTimeSec),
1618 second_file->data(), second_file->data_size()); 1616 second_file->data(), second_file->data_size());
1617 source.EndOfStream();
1619 1618
1620 source.EndOfStream(); 1619 Play();
1620 EXPECT_TRUE(WaitUntilOnEnded());
1621 1621
1622 EXPECT_EQ(1u, pipeline_->GetBufferedTimeRanges().size()); 1622 EXPECT_EQ(1u, pipeline_->GetBufferedTimeRanges().size());
1623 EXPECT_EQ(0, pipeline_->GetBufferedTimeRanges().start(0).InMilliseconds()); 1623 EXPECT_EQ(0, pipeline_->GetBufferedTimeRanges().start(0).InMilliseconds());
1624 EXPECT_EQ(kAppendTimeMs + k1280IsoFileDurationMs, 1624 EXPECT_EQ(kAppendTimeMs + k1280IsoFileDurationMs,
1625 pipeline_->GetBufferedTimeRanges().end(0).InMilliseconds()); 1625 pipeline_->GetBufferedTimeRanges().end(0).InMilliseconds());
1626 1626
1627 Play();
1628
1629 EXPECT_TRUE(WaitUntilOnEnded());
1630 source.Shutdown(); 1627 source.Shutdown();
1631 Stop(); 1628 Stop();
1632 } 1629 }
1633 1630
1634 // Config changes from clear to encrypted are not currently supported. 1631 // Config changes from clear to encrypted are not currently supported.
1635 // TODO(ddorwin): Figure out why this CHECKs in AppendAtTime(). 1632 // TODO(ddorwin): Figure out why this CHECKs in AppendAtTime().
1636 TEST_F(PipelineIntegrationTest, 1633 TEST_F(PipelineIntegrationTest,
1637 DISABLED_MediaSource_ConfigChange_ClearThenEncrypted_MP4_CENC) { 1634 DISABLED_MediaSource_ConfigChange_ClearThenEncrypted_MP4_CENC) {
1638 MockMediaSource source("bear-640x360-av_frag.mp4", kMP4Video, 1635 MockMediaSource source("bear-640x360-av_frag.mp4", kMP4Video,
1639 kAppendWholeFile); 1636 kAppendWholeFile);
(...skipping 579 matching lines...) Expand 10 before | Expand all | Expand 10 after
2219 2216
2220 TEST_F(PipelineIntegrationTest, BasicPlaybackPositiveStartTime) { 2217 TEST_F(PipelineIntegrationTest, BasicPlaybackPositiveStartTime) {
2221 ASSERT_EQ(PIPELINE_OK, Start("nonzero-start-time.webm")); 2218 ASSERT_EQ(PIPELINE_OK, Start("nonzero-start-time.webm"));
2222 Play(); 2219 Play();
2223 ASSERT_TRUE(WaitUntilOnEnded()); 2220 ASSERT_TRUE(WaitUntilOnEnded());
2224 ASSERT_EQ(base::TimeDelta::FromMicroseconds(396000), 2221 ASSERT_EQ(base::TimeDelta::FromMicroseconds(396000),
2225 demuxer_->GetStartTime()); 2222 demuxer_->GetStartTime());
2226 } 2223 }
2227 2224
2228 } // namespace media 2225 } // namespace media
OLDNEW
« no previous file with comments | « media/formats/webm/webm_stream_parser_unittest.cc ('k') | media/test/pipeline_integration_test_base.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698