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

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

Issue 935243002: Decryptors can report kNoKey to WebMediaPlayer (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Android changes Created 5 years, 9 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 "base/bind.h" 5 #include "base/bind.h"
6 #include "base/command_line.h" 6 #include "base/command_line.h"
7 #include "base/memory/scoped_ptr.h" 7 #include "base/memory/scoped_ptr.h"
8 #include "base/strings/string_util.h" 8 #include "base/strings/string_util.h"
9 #include "build/build_config.h" 9 #include "build/build_config.h"
10 #include "media/base/cdm_callback_promise.h" 10 #include "media/base/cdm_callback_promise.h"
(...skipping 641 matching lines...) Expand 10 before | Expand all | Expand 10 after
652 652
653 class PipelineIntegrationTest : public PipelineIntegrationTestHost { 653 class PipelineIntegrationTest : public PipelineIntegrationTestHost {
654 public: 654 public:
655 void StartPipelineWithMediaSource(MockMediaSource* source) { 655 void StartPipelineWithMediaSource(MockMediaSource* source) {
656 EXPECT_CALL(*source, InitSegmentReceived()).Times(AtLeast(1)); 656 EXPECT_CALL(*source, InitSegmentReceived()).Times(AtLeast(1));
657 EXPECT_CALL(*this, OnMetadata(_)) 657 EXPECT_CALL(*this, OnMetadata(_))
658 .Times(AtMost(1)) 658 .Times(AtMost(1))
659 .WillRepeatedly(SaveArg<0>(&metadata_)); 659 .WillRepeatedly(SaveArg<0>(&metadata_));
660 EXPECT_CALL(*this, OnBufferingStateChanged(BUFFERING_HAVE_ENOUGH)) 660 EXPECT_CALL(*this, OnBufferingStateChanged(BUFFERING_HAVE_ENOUGH))
661 .Times(AtMost(1)); 661 .Times(AtMost(1));
662
663 // Encrypted content not used, so this is never called.
664 EXPECT_CALL(*this, OnWaitingForDecryptionKey()).Times(0);
665
662 demuxer_ = source->GetDemuxer().Pass(); 666 demuxer_ = source->GetDemuxer().Pass();
663 pipeline_->Start( 667 pipeline_->Start(
664 demuxer_.get(), CreateRenderer(), 668 demuxer_.get(), CreateRenderer(),
665 base::Bind(&PipelineIntegrationTest::OnEnded, base::Unretained(this)), 669 base::Bind(&PipelineIntegrationTest::OnEnded, base::Unretained(this)),
666 base::Bind(&PipelineIntegrationTest::OnError, base::Unretained(this)), 670 base::Bind(&PipelineIntegrationTest::OnError, base::Unretained(this)),
667 base::Bind(&PipelineIntegrationTest::OnStatusCallback, 671 base::Bind(&PipelineIntegrationTest::OnStatusCallback,
668 base::Unretained(this)), 672 base::Unretained(this)),
669 base::Bind(&PipelineIntegrationTest::OnMetadata, 673 base::Bind(&PipelineIntegrationTest::OnMetadata,
670 base::Unretained(this)), 674 base::Unretained(this)),
671 base::Bind(&PipelineIntegrationTest::OnBufferingStateChanged, 675 base::Bind(&PipelineIntegrationTest::OnBufferingStateChanged,
672 base::Unretained(this)), 676 base::Unretained(this)),
673 base::Bind(&PipelineIntegrationTest::OnVideoFramePaint, 677 base::Bind(&PipelineIntegrationTest::OnVideoFramePaint,
674 base::Unretained(this)), 678 base::Unretained(this)),
675 base::Closure(), base::Bind(&PipelineIntegrationTest::OnAddTextTrack, 679 base::Closure(), base::Bind(&PipelineIntegrationTest::OnAddTextTrack,
676 base::Unretained(this))); 680 base::Unretained(this)),
681 base::Bind(&PipelineIntegrationTest::OnWaitingForDecryptionKey,
682 base::Unretained(this)));
677 message_loop_.Run(); 683 message_loop_.Run();
678 EXPECT_EQ(PIPELINE_OK, pipeline_status_); 684 EXPECT_EQ(PIPELINE_OK, pipeline_status_);
679 } 685 }
680 686
681 void StartHashedPipelineWithMediaSource(MockMediaSource* source) { 687 void StartHashedPipelineWithMediaSource(MockMediaSource* source) {
682 hashing_enabled_ = true; 688 hashing_enabled_ = true;
683 StartPipelineWithMediaSource(source); 689 StartPipelineWithMediaSource(source);
684 } 690 }
685 691
686 void StartPipelineWithEncryptedMedia( 692 void StartPipelineWithEncryptedMedia(
687 MockMediaSource* source, 693 MockMediaSource* source,
688 FakeEncryptedMedia* encrypted_media) { 694 FakeEncryptedMedia* encrypted_media) {
689 EXPECT_CALL(*source, InitSegmentReceived()).Times(AtLeast(1)); 695 EXPECT_CALL(*source, InitSegmentReceived()).Times(AtLeast(1));
690 EXPECT_CALL(*this, OnMetadata(_)) 696 EXPECT_CALL(*this, OnMetadata(_))
691 .Times(AtMost(1)) 697 .Times(AtMost(1))
692 .WillRepeatedly(SaveArg<0>(&metadata_)); 698 .WillRepeatedly(SaveArg<0>(&metadata_));
693 EXPECT_CALL(*this, OnBufferingStateChanged(BUFFERING_HAVE_ENOUGH)) 699 EXPECT_CALL(*this, OnBufferingStateChanged(BUFFERING_HAVE_ENOUGH))
694 .Times(AtMost(1)); 700 .Times(AtMost(1));
695 EXPECT_CALL(*this, DecryptorAttached(true)); 701 EXPECT_CALL(*this, DecryptorAttached(true));
696 702
703 // Encrypted content used but keys provided in advance, so this is
704 // never called.
705 EXPECT_CALL(*this, OnWaitingForDecryptionKey()).Times(0);
706
697 demuxer_ = source->GetDemuxer().Pass(); 707 demuxer_ = source->GetDemuxer().Pass();
698 708
699 pipeline_->SetCdm(encrypted_media->GetCdmContext(), 709 pipeline_->SetCdm(encrypted_media->GetCdmContext(),
700 base::Bind(&PipelineIntegrationTest::DecryptorAttached, 710 base::Bind(&PipelineIntegrationTest::DecryptorAttached,
701 base::Unretained(this))); 711 base::Unretained(this)));
702 712
703 pipeline_->Start( 713 pipeline_->Start(
704 demuxer_.get(), CreateRenderer(), 714 demuxer_.get(), CreateRenderer(),
705 base::Bind(&PipelineIntegrationTest::OnEnded, base::Unretained(this)), 715 base::Bind(&PipelineIntegrationTest::OnEnded, base::Unretained(this)),
706 base::Bind(&PipelineIntegrationTest::OnError, base::Unretained(this)), 716 base::Bind(&PipelineIntegrationTest::OnError, base::Unretained(this)),
707 base::Bind(&PipelineIntegrationTest::OnStatusCallback, 717 base::Bind(&PipelineIntegrationTest::OnStatusCallback,
708 base::Unretained(this)), 718 base::Unretained(this)),
709 base::Bind(&PipelineIntegrationTest::OnMetadata, 719 base::Bind(&PipelineIntegrationTest::OnMetadata,
710 base::Unretained(this)), 720 base::Unretained(this)),
711 base::Bind(&PipelineIntegrationTest::OnBufferingStateChanged, 721 base::Bind(&PipelineIntegrationTest::OnBufferingStateChanged,
712 base::Unretained(this)), 722 base::Unretained(this)),
713 base::Bind(&PipelineIntegrationTest::OnVideoFramePaint, 723 base::Bind(&PipelineIntegrationTest::OnVideoFramePaint,
714 base::Unretained(this)), 724 base::Unretained(this)),
715 base::Closure(), base::Bind(&PipelineIntegrationTest::OnAddTextTrack, 725 base::Closure(), base::Bind(&PipelineIntegrationTest::OnAddTextTrack,
716 base::Unretained(this))); 726 base::Unretained(this)),
727 base::Bind(&PipelineIntegrationTest::OnWaitingForDecryptionKey,
728 base::Unretained(this)));
717 729
718 source->set_encrypted_media_init_data_cb( 730 source->set_encrypted_media_init_data_cb(
719 base::Bind(&FakeEncryptedMedia::OnEncryptedMediaInitData, 731 base::Bind(&FakeEncryptedMedia::OnEncryptedMediaInitData,
720 base::Unretained(encrypted_media))); 732 base::Unretained(encrypted_media)));
721 733
722 message_loop_.Run(); 734 message_loop_.Run();
723 EXPECT_EQ(PIPELINE_OK, pipeline_status_); 735 EXPECT_EQ(PIPELINE_OK, pipeline_status_);
724 } 736 }
725 737
726 // Verifies that seeking works properly for ChunkDemuxer when the 738 // Verifies that seeking works properly for ChunkDemuxer when the
(...skipping 987 matching lines...) Expand 10 before | Expand all | Expand 10 after
1714 1726
1715 TEST_F(PipelineIntegrationTest, BasicPlaybackPositiveStartTime) { 1727 TEST_F(PipelineIntegrationTest, BasicPlaybackPositiveStartTime) {
1716 ASSERT_EQ(PIPELINE_OK, Start("nonzero-start-time.webm")); 1728 ASSERT_EQ(PIPELINE_OK, Start("nonzero-start-time.webm"));
1717 Play(); 1729 Play();
1718 ASSERT_TRUE(WaitUntilOnEnded()); 1730 ASSERT_TRUE(WaitUntilOnEnded());
1719 ASSERT_EQ(base::TimeDelta::FromMicroseconds(396000), 1731 ASSERT_EQ(base::TimeDelta::FromMicroseconds(396000),
1720 demuxer_->GetStartTime()); 1732 demuxer_->GetStartTime());
1721 } 1733 }
1722 1734
1723 } // namespace media 1735 } // namespace media
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698