diff options
author | xhwang@chromium.org <xhwang@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-11-02 23:04:03 +0000 |
---|---|---|
committer | xhwang@chromium.org <xhwang@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-11-02 23:04:03 +0000 |
commit | 82d7abd7b2726db828134466e4bd98910246d41f (patch) | |
tree | 4a16ab1817df9f1ba4e758c303ddef271fa7d27e | |
parent | a45d8566cf820425ce3c95d3b5d21950767f3b0e (diff) | |
download | chromium_src-82d7abd7b2726db828134466e4bd98910246d41f.zip chromium_src-82d7abd7b2726db828134466e4bd98910246d41f.tar.gz chromium_src-82d7abd7b2726db828134466e4bd98910246d41f.tar.bz2 |
Add RegisterKeyAddedCB in Decryptor interface.
Previously KeyAddedCB is registered with InitializeXXXDecoder calls. Generalize this to a separate RegisterKeyAddedCB call so that we can also support the decrypt-only path.
BUG=123421
TEST=media_unittests passes. EME demo page still works.
Review URL: https://chromiumcodereview.appspot.com/11348056
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@165792 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r-- | media/base/decryptor.h | 21 | ||||
-rw-r--r-- | media/base/mock_filters.cc | 10 | ||||
-rw-r--r-- | media/base/mock_filters.h | 18 | ||||
-rw-r--r-- | media/crypto/aes_decryptor.cc | 27 | ||||
-rw-r--r-- | media/crypto/aes_decryptor.h | 11 | ||||
-rw-r--r-- | media/filters/decrypting_audio_decoder.cc | 6 | ||||
-rw-r--r-- | media/filters/decrypting_audio_decoder_unittest.cc | 8 | ||||
-rw-r--r-- | media/filters/decrypting_video_decoder.cc | 7 | ||||
-rw-r--r-- | media/filters/decrypting_video_decoder_unittest.cc | 13 | ||||
-rw-r--r-- | webkit/media/crypto/ppapi_decryptor.cc | 42 | ||||
-rw-r--r-- | webkit/media/crypto/ppapi_decryptor.h | 12 | ||||
-rw-r--r-- | webkit/media/crypto/proxy_decryptor.cc | 11 | ||||
-rw-r--r-- | webkit/media/crypto/proxy_decryptor.h | 8 |
13 files changed, 115 insertions, 79 deletions
diff --git a/media/base/decryptor.h b/media/base/decryptor.h index de293e9..2efd03b 100644 --- a/media/base/decryptor.h +++ b/media/base/decryptor.h @@ -89,6 +89,17 @@ class MEDIA_EXPORT Decryptor { virtual void CancelKeyRequest(const std::string& key_system, const std::string& session_id) = 0; + // Indicates that a key has been added to the Decryptor. + typedef base::Callback<void()> KeyAddedCB; + + // Registers a KeyAddedCB which should be called when a key is added to the + // decryptor. Only one KeyAddedCB can be registered for one |stream_type|. + // If this function is called multiple times for the same |stream_type|, the + // previously registered callback will be replaced. In other words, + // registering a null callback cancels the originally registered callback. + virtual void RegisterKeyAddedCB(StreamType stream_type, + const KeyAddedCB& key_added_cb) = 0; + // Indicates completion of a decryption operation. // // First parameter: The status of the decryption operation. @@ -125,18 +136,12 @@ class MEDIA_EXPORT Decryptor { // - Set to true if initialization was successful. False if an error occurred. typedef base::Callback<void(bool)> DecoderInitCB; - // Indicates that a key has been added to the Decryptor. - typedef base::Callback<void()> KeyAddedCB; - // Initializes a decoder with the given |config|, executing the |init_cb| // upon completion. - // |key_added_cb| should be called when a key is added to the decryptor. virtual void InitializeAudioDecoder(scoped_ptr<AudioDecoderConfig> config, - const DecoderInitCB& init_cb, - const KeyAddedCB& key_added_cb) = 0; + const DecoderInitCB& init_cb) = 0; virtual void InitializeVideoDecoder(scoped_ptr<VideoDecoderConfig> config, - const DecoderInitCB& init_cb, - const KeyAddedCB& key_added_cb) = 0; + const DecoderInitCB& init_cb) = 0; // Helper structure for managing multiple decoded audio buffers per input. // TODO(xhwang): Rename this to AudioFrames. diff --git a/media/base/mock_filters.cc b/media/base/mock_filters.cc index d32501e..bf6beac 100644 --- a/media/base/mock_filters.cc +++ b/media/base/mock_filters.cc @@ -46,16 +46,14 @@ MockDecryptor::~MockDecryptor() {} void MockDecryptor::InitializeAudioDecoder( scoped_ptr<AudioDecoderConfig> config, - const DecoderInitCB& init_cb, - const KeyAddedCB& key_added_cb) { - InitializeAudioDecoderMock(*config, init_cb, key_added_cb); + const DecoderInitCB& init_cb) { + InitializeAudioDecoderMock(*config, init_cb); } void MockDecryptor::InitializeVideoDecoder( scoped_ptr<VideoDecoderConfig> config, - const DecoderInitCB& init_cb, - const KeyAddedCB& key_added_cb) { - InitializeVideoDecoderMock(*config, init_cb, key_added_cb); + const DecoderInitCB& init_cb) { + InitializeVideoDecoderMock(*config, init_cb); } MockDecryptorClient::MockDecryptorClient() {} diff --git a/media/base/mock_filters.h b/media/base/mock_filters.h index 3c98ae8..b0698df 100644 --- a/media/base/mock_filters.h +++ b/media/base/mock_filters.h @@ -208,6 +208,8 @@ class MockDecryptor : public Decryptor { const std::string& session_id)); MOCK_METHOD2(CancelKeyRequest, void(const std::string& key_system, const std::string& session_id)); + MOCK_METHOD2(RegisterKeyAddedCB, void(StreamType stream_type, + const KeyAddedCB& key_added_cb)); MOCK_METHOD3(Decrypt, void(StreamType stream_type, const scoped_refptr<DecoderBuffer>& encrypted, const DecryptCB& decrypt_cb)); @@ -215,14 +217,12 @@ class MockDecryptor : public Decryptor { // TODO(xhwang): The following two methods are workarounds of the issue that // move-only parameters are not supported in mocked methods. Remove when the // issue is fixed: http://code.google.com/p/googletest/issues/detail?id=395 - MOCK_METHOD3(InitializeAudioDecoderMock, + MOCK_METHOD2(InitializeAudioDecoderMock, void(const AudioDecoderConfig& config, - const DecoderInitCB& init_cb, - const KeyAddedCB& key_added_cb)); - MOCK_METHOD3(InitializeVideoDecoderMock, + const DecoderInitCB& init_cb)); + MOCK_METHOD2(InitializeVideoDecoderMock, void(const VideoDecoderConfig& config, - const DecoderInitCB& init_cb, - const KeyAddedCB& key_added_cb)); + const DecoderInitCB& init_cb)); MOCK_METHOD2(DecryptAndDecodeAudio, void(const scoped_refptr<media::DecoderBuffer>& encrypted, const AudioDecodeCB& audio_decode_cb)); @@ -233,11 +233,9 @@ class MockDecryptor : public Decryptor { MOCK_METHOD1(DeinitializeDecoder, void(StreamType stream_type)); virtual void InitializeAudioDecoder(scoped_ptr<AudioDecoderConfig> config, - const DecoderInitCB& init_cb, - const KeyAddedCB& key_added_cb) OVERRIDE; + const DecoderInitCB& init_cb) OVERRIDE; virtual void InitializeVideoDecoder(scoped_ptr<VideoDecoderConfig> config, - const DecoderInitCB& init_cb, - const KeyAddedCB& key_added_cb) OVERRIDE; + const DecoderInitCB& init_cb) OVERRIDE; private: DISALLOW_COPY_AND_ASSIGN(MockDecryptor); diff --git a/media/crypto/aes_decryptor.cc b/media/crypto/aes_decryptor.cc index fe964f6c..fb16486 100644 --- a/media/crypto/aes_decryptor.cc +++ b/media/crypto/aes_decryptor.cc @@ -194,6 +194,13 @@ void AesDecryptor::AddKey(const std::string& key_system, } SetKey(key_id_string, decryption_key.Pass()); + + if (!audio_key_added_cb_.is_null()) + audio_key_added_cb_.Run(); + + if (!video_key_added_cb_.is_null()) + video_key_added_cb_.Run(); + client_->KeyAdded(key_system, session_id); } @@ -201,6 +208,20 @@ void AesDecryptor::CancelKeyRequest(const std::string& key_system, const std::string& session_id) { } +void AesDecryptor::RegisterKeyAddedCB(StreamType stream_type, + const KeyAddedCB& key_added_cb) { + switch (stream_type) { + case kAudio: + audio_key_added_cb_ = key_added_cb; + break; + case kVideo: + video_key_added_cb_ = key_added_cb; + break; + default: + NOTREACHED(); + } +} + void AesDecryptor::Decrypt(StreamType stream_type, const scoped_refptr<DecoderBuffer>& encrypted, const DecryptCB& decrypt_cb) { @@ -240,15 +261,13 @@ void AesDecryptor::CancelDecrypt(StreamType stream_type) { } void AesDecryptor::InitializeAudioDecoder(scoped_ptr<AudioDecoderConfig> config, - const DecoderInitCB& init_cb, - const KeyAddedCB& key_added_cb) { + const DecoderInitCB& init_cb) { // AesDecryptor does not support audio decoding. init_cb.Run(false); } void AesDecryptor::InitializeVideoDecoder(scoped_ptr<VideoDecoderConfig> config, - const DecoderInitCB& init_cb, - const KeyAddedCB& key_added_cb) { + const DecoderInitCB& init_cb) { // AesDecryptor does not support video decoding. init_cb.Run(false); } diff --git a/media/crypto/aes_decryptor.h b/media/crypto/aes_decryptor.h index 966738b..e983805 100644 --- a/media/crypto/aes_decryptor.h +++ b/media/crypto/aes_decryptor.h @@ -46,16 +46,16 @@ class MEDIA_EXPORT AesDecryptor : public Decryptor { const std::string& session_id) OVERRIDE; virtual void CancelKeyRequest(const std::string& key_system, const std::string& session_id) OVERRIDE; + virtual void RegisterKeyAddedCB(StreamType stream_type, + const KeyAddedCB& key_added_cb) OVERRIDE; virtual void Decrypt(StreamType stream_type, const scoped_refptr<DecoderBuffer>& encrypted, const DecryptCB& decrypt_cb) OVERRIDE; virtual void CancelDecrypt(StreamType stream_type) OVERRIDE; virtual void InitializeAudioDecoder(scoped_ptr<AudioDecoderConfig> config, - const DecoderInitCB& init_cb, - const KeyAddedCB& key_added_cb) OVERRIDE; + const DecoderInitCB& init_cb) OVERRIDE; virtual void InitializeVideoDecoder(scoped_ptr<VideoDecoderConfig> config, - const DecoderInitCB& init_cb, - const KeyAddedCB& key_added_cb) OVERRIDE; + const DecoderInitCB& init_cb) OVERRIDE; virtual void DecryptAndDecodeAudio( const scoped_refptr<DecoderBuffer>& encrypted, const AudioDecodeCB& audio_decode_cb) OVERRIDE; @@ -113,6 +113,9 @@ class MEDIA_EXPORT AesDecryptor : public Decryptor { DecryptorClient* const client_; + KeyAddedCB audio_key_added_cb_; + KeyAddedCB video_key_added_cb_; + DISALLOW_COPY_AND_ASSIGN(AesDecryptor); }; diff --git a/media/filters/decrypting_audio_decoder.cc b/media/filters/decrypting_audio_decoder.cc index 5ecc3e7..fd5cd0d 100644 --- a/media/filters/decrypting_audio_decoder.cc +++ b/media/filters/decrypting_audio_decoder.cc @@ -171,8 +171,7 @@ void DecryptingAudioDecoder::SetDecryptor(Decryptor* decryptor) { state_ = kPendingDecoderInit; decryptor_->InitializeAudioDecoder( scoped_config.Pass(), - BIND_TO_LOOP(&DecryptingAudioDecoder::FinishInitialization), - BIND_TO_LOOP(&DecryptingAudioDecoder::OnKeyAdded)); + BIND_TO_LOOP(&DecryptingAudioDecoder::FinishInitialization)); } void DecryptingAudioDecoder::FinishInitialization(bool success) { @@ -198,6 +197,9 @@ void DecryptingAudioDecoder::FinishInitialization(bool success) { bytes_per_sample_ = ChannelLayoutToChannelCount(channel_layout_) * bits_per_channel_ / kBitsPerByte; + decryptor_->RegisterKeyAddedCB( + Decryptor::kAudio, BIND_TO_LOOP(&DecryptingAudioDecoder::OnKeyAdded)); + state_ = kIdle; base::ResetAndReturn(&init_cb_).Run(PIPELINE_OK); } diff --git a/media/filters/decrypting_audio_decoder_unittest.cc b/media/filters/decrypting_audio_decoder_unittest.cc index a77438a..bf3684fc 100644 --- a/media/filters/decrypting_audio_decoder_unittest.cc +++ b/media/filters/decrypting_audio_decoder_unittest.cc @@ -118,11 +118,13 @@ class DecryptingAudioDecoderTest : public testing::Test { } void Initialize() { - EXPECT_CALL(*decryptor_, InitializeAudioDecoderMock(_, _, _)) + EXPECT_CALL(*decryptor_, InitializeAudioDecoderMock(_, _)) .Times(AtMost(1)) - .WillOnce(DoAll(RunCallback1(true), SaveArg<2>(&key_added_cb_))); + .WillOnce(RunCallback1(true)); EXPECT_CALL(*this, RequestDecryptorNotification(_)) .WillOnce(RunCallback0(decryptor_.get())); + EXPECT_CALL(*decryptor_, RegisterKeyAddedCB(Decryptor::kAudio, _)) + .WillOnce(SaveArg<1>(&key_added_cb_)); config_.Initialize(kCodecVorbis, 16, CHANNEL_LAYOUT_STEREO, 44100, NULL, 0, true, true); @@ -278,7 +280,7 @@ TEST_F(DecryptingAudioDecoderTest, Initialize_InvalidAudioConfig) { // Ensure decoder handles unsupported audio configs without crashing. TEST_F(DecryptingAudioDecoderTest, Initialize_UnsupportedAudioConfig) { - EXPECT_CALL(*decryptor_, InitializeAudioDecoderMock(_, _, _)) + EXPECT_CALL(*decryptor_, InitializeAudioDecoderMock(_, _)) .WillOnce(RunCallback1(false)); EXPECT_CALL(*this, RequestDecryptorNotification(_)) .WillOnce(RunCallback0(decryptor_.get())); diff --git a/media/filters/decrypting_video_decoder.cc b/media/filters/decrypting_video_decoder.cc index f7ba299..c819a2e 100644 --- a/media/filters/decrypting_video_decoder.cc +++ b/media/filters/decrypting_video_decoder.cc @@ -104,6 +104,7 @@ void DecryptingVideoDecoder::Stop(const base::Closure& closure) { // render thread to be processing messages to complete (such as PPAPI // callbacks). if (decryptor_) { + decryptor_->RegisterKeyAddedCB(Decryptor::kVideo, Decryptor::KeyAddedCB()); decryptor_->DeinitializeDecoder(Decryptor::kVideo); decryptor_ = NULL; } @@ -180,8 +181,7 @@ void DecryptingVideoDecoder::SetDecryptor(Decryptor* decryptor) { state_ = kPendingDecoderInit; decryptor_->InitializeVideoDecoder( scoped_config.Pass(), - BIND_TO_LOOP(&DecryptingVideoDecoder::FinishInitialization), - BIND_TO_LOOP(&DecryptingVideoDecoder::OnKeyAdded)); + BIND_TO_LOOP(&DecryptingVideoDecoder::FinishInitialization)); } void DecryptingVideoDecoder::FinishInitialization(bool success) { @@ -202,6 +202,9 @@ void DecryptingVideoDecoder::FinishInitialization(bool success) { return; } + decryptor_->RegisterKeyAddedCB( + Decryptor::kVideo, BIND_TO_LOOP(&DecryptingVideoDecoder::OnKeyAdded)); + // Success! state_ = kIdle; base::ResetAndReturn(&init_cb_).Run(PIPELINE_OK); diff --git a/media/filters/decrypting_video_decoder_unittest.cc b/media/filters/decrypting_video_decoder_unittest.cc index 7da9a37..2b3666b 100644 --- a/media/filters/decrypting_video_decoder_unittest.cc +++ b/media/filters/decrypting_video_decoder_unittest.cc @@ -121,9 +121,11 @@ class DecryptingVideoDecoderTest : public testing::Test { } void Initialize() { - EXPECT_CALL(*decryptor_, InitializeVideoDecoderMock(_, _, _)) + EXPECT_CALL(*decryptor_, InitializeVideoDecoderMock(_, _)) .Times(AtMost(1)) - .WillOnce(DoAll(RunCallback1(true), SaveArg<2>(&key_added_cb_))); + .WillOnce(RunCallback1(true)); + EXPECT_CALL(*decryptor_, RegisterKeyAddedCB(Decryptor::kVideo, _)) + .WillOnce(SaveArg<1>(&key_added_cb_)); config_.Initialize(kCodecVP8, VIDEO_CODEC_PROFILE_UNKNOWN, kVideoFormat, kCodedSize, kVisibleRect, kNaturalSize, @@ -234,6 +236,9 @@ class DecryptingVideoDecoderTest : public testing::Test { } void Stop() { + EXPECT_CALL(*decryptor_, RegisterKeyAddedCB(Decryptor::kVideo, + IsNullCallback())) + .Times(AtMost(1)); EXPECT_CALL(*decryptor_, DeinitializeDecoder(Decryptor::kVideo)) .WillRepeatedly(InvokeWithoutArgs( this, &DecryptingVideoDecoderTest::AbortAllPendingCBs)); @@ -296,7 +301,7 @@ TEST_F(DecryptingVideoDecoderTest, Initialize_InvalidVideoConfig) { // Ensure decoder handles unsupported video configs without crashing. TEST_F(DecryptingVideoDecoderTest, Initialize_UnsupportedVideoConfig) { - EXPECT_CALL(*decryptor_, InitializeVideoDecoderMock(_, _, _)) + EXPECT_CALL(*decryptor_, InitializeVideoDecoderMock(_, _)) .WillOnce(RunCallback1(false)); VideoDecoderConfig config(kCodecVP8, VIDEO_CODEC_PROFILE_UNKNOWN, @@ -477,7 +482,7 @@ TEST_F(DecryptingVideoDecoderTest, Stop_DuringDecryptorRequested) { // Test stopping when the decoder is in kPendingDecoderInit state. TEST_F(DecryptingVideoDecoderTest, Stop_DuringPendingDecoderInit) { - EXPECT_CALL(*decryptor_, InitializeVideoDecoderMock(_, _, _)) + EXPECT_CALL(*decryptor_, InitializeVideoDecoderMock(_, _)) .WillOnce(SaveArg<1>(&pending_init_cb_)); config_.Initialize(kCodecVP8, VIDEO_CODEC_PROFILE_UNKNOWN, kVideoFormat, diff --git a/webkit/media/crypto/ppapi_decryptor.cc b/webkit/media/crypto/ppapi_decryptor.cc index 5ae10c3..5da0800 100644 --- a/webkit/media/crypto/ppapi_decryptor.cc +++ b/webkit/media/crypto/ppapi_decryptor.cc @@ -96,6 +96,20 @@ void PpapiDecryptor::CancelKeyRequest(const std::string& key_system, ReportFailureToCallPlugin(key_system, session_id); } +void PpapiDecryptor::RegisterKeyAddedCB(StreamType stream_type, + const KeyAddedCB& key_added_cb) { + switch (stream_type) { + case kAudio: + audio_key_added_cb_ = key_added_cb; + break; + case kVideo: + video_key_added_cb_ = key_added_cb; + break; + default: + NOTREACHED(); + } +} + void PpapiDecryptor::Decrypt( StreamType stream_type, const scoped_refptr<media::DecoderBuffer>& encrypted, @@ -119,12 +133,11 @@ void PpapiDecryptor::CancelDecrypt(StreamType stream_type) { void PpapiDecryptor::InitializeAudioDecoder( scoped_ptr<media::AudioDecoderConfig> config, - const DecoderInitCB& init_cb, - const KeyAddedCB& key_added_cb) { + const DecoderInitCB& init_cb) { if (!render_loop_proxy_->BelongsToCurrentThread()) { render_loop_proxy_->PostTask(FROM_HERE, base::Bind( &PpapiDecryptor::InitializeAudioDecoder, weak_this_, - base::Passed(&config), init_cb, key_added_cb)); + base::Passed(&config), init_cb)); return; } @@ -134,8 +147,7 @@ void PpapiDecryptor::InitializeAudioDecoder( audio_decoder_init_cb_ = init_cb; if (!cdm_plugin_->InitializeAudioDecoder(*config, base::Bind( - &PpapiDecryptor::OnDecoderInitialized, weak_this_, - kAudio, key_added_cb))) { + &PpapiDecryptor::OnDecoderInitialized, weak_this_, kAudio))) { base::ResetAndReturn(&audio_decoder_init_cb_).Run(false); return; } @@ -143,12 +155,11 @@ void PpapiDecryptor::InitializeAudioDecoder( void PpapiDecryptor::InitializeVideoDecoder( scoped_ptr<media::VideoDecoderConfig> config, - const DecoderInitCB& init_cb, - const KeyAddedCB& key_added_cb) { + const DecoderInitCB& init_cb) { if (!render_loop_proxy_->BelongsToCurrentThread()) { render_loop_proxy_->PostTask(FROM_HERE, base::Bind( &PpapiDecryptor::InitializeVideoDecoder, weak_this_, - base::Passed(&config), init_cb, key_added_cb)); + base::Passed(&config), init_cb)); return; } @@ -158,8 +169,7 @@ void PpapiDecryptor::InitializeVideoDecoder( video_decoder_init_cb_ = init_cb; if (!cdm_plugin_->InitializeVideoDecoder(*config, base::Bind( - &PpapiDecryptor::OnDecoderInitialized, weak_this_, - kVideo, key_added_cb))) { + &PpapiDecryptor::OnDecoderInitialized, weak_this_, kVideo))) { base::ResetAndReturn(&video_decoder_init_cb_).Run(false); return; } @@ -212,6 +222,7 @@ void PpapiDecryptor::DeinitializeDecoder(StreamType stream_type) { &PpapiDecryptor::DeinitializeDecoder, weak_this_, stream_type)); return; } + DVLOG(2) << "DeinitializeDecoder() - stream_type: " << stream_type; cdm_plugin_->DeinitializeDecoder(stream_type); } @@ -223,27 +234,16 @@ void PpapiDecryptor::ReportFailureToCallPlugin(const std::string& key_system, } void PpapiDecryptor::OnDecoderInitialized(StreamType stream_type, - const KeyAddedCB& key_added_cb, bool success) { - DCHECK(!key_added_cb.is_null()); - switch (stream_type) { case kAudio: - DCHECK(audio_key_added_cb_.is_null()); DCHECK(!audio_decoder_init_cb_.is_null()); - if (success) - audio_key_added_cb_ = key_added_cb; base::ResetAndReturn(&audio_decoder_init_cb_).Run(success); break; - case kVideo: - DCHECK(video_key_added_cb_.is_null()); DCHECK(!video_decoder_init_cb_.is_null()); - if (success) - video_key_added_cb_ = key_added_cb; base::ResetAndReturn(&video_decoder_init_cb_).Run(success); break; - default: NOTREACHED(); } diff --git a/webkit/media/crypto/ppapi_decryptor.h b/webkit/media/crypto/ppapi_decryptor.h index c27e046..4ac5c1e 100644 --- a/webkit/media/crypto/ppapi_decryptor.h +++ b/webkit/media/crypto/ppapi_decryptor.h @@ -51,18 +51,18 @@ class PpapiDecryptor : public media::Decryptor { const std::string& session_id) OVERRIDE; virtual void CancelKeyRequest(const std::string& key_system, const std::string& session_id) OVERRIDE; + virtual void RegisterKeyAddedCB(StreamType stream_type, + const KeyAddedCB& key_added_cb) OVERRIDE; virtual void Decrypt(StreamType stream_type, const scoped_refptr<media::DecoderBuffer>& encrypted, const DecryptCB& decrypt_cb) OVERRIDE; virtual void CancelDecrypt(StreamType stream_type) OVERRIDE; virtual void InitializeAudioDecoder( scoped_ptr<media::AudioDecoderConfig> config, - const DecoderInitCB& init_cb, - const KeyAddedCB& key_added_cb) OVERRIDE; + const DecoderInitCB& init_cb) OVERRIDE; virtual void InitializeVideoDecoder( scoped_ptr<media::VideoDecoderConfig> config, - const DecoderInitCB& init_cb, - const KeyAddedCB& key_added_cb) OVERRIDE; + const DecoderInitCB& init_cb) OVERRIDE; virtual void DecryptAndDecodeAudio( const scoped_refptr<media::DecoderBuffer>& encrypted, const AudioDecodeCB& audio_decode_cb) OVERRIDE; @@ -76,9 +76,7 @@ class PpapiDecryptor : public media::Decryptor { void ReportFailureToCallPlugin(const std::string& key_system, const std::string& session_id); - void OnDecoderInitialized(StreamType stream_type, - const KeyAddedCB& key_added_cb, - bool success); + void OnDecoderInitialized(StreamType stream_type, bool success); media::DecryptorClient* client_; scoped_refptr<webkit::ppapi::PluginInstance> cdm_plugin_; diff --git a/webkit/media/crypto/proxy_decryptor.cc b/webkit/media/crypto/proxy_decryptor.cc index ea1ffba..12dd3b6 100644 --- a/webkit/media/crypto/proxy_decryptor.cc +++ b/webkit/media/crypto/proxy_decryptor.cc @@ -153,6 +153,11 @@ void ProxyDecryptor::CancelKeyRequest(const std::string& key_system, decryptor_->CancelKeyRequest(key_system, session_id); } +void ProxyDecryptor::RegisterKeyAddedCB(StreamType stream_type, + const KeyAddedCB& key_added_cb) { + NOTREACHED() << "KeyAddedCB should not be registered with ProxyDecryptor."; +} + void ProxyDecryptor::Decrypt( StreamType stream_type, const scoped_refptr<media::DecoderBuffer>& encrypted, @@ -211,15 +216,13 @@ void ProxyDecryptor::CancelDecrypt(StreamType stream_type) { void ProxyDecryptor::InitializeAudioDecoder( scoped_ptr<media::AudioDecoderConfig> config, - const DecoderInitCB& init_cb, - const KeyAddedCB& key_added_cb) { + const DecoderInitCB& init_cb) { NOTREACHED() << "ProxyDecryptor does not support audio decoding"; } void ProxyDecryptor::InitializeVideoDecoder( scoped_ptr<media::VideoDecoderConfig> config, - const DecoderInitCB& init_cb, - const KeyAddedCB& key_added_cb) { + const DecoderInitCB& init_cb) { NOTREACHED() << "ProxyDecryptor does not support video decoding"; } diff --git a/webkit/media/crypto/proxy_decryptor.h b/webkit/media/crypto/proxy_decryptor.h index 6ca0027..b0833ff 100644 --- a/webkit/media/crypto/proxy_decryptor.h +++ b/webkit/media/crypto/proxy_decryptor.h @@ -65,18 +65,18 @@ class ProxyDecryptor : public media::Decryptor { const std::string& session_id) OVERRIDE; virtual void CancelKeyRequest(const std::string& key_system, const std::string& session_id) OVERRIDE; + virtual void RegisterKeyAddedCB(StreamType stream_type, + const KeyAddedCB& key_added_cb) OVERRIDE; virtual void Decrypt(StreamType stream_type, const scoped_refptr<media::DecoderBuffer>& encrypted, const DecryptCB& decrypt_cb) OVERRIDE; virtual void CancelDecrypt(StreamType stream_type) OVERRIDE; virtual void InitializeAudioDecoder( scoped_ptr<media::AudioDecoderConfig> config, - const DecoderInitCB& init_cb, - const KeyAddedCB& key_added_cb) OVERRIDE; + const DecoderInitCB& init_cb) OVERRIDE; virtual void InitializeVideoDecoder( scoped_ptr<media::VideoDecoderConfig> config, - const DecoderInitCB& init_cb, - const KeyAddedCB& key_added_cb) OVERRIDE; + const DecoderInitCB& init_cb) OVERRIDE; virtual void DecryptAndDecodeAudio( const scoped_refptr<media::DecoderBuffer>& encrypted, const AudioDecodeCB& audio_decode_cb) OVERRIDE; |