| 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 "base/command_line.h" | 8 #include "base/command_line.h" |
| 9 #include "base/memory/scoped_ptr.h" | 9 #include "base/memory/scoped_ptr.h" |
| 10 #include "base/strings/string_util.h" | 10 #include "base/strings/string_util.h" |
| (...skipping 494 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 505 | 505 |
| 506 ASSERT_TRUE(Start(GetTestDataFilePath("bear-320x240-av_enc-av.webm"), | 506 ASSERT_TRUE(Start(GetTestDataFilePath("bear-320x240-av_enc-av.webm"), |
| 507 encrypted_media.decryptor())); | 507 encrypted_media.decryptor())); |
| 508 | 508 |
| 509 Play(); | 509 Play(); |
| 510 | 510 |
| 511 ASSERT_TRUE(WaitUntilOnEnded()); | 511 ASSERT_TRUE(WaitUntilOnEnded()); |
| 512 Stop(); | 512 Stop(); |
| 513 } | 513 } |
| 514 | 514 |
| 515 TEST_F(PipelineIntegrationTest, BasicPlayback_MediaSource) { | 515 // TODO(acolwell/wolenetz): Re-enable for use with compliant coded frame |
| 516 // processor (see http://crbug.com/249422) once WebM stream parser fixed to |
| 517 // always emit frames with valid durations (see http://crbug.com/351166). |
| 518 TEST_F(PipelineIntegrationTest, DISABLED_BasicPlayback_MediaSource) { |
| 516 MockMediaSource source("bear-320x240.webm", kWebM, 219229); | 519 MockMediaSource source("bear-320x240.webm", kWebM, 219229); |
| 517 StartPipelineWithMediaSource(&source); | 520 StartPipelineWithMediaSource(&source); |
| 518 source.EndOfStream(); | 521 source.EndOfStream(); |
| 519 | 522 |
| 520 EXPECT_EQ(1u, pipeline_->GetBufferedTimeRanges().size()); | 523 EXPECT_EQ(1u, pipeline_->GetBufferedTimeRanges().size()); |
| 521 EXPECT_EQ(0, pipeline_->GetBufferedTimeRanges().start(0).InMilliseconds()); | 524 EXPECT_EQ(0, pipeline_->GetBufferedTimeRanges().start(0).InMilliseconds()); |
| 522 EXPECT_EQ(k320WebMFileDurationMs, | 525 EXPECT_EQ(k320WebMFileDurationMs, |
| 523 pipeline_->GetBufferedTimeRanges().end(0).InMilliseconds()); | 526 pipeline_->GetBufferedTimeRanges().end(0).InMilliseconds()); |
| 524 | 527 |
| 525 Play(); | 528 Play(); |
| 526 | 529 |
| 527 ASSERT_TRUE(WaitUntilOnEnded()); | 530 ASSERT_TRUE(WaitUntilOnEnded()); |
| 528 source.Abort(); | 531 source.Abort(); |
| 529 Stop(); | 532 Stop(); |
| 530 } | 533 } |
| 531 | 534 |
| 532 TEST_F(PipelineIntegrationTest, BasicPlayback_MediaSource_VP9_WebM) { | 535 // TODO(acolwell/wolenetz): Re-enable for use with compliant coded frame |
| 536 // processor (see http://crbug.com/249422) once WebM stream parser fixed to |
| 537 // always emit frames with valid durations (see http://crbug.com/351166). |
| 538 TEST_F(PipelineIntegrationTest, DISABLED_BasicPlayback_MediaSource_VP9_WebM) { |
| 533 MockMediaSource source("bear-vp9.webm", kWebMVP9, 67504); | 539 MockMediaSource source("bear-vp9.webm", kWebMVP9, 67504); |
| 534 StartPipelineWithMediaSource(&source); | 540 StartPipelineWithMediaSource(&source); |
| 535 source.EndOfStream(); | 541 source.EndOfStream(); |
| 536 | 542 |
| 537 EXPECT_EQ(1u, pipeline_->GetBufferedTimeRanges().size()); | 543 EXPECT_EQ(1u, pipeline_->GetBufferedTimeRanges().size()); |
| 538 EXPECT_EQ(0, pipeline_->GetBufferedTimeRanges().start(0).InMilliseconds()); | 544 EXPECT_EQ(0, pipeline_->GetBufferedTimeRanges().start(0).InMilliseconds()); |
| 539 EXPECT_EQ(kVP9WebMFileDurationMs, | 545 EXPECT_EQ(kVP9WebMFileDurationMs, |
| 540 pipeline_->GetBufferedTimeRanges().end(0).InMilliseconds()); | 546 pipeline_->GetBufferedTimeRanges().end(0).InMilliseconds()); |
| 541 | 547 |
| 542 Play(); | 548 Play(); |
| 543 | 549 |
| 544 ASSERT_TRUE(WaitUntilOnEnded()); | 550 ASSERT_TRUE(WaitUntilOnEnded()); |
| 545 source.Abort(); | 551 source.Abort(); |
| 546 Stop(); | 552 Stop(); |
| 547 } | 553 } |
| 548 | 554 |
| 549 TEST_F(PipelineIntegrationTest, BasicPlayback_MediaSource_VP8A_WebM) { | 555 // TODO(acolwell/wolenetz): Re-enable for use with compliant coded frame |
| 556 // processor (see http://crbug.com/249422) once WebM stream parser fixed to |
| 557 // always emit frames with valid durations (see http://crbug.com/351166). |
| 558 TEST_F(PipelineIntegrationTest, DISABLED_BasicPlayback_MediaSource_VP8A_WebM) { |
| 550 EXPECT_CALL(*this, OnSetOpaque(false)).Times(AnyNumber()); | 559 EXPECT_CALL(*this, OnSetOpaque(false)).Times(AnyNumber()); |
| 551 MockMediaSource source("bear-vp8a.webm", kVideoOnlyWebM, kAppendWholeFile); | 560 MockMediaSource source("bear-vp8a.webm", kVideoOnlyWebM, kAppendWholeFile); |
| 552 StartPipelineWithMediaSource(&source); | 561 StartPipelineWithMediaSource(&source); |
| 553 source.EndOfStream(); | 562 source.EndOfStream(); |
| 554 | 563 |
| 555 EXPECT_EQ(1u, pipeline_->GetBufferedTimeRanges().size()); | 564 EXPECT_EQ(1u, pipeline_->GetBufferedTimeRanges().size()); |
| 556 EXPECT_EQ(0, pipeline_->GetBufferedTimeRanges().start(0).InMilliseconds()); | 565 EXPECT_EQ(0, pipeline_->GetBufferedTimeRanges().start(0).InMilliseconds()); |
| 557 EXPECT_EQ(kVP8AWebMFileDurationMs, | 566 EXPECT_EQ(kVP8AWebMFileDurationMs, |
| 558 pipeline_->GetBufferedTimeRanges().end(0).InMilliseconds()); | 567 pipeline_->GetBufferedTimeRanges().end(0).InMilliseconds()); |
| 559 | 568 |
| 560 Play(); | 569 Play(); |
| 561 | 570 |
| 562 ASSERT_TRUE(WaitUntilOnEnded()); | 571 ASSERT_TRUE(WaitUntilOnEnded()); |
| 563 source.Abort(); | 572 source.Abort(); |
| 564 Stop(); | 573 Stop(); |
| 565 } | 574 } |
| 566 | 575 |
| 567 TEST_F(PipelineIntegrationTest, BasicPlayback_MediaSource_Opus_WebM) { | 576 // TODO(acolwell/wolenetz): Re-enable for use with compliant coded frame |
| 577 // processor (see http://crbug.com/249422) once WebM stream parser fixed to |
| 578 // always emit frames with valid durations (see http://crbug.com/351166). |
| 579 TEST_F(PipelineIntegrationTest, DISABLED_BasicPlayback_MediaSource_Opus_WebM) { |
| 568 EXPECT_CALL(*this, OnSetOpaque(false)).Times(AnyNumber()); | 580 EXPECT_CALL(*this, OnSetOpaque(false)).Times(AnyNumber()); |
| 569 MockMediaSource source("bear-opus-end-trimming.webm", kOpusAudioOnlyWebM, | 581 MockMediaSource source("bear-opus-end-trimming.webm", kOpusAudioOnlyWebM, |
| 570 kAppendWholeFile); | 582 kAppendWholeFile); |
| 571 StartPipelineWithMediaSource(&source); | 583 StartPipelineWithMediaSource(&source); |
| 572 source.EndOfStream(); | 584 source.EndOfStream(); |
| 573 | 585 |
| 574 EXPECT_EQ(1u, pipeline_->GetBufferedTimeRanges().size()); | 586 EXPECT_EQ(1u, pipeline_->GetBufferedTimeRanges().size()); |
| 575 EXPECT_EQ(0, pipeline_->GetBufferedTimeRanges().start(0).InMilliseconds()); | 587 EXPECT_EQ(0, pipeline_->GetBufferedTimeRanges().start(0).InMilliseconds()); |
| 576 // TODO(acolwell/wolenetz): Drop the "+ 1" once WebM stream parser always | 588 // TODO(acolwell/wolenetz): Drop the "+ 1" once WebM stream parser always |
| 577 // emits frames with valid durations (see http://crbug.com/351166) and | 589 // emits frames with valid durations (see http://crbug.com/351166) and |
| (...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 613 ASSERT_TRUE(Seek(seek_time)); | 625 ASSERT_TRUE(Seek(seek_time)); |
| 614 | 626 |
| 615 ASSERT_TRUE(WaitUntilOnEnded()); | 627 ASSERT_TRUE(WaitUntilOnEnded()); |
| 616 | 628 |
| 617 EXPECT_EQ("0.76,0.20,-0.82,-0.58,-1.29,-0.29,", GetAudioHash()); | 629 EXPECT_EQ("0.76,0.20,-0.82,-0.58,-1.29,-0.29,", GetAudioHash()); |
| 618 | 630 |
| 619 source.Abort(); | 631 source.Abort(); |
| 620 Stop(); | 632 Stop(); |
| 621 } | 633 } |
| 622 | 634 |
| 623 TEST_F(PipelineIntegrationTest, MediaSource_ConfigChange_WebM) { | 635 // TODO(acolwell/wolenetz): Re-enable for use with compliant coded frame |
| 636 // processor (see http://crbug.com/249422) once WebM stream parser fixed to |
| 637 // always emit frames with valid durations (see http://crbug.com/351166). |
| 638 TEST_F(PipelineIntegrationTest, DISABLED_MediaSource_ConfigChange_WebM) { |
| 624 MockMediaSource source("bear-320x240-16x9-aspect.webm", kWebM, | 639 MockMediaSource source("bear-320x240-16x9-aspect.webm", kWebM, |
| 625 kAppendWholeFile); | 640 kAppendWholeFile); |
| 626 StartPipelineWithMediaSource(&source); | 641 StartPipelineWithMediaSource(&source); |
| 627 | 642 |
| 628 scoped_refptr<DecoderBuffer> second_file = | 643 scoped_refptr<DecoderBuffer> second_file = |
| 629 ReadTestDataFile("bear-640x360.webm"); | 644 ReadTestDataFile("bear-640x360.webm"); |
| 630 | 645 |
| 631 source.AppendAtTime(base::TimeDelta::FromSeconds(kAppendTimeSec), | 646 source.AppendAtTime(base::TimeDelta::FromSeconds(kAppendTimeSec), |
| 632 second_file->data(), second_file->data_size()); | 647 second_file->data(), second_file->data_size()); |
| 633 | 648 |
| 634 source.EndOfStream(); | 649 source.EndOfStream(); |
| 635 | 650 |
| 636 EXPECT_EQ(1u, pipeline_->GetBufferedTimeRanges().size()); | 651 EXPECT_EQ(1u, pipeline_->GetBufferedTimeRanges().size()); |
| 637 EXPECT_EQ(0, pipeline_->GetBufferedTimeRanges().start(0).InMilliseconds()); | 652 EXPECT_EQ(0, pipeline_->GetBufferedTimeRanges().start(0).InMilliseconds()); |
| 638 EXPECT_EQ(kAppendTimeMs + k640WebMFileDurationMs, | 653 EXPECT_EQ(kAppendTimeMs + k640WebMFileDurationMs, |
| 639 pipeline_->GetBufferedTimeRanges().end(0).InMilliseconds()); | 654 pipeline_->GetBufferedTimeRanges().end(0).InMilliseconds()); |
| 640 | 655 |
| 641 Play(); | 656 Play(); |
| 642 | 657 |
| 643 EXPECT_TRUE(WaitUntilOnEnded()); | 658 EXPECT_TRUE(WaitUntilOnEnded()); |
| 644 source.Abort(); | 659 source.Abort(); |
| 645 Stop(); | 660 Stop(); |
| 646 } | 661 } |
| 647 | 662 |
| 648 TEST_F(PipelineIntegrationTest, MediaSource_ConfigChange_Encrypted_WebM) { | 663 // TODO(acolwell/wolenetz): Re-enable for use with compliant coded frame |
| 664 // processor (see http://crbug.com/249422) once WebM stream parser fixed to |
| 665 // always emit frames with valid durations (see http://crbug.com/351166). |
| 666 TEST_F(PipelineIntegrationTest, |
| 667 DISABLED_MediaSource_ConfigChange_Encrypted_WebM) { |
| 649 MockMediaSource source("bear-320x240-16x9-aspect-av_enc-av.webm", kWebM, | 668 MockMediaSource source("bear-320x240-16x9-aspect-av_enc-av.webm", kWebM, |
| 650 kAppendWholeFile); | 669 kAppendWholeFile); |
| 651 FakeEncryptedMedia encrypted_media(new KeyProvidingApp()); | 670 FakeEncryptedMedia encrypted_media(new KeyProvidingApp()); |
| 652 StartPipelineWithEncryptedMedia(&source, &encrypted_media); | 671 StartPipelineWithEncryptedMedia(&source, &encrypted_media); |
| 653 | 672 |
| 654 scoped_refptr<DecoderBuffer> second_file = | 673 scoped_refptr<DecoderBuffer> second_file = |
| 655 ReadTestDataFile("bear-640x360-av_enc-av.webm"); | 674 ReadTestDataFile("bear-640x360-av_enc-av.webm"); |
| 656 | 675 |
| 657 source.AppendAtTime(base::TimeDelta::FromSeconds(kAppendTimeSec), | 676 source.AppendAtTime(base::TimeDelta::FromSeconds(kAppendTimeSec), |
| 658 second_file->data(), second_file->data_size()); | 677 second_file->data(), second_file->data_size()); |
| 659 | 678 |
| 660 source.EndOfStream(); | 679 source.EndOfStream(); |
| 661 | 680 |
| 662 EXPECT_EQ(1u, pipeline_->GetBufferedTimeRanges().size()); | 681 EXPECT_EQ(1u, pipeline_->GetBufferedTimeRanges().size()); |
| 663 EXPECT_EQ(0, pipeline_->GetBufferedTimeRanges().start(0).InMilliseconds()); | 682 EXPECT_EQ(0, pipeline_->GetBufferedTimeRanges().start(0).InMilliseconds()); |
| 664 EXPECT_EQ(kAppendTimeMs + k640WebMFileDurationMs, | 683 EXPECT_EQ(kAppendTimeMs + k640WebMFileDurationMs, |
| 665 pipeline_->GetBufferedTimeRanges().end(0).InMilliseconds()); | 684 pipeline_->GetBufferedTimeRanges().end(0).InMilliseconds()); |
| 666 | 685 |
| 667 Play(); | 686 Play(); |
| 668 | 687 |
| 669 EXPECT_TRUE(WaitUntilOnEnded()); | 688 EXPECT_TRUE(WaitUntilOnEnded()); |
| 670 source.Abort(); | 689 source.Abort(); |
| 671 Stop(); | 690 Stop(); |
| 672 } | 691 } |
| 673 | 692 |
| 674 // Config changes from encrypted to clear are not currently supported. | 693 // Config changes from encrypted to clear are not currently supported. |
| 694 // TODO(acolwell/wolenetz): Re-enable for use with compliant coded frame |
| 695 // processor (see http://crbug.com/249422) once WebM stream parser fixed to |
| 696 // always emit frames with valid durations (see http://crbug.com/351166). |
| 675 TEST_F(PipelineIntegrationTest, | 697 TEST_F(PipelineIntegrationTest, |
| 676 MediaSource_ConfigChange_ClearThenEncrypted_WebM) { | 698 DISABLED_MediaSource_ConfigChange_ClearThenEncrypted_WebM) { |
| 677 MockMediaSource source("bear-320x240-16x9-aspect.webm", kWebM, | 699 MockMediaSource source("bear-320x240-16x9-aspect.webm", kWebM, |
| 678 kAppendWholeFile); | 700 kAppendWholeFile); |
| 679 FakeEncryptedMedia encrypted_media(new KeyProvidingApp()); | 701 FakeEncryptedMedia encrypted_media(new KeyProvidingApp()); |
| 680 StartPipelineWithEncryptedMedia(&source, &encrypted_media); | 702 StartPipelineWithEncryptedMedia(&source, &encrypted_media); |
| 681 | 703 |
| 682 scoped_refptr<DecoderBuffer> second_file = | 704 scoped_refptr<DecoderBuffer> second_file = |
| 683 ReadTestDataFile("bear-640x360-av_enc-av.webm"); | 705 ReadTestDataFile("bear-640x360-av_enc-av.webm"); |
| 684 | 706 |
| 685 source.AppendAtTime(base::TimeDelta::FromSeconds(kAppendTimeSec), | 707 source.AppendAtTime(base::TimeDelta::FromSeconds(kAppendTimeSec), |
| 686 second_file->data(), second_file->data_size()); | 708 second_file->data(), second_file->data_size()); |
| 687 | 709 |
| 688 source.EndOfStream(); | 710 source.EndOfStream(); |
| 689 | 711 |
| 690 message_loop_.Run(); | 712 message_loop_.Run(); |
| 691 EXPECT_EQ(PIPELINE_ERROR_DECODE, pipeline_status_); | 713 EXPECT_EQ(PIPELINE_ERROR_DECODE, pipeline_status_); |
| 692 | 714 |
| 693 EXPECT_EQ(1u, pipeline_->GetBufferedTimeRanges().size()); | 715 EXPECT_EQ(1u, pipeline_->GetBufferedTimeRanges().size()); |
| 694 EXPECT_EQ(0, pipeline_->GetBufferedTimeRanges().start(0).InMilliseconds()); | 716 EXPECT_EQ(0, pipeline_->GetBufferedTimeRanges().start(0).InMilliseconds()); |
| 695 // The second video was not added, so its time has not been added. | 717 // The second video was not added, so its time has not been added. |
| 696 EXPECT_EQ(k320WebMFileDurationMs, | 718 EXPECT_EQ(k320WebMFileDurationMs, |
| 697 pipeline_->GetBufferedTimeRanges().end(0).InMilliseconds()); | 719 pipeline_->GetBufferedTimeRanges().end(0).InMilliseconds()); |
| 698 | 720 |
| 699 Play(); | 721 Play(); |
| 700 | 722 |
| 701 EXPECT_EQ(PIPELINE_ERROR_DECODE, WaitUntilEndedOrError()); | 723 EXPECT_EQ(PIPELINE_ERROR_DECODE, WaitUntilEndedOrError()); |
| 702 source.Abort(); | 724 source.Abort(); |
| 703 } | 725 } |
| 704 | 726 |
| 705 // Config changes from clear to encrypted are not currently supported. | 727 // Config changes from clear to encrypted are not currently supported. |
| 728 // TODO(acolwell/wolenetz): Re-enable for use with compliant coded frame |
| 729 // processor (see http://crbug.com/249422) once WebM stream parser fixed to |
| 730 // always emit frames with valid durations (see http://crbug.com/351166). |
| 706 TEST_F(PipelineIntegrationTest, | 731 TEST_F(PipelineIntegrationTest, |
| 707 MediaSource_ConfigChange_EncryptedThenClear_WebM) { | 732 DISABLED_MediaSource_ConfigChange_EncryptedThenClear_WebM) { |
| 708 MockMediaSource source("bear-320x240-16x9-aspect-av_enc-av.webm", kWebM, | 733 MockMediaSource source("bear-320x240-16x9-aspect-av_enc-av.webm", kWebM, |
| 709 kAppendWholeFile); | 734 kAppendWholeFile); |
| 710 FakeEncryptedMedia encrypted_media(new KeyProvidingApp()); | 735 FakeEncryptedMedia encrypted_media(new KeyProvidingApp()); |
| 711 StartPipelineWithEncryptedMedia(&source, &encrypted_media); | 736 StartPipelineWithEncryptedMedia(&source, &encrypted_media); |
| 712 | 737 |
| 713 scoped_refptr<DecoderBuffer> second_file = | 738 scoped_refptr<DecoderBuffer> second_file = |
| 714 ReadTestDataFile("bear-640x360.webm"); | 739 ReadTestDataFile("bear-640x360.webm"); |
| 715 | 740 |
| 716 source.AppendAtTime(base::TimeDelta::FromSeconds(kAppendTimeSec), | 741 source.AppendAtTime(base::TimeDelta::FromSeconds(kAppendTimeSec), |
| 717 second_file->data(), second_file->data_size()); | 742 second_file->data(), second_file->data_size()); |
| (...skipping 216 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 934 | 959 |
| 935 #endif | 960 #endif |
| 936 | 961 |
| 937 TEST_F(PipelineIntegrationTest, BasicPlayback_16x9AspectRatio) { | 962 TEST_F(PipelineIntegrationTest, BasicPlayback_16x9AspectRatio) { |
| 938 ASSERT_TRUE(Start(GetTestDataFilePath("bear-320x240-16x9-aspect.webm"), | 963 ASSERT_TRUE(Start(GetTestDataFilePath("bear-320x240-16x9-aspect.webm"), |
| 939 PIPELINE_OK)); | 964 PIPELINE_OK)); |
| 940 Play(); | 965 Play(); |
| 941 ASSERT_TRUE(WaitUntilOnEnded()); | 966 ASSERT_TRUE(WaitUntilOnEnded()); |
| 942 } | 967 } |
| 943 | 968 |
| 944 TEST_F(PipelineIntegrationTest, EncryptedPlayback_WebM) { | 969 // TODO(acolwell/wolenetz): Re-enable for use with compliant coded frame |
| 970 // processor (see http://crbug.com/249422) once WebM stream parser fixed to |
| 971 // always emit frames with valid durations (see http://crbug.com/351166). |
| 972 TEST_F(PipelineIntegrationTest, DISABLED_EncryptedPlayback_WebM) { |
| 945 MockMediaSource source("bear-320x240-av_enc-av.webm", kWebM, 219816); | 973 MockMediaSource source("bear-320x240-av_enc-av.webm", kWebM, 219816); |
| 946 FakeEncryptedMedia encrypted_media(new KeyProvidingApp()); | 974 FakeEncryptedMedia encrypted_media(new KeyProvidingApp()); |
| 947 StartPipelineWithEncryptedMedia(&source, &encrypted_media); | 975 StartPipelineWithEncryptedMedia(&source, &encrypted_media); |
| 948 | 976 |
| 949 source.EndOfStream(); | 977 source.EndOfStream(); |
| 950 ASSERT_EQ(PIPELINE_OK, pipeline_status_); | 978 ASSERT_EQ(PIPELINE_OK, pipeline_status_); |
| 951 | 979 |
| 952 Play(); | 980 Play(); |
| 953 | 981 |
| 954 ASSERT_TRUE(WaitUntilOnEnded()); | 982 ASSERT_TRUE(WaitUntilOnEnded()); |
| 955 source.Abort(); | 983 source.Abort(); |
| 956 Stop(); | 984 Stop(); |
| 957 } | 985 } |
| 958 | 986 |
| 959 TEST_F(PipelineIntegrationTest, EncryptedPlayback_ClearStart_WebM) { | 987 // TODO(acolwell/wolenetz): Re-enable for use with compliant coded frame |
| 988 // processor (see http://crbug.com/249422) once WebM stream parser fixed to |
| 989 // always emit frames with valid durations (see http://crbug.com/351166). |
| 990 TEST_F(PipelineIntegrationTest, DISABLED_EncryptedPlayback_ClearStart_WebM) { |
| 960 MockMediaSource source("bear-320x240-av_enc-av_clear-1s.webm", | 991 MockMediaSource source("bear-320x240-av_enc-av_clear-1s.webm", |
| 961 kWebM, kAppendWholeFile); | 992 kWebM, kAppendWholeFile); |
| 962 FakeEncryptedMedia encrypted_media(new KeyProvidingApp()); | 993 FakeEncryptedMedia encrypted_media(new KeyProvidingApp()); |
| 963 StartPipelineWithEncryptedMedia(&source, &encrypted_media); | 994 StartPipelineWithEncryptedMedia(&source, &encrypted_media); |
| 964 | 995 |
| 965 source.EndOfStream(); | 996 source.EndOfStream(); |
| 966 ASSERT_EQ(PIPELINE_OK, pipeline_status_); | 997 ASSERT_EQ(PIPELINE_OK, pipeline_status_); |
| 967 | 998 |
| 968 Play(); | 999 Play(); |
| 969 | 1000 |
| 970 ASSERT_TRUE(WaitUntilOnEnded()); | 1001 ASSERT_TRUE(WaitUntilOnEnded()); |
| 971 source.Abort(); | 1002 source.Abort(); |
| 972 Stop(); | 1003 Stop(); |
| 973 } | 1004 } |
| 974 | 1005 |
| 975 TEST_F(PipelineIntegrationTest, EncryptedPlayback_NoEncryptedFrames_WebM) { | 1006 // TODO(acolwell/wolenetz): Re-enable for use with compliant coded frame |
| 1007 // processor (see http://crbug.com/249422) once WebM stream parser fixed to |
| 1008 // always emit frames with valid durations (see http://crbug.com/351166). |
| 1009 TEST_F(PipelineIntegrationTest, DISABLED_EncryptedPlayback_NoEncryptedFrames_Web
M) { |
| 976 MockMediaSource source("bear-320x240-av_enc-av_clear-all.webm", | 1010 MockMediaSource source("bear-320x240-av_enc-av_clear-all.webm", |
| 977 kWebM, kAppendWholeFile); | 1011 kWebM, kAppendWholeFile); |
| 978 FakeEncryptedMedia encrypted_media(new NoResponseApp()); | 1012 FakeEncryptedMedia encrypted_media(new NoResponseApp()); |
| 979 StartPipelineWithEncryptedMedia(&source, &encrypted_media); | 1013 StartPipelineWithEncryptedMedia(&source, &encrypted_media); |
| 980 | 1014 |
| 981 source.EndOfStream(); | 1015 source.EndOfStream(); |
| 982 ASSERT_EQ(PIPELINE_OK, pipeline_status_); | 1016 ASSERT_EQ(PIPELINE_OK, pipeline_status_); |
| 983 | 1017 |
| 984 Play(); | 1018 Play(); |
| 985 | 1019 |
| (...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1048 source.EndOfStream(); | 1082 source.EndOfStream(); |
| 1049 ASSERT_EQ(PIPELINE_OK, pipeline_status_); | 1083 ASSERT_EQ(PIPELINE_OK, pipeline_status_); |
| 1050 | 1084 |
| 1051 Play(); | 1085 Play(); |
| 1052 | 1086 |
| 1053 ASSERT_TRUE(WaitUntilOnEnded()); | 1087 ASSERT_TRUE(WaitUntilOnEnded()); |
| 1054 source.Abort(); | 1088 source.Abort(); |
| 1055 Stop(); | 1089 Stop(); |
| 1056 } | 1090 } |
| 1057 | 1091 |
| 1058 TEST_F(PipelineIntegrationTest, BasicPlayback_MediaSource_VideoOnly_MP4_AVC3) { | 1092 // TODO(acolwell/wolenetz): Re-enable for use with compliant coded frame |
| 1093 // processor (see http://crbug.com/249422) once MP4 stream parser (or the |
| 1094 // underlying file) fixed to emit frames whose decode timestamps NEVER exceed |
| 1095 // presentation timestamp. See http://crbug.com/354518. |
| 1096 TEST_F(PipelineIntegrationTest, |
| 1097 DISABLED_BasicPlayback_MediaSource_VideoOnly_MP4_AVC3) { |
| 1059 MockMediaSource source("bear-1280x720-v_frag-avc3.mp4", kMP4VideoAVC3, | 1098 MockMediaSource source("bear-1280x720-v_frag-avc3.mp4", kMP4VideoAVC3, |
| 1060 kAppendWholeFile); | 1099 kAppendWholeFile); |
| 1061 StartPipelineWithMediaSource(&source); | 1100 StartPipelineWithMediaSource(&source); |
| 1062 source.EndOfStream(); | 1101 source.EndOfStream(); |
| 1063 | 1102 |
| 1064 EXPECT_EQ(1u, pipeline_->GetBufferedTimeRanges().size()); | 1103 EXPECT_EQ(1u, pipeline_->GetBufferedTimeRanges().size()); |
| 1065 EXPECT_EQ(0, pipeline_->GetBufferedTimeRanges().start(0).InMilliseconds()); | 1104 EXPECT_EQ(0, pipeline_->GetBufferedTimeRanges().start(0).InMilliseconds()); |
| 1066 EXPECT_EQ(k1280IsoAVC3FileDurationMs, | 1105 EXPECT_EQ(k1280IsoAVC3FileDurationMs, |
| 1067 pipeline_->GetBufferedTimeRanges().end(0).InMilliseconds()); | 1106 pipeline_->GetBufferedTimeRanges().end(0).InMilliseconds()); |
| 1068 | 1107 |
| (...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1113 EXPECT_GE(pipeline_->GetMediaTime(), seek_time); | 1152 EXPECT_GE(pipeline_->GetMediaTime(), seek_time); |
| 1114 ASSERT_TRUE(WaitUntilOnEnded()); | 1153 ASSERT_TRUE(WaitUntilOnEnded()); |
| 1115 | 1154 |
| 1116 // Make sure seeking after reaching the end works as expected. | 1155 // Make sure seeking after reaching the end works as expected. |
| 1117 ASSERT_TRUE(Seek(seek_time)); | 1156 ASSERT_TRUE(Seek(seek_time)); |
| 1118 EXPECT_GE(pipeline_->GetMediaTime(), seek_time); | 1157 EXPECT_GE(pipeline_->GetMediaTime(), seek_time); |
| 1119 ASSERT_TRUE(WaitUntilOnEnded()); | 1158 ASSERT_TRUE(WaitUntilOnEnded()); |
| 1120 } | 1159 } |
| 1121 | 1160 |
| 1122 // Verify audio decoder & renderer can handle aborted demuxer reads. | 1161 // Verify audio decoder & renderer can handle aborted demuxer reads. |
| 1123 TEST_F(PipelineIntegrationTest, ChunkDemuxerAbortRead_AudioOnly) { | 1162 // TODO(acolwell/wolenetz): Re-enable for use with compliant coded frame |
| 1163 // processor (see http://crbug.com/249422) once WebM stream parser fixed to |
| 1164 // always emit frames with valid durations (see http://crbug.com/351166). |
| 1165 TEST_F(PipelineIntegrationTest, DISABLED_ChunkDemuxerAbortRead_AudioOnly) { |
| 1124 ASSERT_TRUE(TestSeekDuringRead("bear-320x240-audio-only.webm", kAudioOnlyWebM, | 1166 ASSERT_TRUE(TestSeekDuringRead("bear-320x240-audio-only.webm", kAudioOnlyWebM, |
| 1125 8192, | 1167 8192, |
| 1126 base::TimeDelta::FromMilliseconds(464), | 1168 base::TimeDelta::FromMilliseconds(464), |
| 1127 base::TimeDelta::FromMilliseconds(617), | 1169 base::TimeDelta::FromMilliseconds(617), |
| 1128 0x10CA, 19730)); | 1170 0x10CA, 19730)); |
| 1129 } | 1171 } |
| 1130 | 1172 |
| 1131 // Verify video decoder & renderer can handle aborted demuxer reads. | 1173 // Verify video decoder & renderer can handle aborted demuxer reads. |
| 1132 TEST_F(PipelineIntegrationTest, ChunkDemuxerAbortRead_VideoOnly) { | 1174 // TODO(acolwell/wolenetz): Re-enable for use with compliant coded frame |
| 1175 // processor (see http://crbug.com/249422) once WebM stream parser fixed to |
| 1176 // always emit frames with valid durations (see http://crbug.com/351166). |
| 1177 TEST_F(PipelineIntegrationTest, DISABLED_ChunkDemuxerAbortRead_VideoOnly) { |
| 1133 ASSERT_TRUE(TestSeekDuringRead("bear-320x240-video-only.webm", kVideoOnlyWebM, | 1178 ASSERT_TRUE(TestSeekDuringRead("bear-320x240-video-only.webm", kVideoOnlyWebM, |
| 1134 32768, | 1179 32768, |
| 1135 base::TimeDelta::FromMilliseconds(200), | 1180 base::TimeDelta::FromMilliseconds(200), |
| 1136 base::TimeDelta::FromMilliseconds(1668), | 1181 base::TimeDelta::FromMilliseconds(1668), |
| 1137 0x1C896, 65536)); | 1182 0x1C896, 65536)); |
| 1138 } | 1183 } |
| 1139 | 1184 |
| 1140 // Verify that Opus audio in WebM containers can be played back. | 1185 // Verify that Opus audio in WebM containers can be played back. |
| 1141 TEST_F(PipelineIntegrationTest, BasicPlayback_AudioOnly_Opus_WebM) { | 1186 TEST_F(PipelineIntegrationTest, BasicPlayback_AudioOnly_Opus_WebM) { |
| 1142 ASSERT_TRUE(Start(GetTestDataFilePath("bear-opus-end-trimming.webm"), | 1187 ASSERT_TRUE(Start(GetTestDataFilePath("bear-opus-end-trimming.webm"), |
| (...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1189 // Verify that VP8 video with inband text track can be played back. | 1234 // Verify that VP8 video with inband text track can be played back. |
| 1190 TEST_F(PipelineIntegrationTest, | 1235 TEST_F(PipelineIntegrationTest, |
| 1191 BasicPlayback_VP8_WebVTT_WebM) { | 1236 BasicPlayback_VP8_WebVTT_WebM) { |
| 1192 ASSERT_TRUE(Start(GetTestDataFilePath("bear-vp8-webvtt.webm"), | 1237 ASSERT_TRUE(Start(GetTestDataFilePath("bear-vp8-webvtt.webm"), |
| 1193 PIPELINE_OK)); | 1238 PIPELINE_OK)); |
| 1194 Play(); | 1239 Play(); |
| 1195 ASSERT_TRUE(WaitUntilOnEnded()); | 1240 ASSERT_TRUE(WaitUntilOnEnded()); |
| 1196 } | 1241 } |
| 1197 | 1242 |
| 1198 } // namespace media | 1243 } // namespace media |
| OLD | NEW |