Index: media/base/android/media_codec_player.h |
diff --git a/media/base/android/media_codec_player.h b/media/base/android/media_codec_player.h |
index 376c2e4f94472a0c8f749227acac84c972b6d7ca..669670119e90db4a617cb52cd38b4ae341f26163 100644 |
--- a/media/base/android/media_codec_player.h |
+++ b/media/base/android/media_codec_player.h |
@@ -157,7 +157,6 @@ |
namespace media { |
-class BrowserCdm; |
class MediaCodecAudioDecoder; |
class MediaCodecVideoDecoder; |
@@ -214,7 +213,7 @@ class MEDIA_EXPORT MediaCodecPlayer : public MediaPlayerAndroid, |
bool CanSeekForward() override; |
bool CanSeekBackward() override; |
bool IsPlayerReady() override; |
- void SetCdm(BrowserCdm* cdm) override; |
+ void SetCdm(const scoped_refptr<MediaKeys>& cdm) override; |
// DemuxerAndroidClient implementation. |
void OnDemuxerConfigsAvailable(const DemuxerConfigs& params) override; |
@@ -300,7 +299,7 @@ class MEDIA_EXPORT MediaCodecPlayer : public MediaPlayerAndroid, |
// Callbacks from video decoder |
void OnVideoResolutionChanged(const gfx::Size& size); |
- // Callbacks from CDM |
+ // Callbacks from MediaDrmBridge. |
void OnMediaCryptoReady(MediaDrmBridge::JavaObjectPtr media_crypto, |
bool needs_protected_surface); |
void OnKeyAdded(); |
@@ -395,7 +394,10 @@ class MEDIA_EXPORT MediaCodecPlayer : public MediaPlayerAndroid, |
// For testing only. |
DecodersTimeCallback decoders_time_cb_; |
- // DRM |
+ // Holds a ref-count to the CDM to keep |media_crypto_| and |drm_bridge_| |
+ // valid. Reset during destruction or when the CDM is unset. |
+ scoped_refptr<MediaKeys> cdm_; |
+ |
MediaDrmBridge::JavaObjectPtr media_crypto_; |
MediaDrmBridge* drm_bridge_; |