Index: media/base/android/media_source_player.cc |
diff --git a/media/base/android/media_source_player.cc b/media/base/android/media_source_player.cc |
index 4551520b25f14950dad1b51d4376767869e70af7..1c117b70dfb86fe4d5938a65897c7031cbbd6370 100644 |
--- a/media/base/android/media_source_player.cc |
+++ b/media/base/android/media_source_player.cc |
@@ -18,6 +18,7 @@ |
#include "media/base/android/audio_decoder_job.h" |
#include "media/base/android/media_player_manager.h" |
#include "media/base/android/video_decoder_job.h" |
+#include "media/base/bind_to_current_loop.h" |
#include "media/base/timestamp_constants.h" |
namespace media { |
@@ -258,9 +259,13 @@ void MediaSourcePlayer::OnDemuxerDurationChanged(base::TimeDelta duration) { |
duration_ = duration; |
} |
-void MediaSourcePlayer::OnMediaCryptoReady() { |
+void MediaSourcePlayer::OnMediaCryptoReady( |
+ MediaDrmBridge::JavaObjectPtr /* media_crypto */, |
+ bool /* needs_protected_surface */) { |
+ // Callback parameters are ignored in this player. They are intended for |
+ // MediaCodecPlayer which uses a different threading scheme. |
DCHECK(!drm_bridge_->GetMediaCrypto().is_null()); |
- drm_bridge_->SetMediaCryptoReadyCB(base::Closure()); |
+ drm_bridge_->SetMediaCryptoReadyCB(MediaDrmBridge::MediaCryptoReadyCB()); |
// Retry decoder creation if the decoders are waiting for MediaCrypto. |
RetryDecoderCreation(true, true); |
@@ -292,8 +297,9 @@ void MediaSourcePlayer::SetCdm(BrowserCdm* cdm) { |
video_decoder_job_->SetDrmBridge(drm_bridge_); |
if (drm_bridge_->GetMediaCrypto().is_null()) { |
- drm_bridge_->SetMediaCryptoReadyCB( |
+ MediaDrmBridge::MediaCryptoReadyCB cb = BindToCurrentLoop( |
base::Bind(&MediaSourcePlayer::OnMediaCryptoReady, weak_this_)); |
+ drm_bridge_->SetMediaCryptoReadyCB(cb); |
return; |
} |