media: Use CdmContext::EventCB for new key notification
CdmContext::EventCB is the new standard way for CDM to notify the media
pipeline about events. This CL uses it to notify new key so that we
can remove Decryptor::NewKeyCB.
Bug: 413413,821288
Change-Id: Ic0cf1b95035f2d09a93e2bd4e8e129fb43af3962
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2292791
Commit-Queue: Xiaohan Wang <xhwang@chromium.org>
Reviewed-by: Yuchen Liu <yucliu@chromium.org>
Reviewed-by: John Rummell <jrummell@chromium.org>
Reviewed-by: Jeffrey Kardatzke <jkardatzke@google.com>
Cr-Commit-Position: refs/heads/master@{#788004}
diff --git a/media/filters/decrypting_audio_decoder_unittest.cc b/media/filters/decrypting_audio_decoder_unittest.cc
index c364c73..25717ca 100644
--- a/media/filters/decrypting_audio_decoder_unittest.cc
+++ b/media/filters/decrypting_audio_decoder_unittest.cc
@@ -109,8 +109,10 @@
EXPECT_CALL(*decryptor_, InitializeAudioDecoder(_, _))
.Times(AtMost(1))
.WillOnce(RunOnceCallback<1>(true));
- EXPECT_CALL(*decryptor_, RegisterNewKeyCB(Decryptor::kAudio, _))
- .WillOnce(SaveArg<1>(&key_added_cb_));
+ EXPECT_CALL(*cdm_context_, RegisterEventCB(_)).WillOnce([&](auto cb) {
+ event_cb_ = cb;
+ return std::make_unique<CallbackRegistration>();
+ });
config_.Initialize(kCodecVorbis, kSampleFormatPlanarF32,
CHANNEL_LAYOUT_STEREO, kSampleRate, EmptyExtraData(),
@@ -124,8 +126,6 @@
EXPECT_CALL(*decryptor_, DeinitializeDecoder(Decryptor::kAudio));
EXPECT_CALL(*decryptor_, InitializeAudioDecoder(_, _))
.WillOnce(RunOnceCallback<1>(true));
- EXPECT_CALL(*decryptor_, RegisterNewKeyCB(Decryptor::kAudio, _))
- .WillOnce(SaveArg<1>(&key_added_cb_));
decoder_->Initialize(
new_config, cdm_context_.get(),
base::BindOnce([](Status status) { EXPECT_TRUE(status.is_ok()); }),
@@ -263,7 +263,7 @@
int num_frames_in_decryptor_;
Decryptor::DecoderInitCB pending_init_cb_;
- Decryptor::NewKeyCB key_added_cb_;
+ CdmContext::EventCB event_cb_;
Decryptor::AudioDecodeCB pending_audio_decode_cb_;
// Constant buffer/frames, to be used/returned by |decoder_| and |decryptor_|.
@@ -291,6 +291,10 @@
// Ensure decoder handles unsupported audio configs without crashing.
TEST_F(DecryptingAudioDecoderTest, Initialize_UnsupportedAudioConfig) {
SetCdmType(CDM_WITH_DECRYPTOR);
+ EXPECT_CALL(*cdm_context_, RegisterEventCB(_)).WillOnce([&](auto cb) {
+ event_cb_ = cb;
+ return std::make_unique<CallbackRegistration>();
+ });
EXPECT_CALL(*decryptor_, InitializeAudioDecoder(_, _))
.WillOnce(RunOnceCallback<1>(false));
@@ -411,7 +415,7 @@
.WillRepeatedly(RunCallback<1>(Decryptor::kSuccess, decoded_frame_list_));
EXPECT_CALL(*this, FrameReady(decoded_frame_));
EXPECT_CALL(*this, DecodeDone(DecodeStatus::OK));
- key_added_cb_.Run();
+ event_cb_.Run(CdmContext::Event::kHasAdditionalUsableKey);
base::RunLoop().RunUntilIdle();
}
@@ -427,7 +431,7 @@
EXPECT_CALL(*this, DecodeDone(DecodeStatus::OK));
// The audio decode callback is returned after the correct decryption key is
// added.
- key_added_cb_.Run();
+ event_cb_.Run(CdmContext::Event::kHasAdditionalUsableKey);
std::move(pending_audio_decode_cb_)
.Run(Decryptor::kNoKey, Decryptor::AudioFrames());
base::RunLoop().RunUntilIdle();