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

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: constructor Created 5 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
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 621 matching lines...) Expand 10 before | Expand all | Expand 10 after
632 632
633 class PipelineIntegrationTest : public PipelineIntegrationTestHost { 633 class PipelineIntegrationTest : public PipelineIntegrationTestHost {
634 public: 634 public:
635 void StartPipelineWithMediaSource(MockMediaSource* source) { 635 void StartPipelineWithMediaSource(MockMediaSource* source) {
636 EXPECT_CALL(*source, InitSegmentReceived()).Times(AtLeast(1)); 636 EXPECT_CALL(*source, InitSegmentReceived()).Times(AtLeast(1));
637 EXPECT_CALL(*this, OnMetadata(_)) 637 EXPECT_CALL(*this, OnMetadata(_))
638 .Times(AtMost(1)) 638 .Times(AtMost(1))
639 .WillRepeatedly(SaveArg<0>(&metadata_)); 639 .WillRepeatedly(SaveArg<0>(&metadata_));
640 EXPECT_CALL(*this, OnBufferingStateChanged(BUFFERING_HAVE_ENOUGH)) 640 EXPECT_CALL(*this, OnBufferingStateChanged(BUFFERING_HAVE_ENOUGH))
641 .Times(AtMost(1)); 641 .Times(AtMost(1));
642
643 // Encrypted content not used, so this is never called.
644 EXPECT_CALL(*this, OnWaitingForDecryptionKey()).Times(0);
645
642 demuxer_ = source->GetDemuxer().Pass(); 646 demuxer_ = source->GetDemuxer().Pass();
643 pipeline_->Start( 647 pipeline_->Start(
644 demuxer_.get(), CreateRenderer(), 648 demuxer_.get(), CreateRenderer(),
645 base::Bind(&PipelineIntegrationTest::OnEnded, base::Unretained(this)), 649 base::Bind(&PipelineIntegrationTest::OnEnded, base::Unretained(this)),
646 base::Bind(&PipelineIntegrationTest::OnError, base::Unretained(this)), 650 base::Bind(&PipelineIntegrationTest::OnError, base::Unretained(this)),
647 base::Bind(&PipelineIntegrationTest::OnStatusCallback, 651 base::Bind(&PipelineIntegrationTest::OnStatusCallback,
648 base::Unretained(this)), 652 base::Unretained(this)),
649 base::Bind(&PipelineIntegrationTest::OnMetadata, 653 base::Bind(&PipelineIntegrationTest::OnMetadata,
650 base::Unretained(this)), 654 base::Unretained(this)),
651 base::Bind(&PipelineIntegrationTest::OnBufferingStateChanged, 655 base::Bind(&PipelineIntegrationTest::OnBufferingStateChanged,
652 base::Unretained(this)), 656 base::Unretained(this)),
653 base::Bind(&PipelineIntegrationTest::OnVideoFramePaint, 657 base::Bind(&PipelineIntegrationTest::OnVideoFramePaint,
654 base::Unretained(this)), 658 base::Unretained(this)),
655 base::Closure(), base::Bind(&PipelineIntegrationTest::OnAddTextTrack, 659 base::Closure(), base::Bind(&PipelineIntegrationTest::OnAddTextTrack,
656 base::Unretained(this))); 660 base::Unretained(this)),
661 base::Bind(&PipelineIntegrationTest::OnWaitingForDecryptionKey,
662 base::Unretained(this)));
657 message_loop_.Run(); 663 message_loop_.Run();
658 EXPECT_EQ(PIPELINE_OK, pipeline_status_); 664 EXPECT_EQ(PIPELINE_OK, pipeline_status_);
659 } 665 }
660 666
661 void StartHashedPipelineWithMediaSource(MockMediaSource* source) { 667 void StartHashedPipelineWithMediaSource(MockMediaSource* source) {
662 hashing_enabled_ = true; 668 hashing_enabled_ = true;
663 StartPipelineWithMediaSource(source); 669 StartPipelineWithMediaSource(source);
664 } 670 }
665 671
666 void StartPipelineWithEncryptedMedia( 672 void StartPipelineWithEncryptedMedia(
667 MockMediaSource* source, 673 MockMediaSource* source,
668 FakeEncryptedMedia* encrypted_media) { 674 FakeEncryptedMedia* encrypted_media) {
669 EXPECT_CALL(*source, InitSegmentReceived()).Times(AtLeast(1)); 675 EXPECT_CALL(*source, InitSegmentReceived()).Times(AtLeast(1));
670 EXPECT_CALL(*this, OnMetadata(_)) 676 EXPECT_CALL(*this, OnMetadata(_))
671 .Times(AtMost(1)) 677 .Times(AtMost(1))
672 .WillRepeatedly(SaveArg<0>(&metadata_)); 678 .WillRepeatedly(SaveArg<0>(&metadata_));
673 EXPECT_CALL(*this, OnBufferingStateChanged(BUFFERING_HAVE_ENOUGH)) 679 EXPECT_CALL(*this, OnBufferingStateChanged(BUFFERING_HAVE_ENOUGH))
674 .Times(AtMost(1)); 680 .Times(AtMost(1));
675 EXPECT_CALL(*this, DecryptorAttached(true)); 681 EXPECT_CALL(*this, DecryptorAttached(true));
676 682
683 // Encrypted content used but keys provided in advance, so this is
684 // never called.
685 EXPECT_CALL(*this, OnWaitingForDecryptionKey()).Times(0);
686
677 demuxer_ = source->GetDemuxer().Pass(); 687 demuxer_ = source->GetDemuxer().Pass();
678 688
679 pipeline_->SetCdm(encrypted_media->GetCdmContext(), 689 pipeline_->SetCdm(encrypted_media->GetCdmContext(),
680 base::Bind(&PipelineIntegrationTest::DecryptorAttached, 690 base::Bind(&PipelineIntegrationTest::DecryptorAttached,
681 base::Unretained(this))); 691 base::Unretained(this)));
682 692
683 pipeline_->Start( 693 pipeline_->Start(
684 demuxer_.get(), CreateRenderer(), 694 demuxer_.get(), CreateRenderer(),
685 base::Bind(&PipelineIntegrationTest::OnEnded, base::Unretained(this)), 695 base::Bind(&PipelineIntegrationTest::OnEnded, base::Unretained(this)),
686 base::Bind(&PipelineIntegrationTest::OnError, base::Unretained(this)), 696 base::Bind(&PipelineIntegrationTest::OnError, base::Unretained(this)),
687 base::Bind(&PipelineIntegrationTest::OnStatusCallback, 697 base::Bind(&PipelineIntegrationTest::OnStatusCallback,
688 base::Unretained(this)), 698 base::Unretained(this)),
689 base::Bind(&PipelineIntegrationTest::OnMetadata, 699 base::Bind(&PipelineIntegrationTest::OnMetadata,
690 base::Unretained(this)), 700 base::Unretained(this)),
691 base::Bind(&PipelineIntegrationTest::OnBufferingStateChanged, 701 base::Bind(&PipelineIntegrationTest::OnBufferingStateChanged,
692 base::Unretained(this)), 702 base::Unretained(this)),
693 base::Bind(&PipelineIntegrationTest::OnVideoFramePaint, 703 base::Bind(&PipelineIntegrationTest::OnVideoFramePaint,
694 base::Unretained(this)), 704 base::Unretained(this)),
695 base::Closure(), base::Bind(&PipelineIntegrationTest::OnAddTextTrack, 705 base::Closure(), base::Bind(&PipelineIntegrationTest::OnAddTextTrack,
696 base::Unretained(this))); 706 base::Unretained(this)),
707 base::Bind(&PipelineIntegrationTest::OnWaitingForDecryptionKey,
708 base::Unretained(this)));
697 709
698 source->set_encrypted_media_init_data_cb( 710 source->set_encrypted_media_init_data_cb(
699 base::Bind(&FakeEncryptedMedia::OnEncryptedMediaInitData, 711 base::Bind(&FakeEncryptedMedia::OnEncryptedMediaInitData,
700 base::Unretained(encrypted_media))); 712 base::Unretained(encrypted_media)));
701 713
702 message_loop_.Run(); 714 message_loop_.Run();
703 EXPECT_EQ(PIPELINE_OK, pipeline_status_); 715 EXPECT_EQ(PIPELINE_OK, pipeline_status_);
704 } 716 }
705 717
706 // Verifies that seeking works properly for ChunkDemuxer when the 718 // Verifies that seeking works properly for ChunkDemuxer when the
(...skipping 987 matching lines...) Expand 10 before | Expand all | Expand 10 after
1694 1706
1695 TEST_F(PipelineIntegrationTest, BasicPlaybackPositiveStartTime) { 1707 TEST_F(PipelineIntegrationTest, BasicPlaybackPositiveStartTime) {
1696 ASSERT_EQ(PIPELINE_OK, Start("nonzero-start-time.webm")); 1708 ASSERT_EQ(PIPELINE_OK, Start("nonzero-start-time.webm"));
1697 Play(); 1709 Play();
1698 ASSERT_TRUE(WaitUntilOnEnded()); 1710 ASSERT_TRUE(WaitUntilOnEnded());
1699 ASSERT_EQ(base::TimeDelta::FromMicroseconds(396000), 1711 ASSERT_EQ(base::TimeDelta::FromMicroseconds(396000),
1700 demuxer_->GetStartTime()); 1712 demuxer_->GetStartTime());
1701 } 1713 }
1702 1714
1703 } // namespace media 1715 } // namespace media
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698