Index: media/filters/decrypting_audio_decoder.cc |
diff --git a/media/filters/decrypting_audio_decoder.cc b/media/filters/decrypting_audio_decoder.cc |
index 79d82093302c313de8265bdf27408a76d2f0429e..124803e2770a4e0a7b7cfba33439a4331bff8038 100644 |
--- a/media/filters/decrypting_audio_decoder.cc |
+++ b/media/filters/decrypting_audio_decoder.cc |
@@ -166,7 +166,8 @@ DecryptingAudioDecoder::~DecryptingAudioDecoder() { |
base::ResetAndReturn(&reset_cb_).Run(); |
} |
-void DecryptingAudioDecoder::SetDecryptor(Decryptor* decryptor) { |
+void DecryptingAudioDecoder::SetDecryptor(Decryptor* decryptor, |
+ base::Closure done_cb) { |
DVLOG(2) << "SetDecryptor()"; |
DCHECK(task_runner_->BelongsToCurrentThread()); |
DCHECK_EQ(state_, kDecryptorRequested) << state_; |
@@ -178,12 +179,16 @@ void DecryptingAudioDecoder::SetDecryptor(Decryptor* decryptor) { |
if (!decryptor) { |
base::ResetAndReturn(&init_cb_).Run(DECODER_ERROR_NOT_SUPPORTED); |
state_ = kError; |
+ if (!done_cb.is_null()) |
+ done_cb.Run(); |
return; |
} |
decryptor_ = decryptor; |
InitializeDecoder(); |
+ if (!done_cb.is_null()) |
+ done_cb.Run(); |
} |
void DecryptingAudioDecoder::InitializeDecoder() { |