OLD | NEW |
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 "media/filters/pipeline_integration_test_base.h" | 5 #include "media/filters/pipeline_integration_test_base.h" |
6 | 6 |
7 #include "base/bind.h" | 7 #include "base/bind.h" |
8 #include "media/base/decoder_buffer.h" | 8 #include "media/base/decoder_buffer.h" |
9 #include "media/base/decryptor_client.h" | 9 #include "media/base/decryptor_client.h" |
10 #include "media/base/mock_filters.h" | |
11 #include "media/base/test_data_util.h" | 10 #include "media/base/test_data_util.h" |
12 #include "media/crypto/aes_decryptor.h" | 11 #include "media/crypto/aes_decryptor.h" |
13 #include "media/filters/chunk_demuxer_client.h" | 12 #include "media/filters/chunk_demuxer_client.h" |
14 | 13 |
15 namespace media { | 14 namespace media { |
16 | 15 |
17 static const char kSourceId[] = "SourceId"; | 16 static const char kSourceId[] = "SourceId"; |
18 static const char kClearKeySystem[] = "org.w3.clearkey"; | 17 static const char kClearKeySystem[] = "org.w3.clearkey"; |
19 static const uint8 kInitData[] = { 0x69, 0x6e, 0x69, 0x74 }; | 18 static const uint8 kInitData[] = { 0x69, 0x6e, 0x69, 0x74 }; |
20 | 19 |
(...skipping 285 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
306 ASSERT_TRUE(Start(GetTestDataURL("bear-320x240.webm"), PIPELINE_OK)); | 305 ASSERT_TRUE(Start(GetTestDataURL("bear-320x240.webm"), PIPELINE_OK)); |
307 | 306 |
308 base::TimeDelta duration(pipeline_->GetMediaDuration()); | 307 base::TimeDelta duration(pipeline_->GetMediaDuration()); |
309 base::TimeDelta start_seek_time(duration / 4); | 308 base::TimeDelta start_seek_time(duration / 4); |
310 base::TimeDelta seek_time(duration * 3 / 4); | 309 base::TimeDelta seek_time(duration * 3 / 4); |
311 | 310 |
312 Play(); | 311 Play(); |
313 ASSERT_TRUE(WaitUntilCurrentTimeIsAfter(start_seek_time)); | 312 ASSERT_TRUE(WaitUntilCurrentTimeIsAfter(start_seek_time)); |
314 Pause(); | 313 Pause(); |
315 ASSERT_TRUE(Seek(seek_time)); | 314 ASSERT_TRUE(Seek(seek_time)); |
316 EXPECT_EQ(pipeline_->GetCurrentTime(), seek_time); | 315 EXPECT_EQ(pipeline_->GetMediaTime(), seek_time); |
317 Play(); | 316 Play(); |
318 ASSERT_TRUE(WaitUntilOnEnded()); | 317 ASSERT_TRUE(WaitUntilOnEnded()); |
319 | 318 |
320 // Make sure seeking after reaching the end works as expected. | 319 // Make sure seeking after reaching the end works as expected. |
321 Pause(); | 320 Pause(); |
322 ASSERT_TRUE(Seek(seek_time)); | 321 ASSERT_TRUE(Seek(seek_time)); |
323 EXPECT_EQ(pipeline_->GetCurrentTime(), seek_time); | 322 EXPECT_EQ(pipeline_->GetMediaTime(), seek_time); |
324 Play(); | 323 Play(); |
325 ASSERT_TRUE(WaitUntilOnEnded()); | 324 ASSERT_TRUE(WaitUntilOnEnded()); |
326 } | 325 } |
327 | 326 |
328 // TODO(acolwell): Fix flakiness http://crbug.com/117921 | 327 // TODO(acolwell): Fix flakiness http://crbug.com/117921 |
329 TEST_F(PipelineIntegrationTest, DISABLED_SeekWhilePlaying) { | 328 TEST_F(PipelineIntegrationTest, DISABLED_SeekWhilePlaying) { |
330 ASSERT_TRUE(Start(GetTestDataURL("bear-320x240.webm"), PIPELINE_OK)); | 329 ASSERT_TRUE(Start(GetTestDataURL("bear-320x240.webm"), PIPELINE_OK)); |
331 | 330 |
332 base::TimeDelta duration(pipeline_->GetMediaDuration()); | 331 base::TimeDelta duration(pipeline_->GetMediaDuration()); |
333 base::TimeDelta start_seek_time(duration / 4); | 332 base::TimeDelta start_seek_time(duration / 4); |
334 base::TimeDelta seek_time(duration * 3 / 4); | 333 base::TimeDelta seek_time(duration * 3 / 4); |
335 | 334 |
336 Play(); | 335 Play(); |
337 ASSERT_TRUE(WaitUntilCurrentTimeIsAfter(start_seek_time)); | 336 ASSERT_TRUE(WaitUntilCurrentTimeIsAfter(start_seek_time)); |
338 ASSERT_TRUE(Seek(seek_time)); | 337 ASSERT_TRUE(Seek(seek_time)); |
339 EXPECT_GE(pipeline_->GetCurrentTime(), seek_time); | 338 EXPECT_GE(pipeline_->GetMediaTime(), seek_time); |
340 ASSERT_TRUE(WaitUntilOnEnded()); | 339 ASSERT_TRUE(WaitUntilOnEnded()); |
341 | 340 |
342 // Make sure seeking after reaching the end works as expected. | 341 // Make sure seeking after reaching the end works as expected. |
343 ASSERT_TRUE(Seek(seek_time)); | 342 ASSERT_TRUE(Seek(seek_time)); |
344 EXPECT_GE(pipeline_->GetCurrentTime(), seek_time); | 343 EXPECT_GE(pipeline_->GetMediaTime(), seek_time); |
345 ASSERT_TRUE(WaitUntilOnEnded()); | 344 ASSERT_TRUE(WaitUntilOnEnded()); |
346 } | 345 } |
347 | 346 |
348 // Verify audio decoder & renderer can handle aborted demuxer reads. | 347 // Verify audio decoder & renderer can handle aborted demuxer reads. |
349 TEST_F(PipelineIntegrationTest, ChunkDemuxerAbortRead_AudioOnly) { | 348 TEST_F(PipelineIntegrationTest, ChunkDemuxerAbortRead_AudioOnly) { |
350 ASSERT_TRUE(TestSeekDuringRead("bear-320x240-audio-only.webm", 8192, | 349 ASSERT_TRUE(TestSeekDuringRead("bear-320x240-audio-only.webm", 8192, |
351 base::TimeDelta::FromMilliseconds(464), | 350 base::TimeDelta::FromMilliseconds(464), |
352 base::TimeDelta::FromMilliseconds(617), | 351 base::TimeDelta::FromMilliseconds(617), |
353 0x10CA, 19730, true, false)); | 352 0x10CA, 19730, true, false)); |
354 } | 353 } |
355 | 354 |
356 // Verify video decoder & renderer can handle aborted demuxer reads. | 355 // Verify video decoder & renderer can handle aborted demuxer reads. |
357 TEST_F(PipelineIntegrationTest, ChunkDemuxerAbortRead_VideoOnly) { | 356 TEST_F(PipelineIntegrationTest, ChunkDemuxerAbortRead_VideoOnly) { |
358 ASSERT_TRUE(TestSeekDuringRead("bear-320x240-video-only.webm", 32768, | 357 ASSERT_TRUE(TestSeekDuringRead("bear-320x240-video-only.webm", 32768, |
359 base::TimeDelta::FromMilliseconds(200), | 358 base::TimeDelta::FromMilliseconds(200), |
360 base::TimeDelta::FromMilliseconds(1668), | 359 base::TimeDelta::FromMilliseconds(1668), |
361 0x1C896, 65536, false, true)); | 360 0x1C896, 65536, false, true)); |
362 } | 361 } |
363 | 362 |
364 } // namespace media | 363 } // namespace media |
OLD | NEW |