| 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 edc17da00145944f6d1c3204423ddbebb5f6b9a2..b8e7e1f1583ac0c710344cac42b8b926b1b91853 100644
|
| --- a/media/base/android/media_codec_player.h
|
| +++ b/media/base/android/media_codec_player.h
|
| @@ -138,6 +138,7 @@ namespace media {
|
| class BrowserCdm;
|
| class MediaCodecAudioDecoder;
|
| class MediaCodecVideoDecoder;
|
| +class MediaDrmBridge;
|
|
|
| // Returns the task runner for the media thread
|
| MEDIA_EXPORT scoped_refptr<base::SingleThreadTaskRunner> GetMediaTaskRunner();
|
| @@ -217,6 +218,8 @@ class MEDIA_EXPORT MediaCodecPlayer : public MediaPlayerAndroid,
|
| kStatePlaying,
|
| kStateStopping,
|
| kStateWaitingForSurface,
|
| + kStateWaitingForKey,
|
| + kStateWaitingForCrypto,
|
| kStateWaitingForSeek,
|
| kStateError,
|
| };
|
| @@ -224,6 +227,7 @@ class MEDIA_EXPORT MediaCodecPlayer : public MediaPlayerAndroid,
|
| enum StartStatus {
|
| kStartOk = 0,
|
| kStartBrowserSeekRequired,
|
| + kStartCryptoRequired,
|
| kStartFailed,
|
| };
|
|
|
| @@ -256,6 +260,7 @@ class MEDIA_EXPORT MediaCodecPlayer : public MediaPlayerAndroid,
|
| void OnPrerollDone();
|
| void OnDecoderDrained(DemuxerStream::Type type);
|
| void OnStopDone(DemuxerStream::Type type);
|
| + void OnKeyRequired(DemuxerStream::Type type);
|
| void OnError();
|
| void OnStarvation(DemuxerStream::Type stream_type);
|
| void OnTimeIntervalUpdate(DemuxerStream::Type stream_type,
|
| @@ -267,6 +272,11 @@ class MEDIA_EXPORT MediaCodecPlayer : public MediaPlayerAndroid,
|
| void OnVideoCodecCreated();
|
| void OnVideoResolutionChanged(const gfx::Size& size);
|
|
|
| + // Callbacks from DRM
|
| + void OnMediaCryptoReady();
|
| + void OnKeyAdded();
|
| + void OnCdmUnset();
|
| +
|
| // Operations called from the state machine.
|
| void SetState(PlayerState new_state);
|
| void SetPendingStart(bool need_to_start);
|
| @@ -355,6 +365,18 @@ class MEDIA_EXPORT MediaCodecPlayer : public MediaPlayerAndroid,
|
| // For testing only.
|
| DecodersTimeCallback decoders_time_cb_;
|
|
|
| + // DRM
|
| + MediaDrmBridge* drm_bridge_;
|
| + int cdm_registration_id_;
|
| +
|
| + // The flag is set when the player receives the error from decoder that the
|
| + // decoderneeds a new encryption key. Cleared on starting the playback.
|
| + bool key_is_required_;
|
| +
|
| + // The flag is set after the new encryption key is added to MediaDrm. Cleared
|
| + // on starting the playback.
|
| + bool key_is_added_;
|
| +
|
| base::WeakPtr<MediaCodecPlayer> media_weak_this_;
|
| // NOTE: Weak pointers must be invalidated before all other member variables.
|
| base::WeakPtrFactory<MediaCodecPlayer> media_weak_factory_;
|
|
|