Chromium Code Reviews| Index: webkit/media/webmediaplayer_proxy.h |
| diff --git a/webkit/media/webmediaplayer_proxy.h b/webkit/media/webmediaplayer_proxy.h |
| index f958f5d7473f971a6f579500be3e224d312fb20a..8018532f3a9f85272c110475f867e85fac89f70f 100644 |
| --- a/webkit/media/webmediaplayer_proxy.h |
| +++ b/webkit/media/webmediaplayer_proxy.h |
| @@ -12,6 +12,7 @@ |
| #include "base/memory/ref_counted.h" |
| #include "base/synchronization/lock.h" |
| #include "media/base/pipeline.h" |
| +#include "media/crypto/decryptor_client.h" |
| #include "media/filters/chunk_demuxer.h" |
| #include "media/filters/chunk_demuxer_client.h" |
| #include "media/filters/ffmpeg_video_decoder.h" |
| @@ -41,7 +42,8 @@ class WebMediaPlayerImpl; |
| // the render thread that WebMediaPlayerImpl is running on. |
| class WebMediaPlayerProxy |
| : public base::RefCountedThreadSafe<WebMediaPlayerProxy>, |
| - public media::ChunkDemuxerClient { |
| + public media::ChunkDemuxerClient, |
| + public media::DecryptorClient { |
| public: |
| WebMediaPlayerProxy(const scoped_refptr<base::MessageLoopProxy>& render_loop, |
| WebMediaPlayerImpl* webmediaplayer); |
| @@ -89,8 +91,8 @@ class WebMediaPlayerProxy |
| // ChunkDemuxerClient implementation. |
| virtual void DemuxerOpened(media::ChunkDemuxer* demuxer) OVERRIDE; |
| virtual void DemuxerClosed() OVERRIDE; |
| - virtual void KeyNeeded(scoped_array<uint8> init_data, |
| - int init_data_size) OVERRIDE; |
| + virtual void DemuxerNeedKey(scoped_array<uint8> init_data, |
| + int init_data_size) OVERRIDE; |
| // Methods for Demuxer communication. |
| void DemuxerStartWaitingForSeek(); |
| @@ -105,9 +107,22 @@ class WebMediaPlayerProxy |
| void DemuxerEndOfStream(media::PipelineStatus status); |
| void DemuxerShutdown(); |
| - void DemuxerOpenedTask(const scoped_refptr<media::ChunkDemuxer>& demuxer); |
| - void DemuxerClosedTask(); |
| - void KeyNeededTask(scoped_array<uint8> init_data, int init_data_size); |
| + // DecryptorClient implementation. |
| + virtual void KeyAdded(const std::string& key_system, |
| + const std::string& session_id) OVERRIDE; |
| + virtual void KeyError(const std::string& key_system, |
| + const std::string& session_id, |
| + media::AesDecryptor::KeyError error_code, |
| + int system_code) OVERRIDE; |
| + virtual void KeyMessage(const std::string& key_system, |
| + const std::string& session_id, |
| + scoped_array<uint8> message, |
| + int message_length, |
| + const std::string& default_url) OVERRIDE; |
| + virtual void NeedKey(const std::string& key_system, |
| + const std::string& session_id, |
| + scoped_array<uint8> init_data, |
| + int init_data_size) OVERRIDE; |
| private: |
| friend class base::RefCountedThreadSafe<WebMediaPlayerProxy>; |
| @@ -132,6 +147,32 @@ class WebMediaPlayerProxy |
| // Inform |webmediaplayer_| whether the video content is opaque. |
| void SetOpaqueTask(bool opaque); |
| + void DemuxerOpenedTask(const scoped_refptr<media::ChunkDemuxer>& demuxer); |
| + void DemuxerClosedTask(); |
| + |
| + // Notify |webmediaplayer_| that a key has been added. |
| + void KeyAddedTask(const std::string& key_system, |
| + const std::string& session_id); |
| + |
| + // Notify |webmediaplayer_| that a key error has occurred. |
|
ddorwin
2012/06/14 21:00:13
nit: remove "has" to be consistent with DecryptorC
xhwang
2012/06/15 01:41:04
Done.
|
| + void KeyErrorTask(const std::string& key_system, |
| + const std::string& session_id, |
| + media::AesDecryptor::KeyError error_code, |
| + int system_code); |
| + |
| + // Notify |webmediaplayer_| that a key message has been generated. |
| + void KeyMessageTask(const std::string& key_system, |
| + const std::string& session_id, |
| + scoped_array<uint8> message, |
| + int message_length, |
| + const std::string& default_url); |
| + |
| + // Notify |webmediaplayer_| that a key is needed for decryption. |
| + void NeedKeyTask(const std::string& key_system, |
| + const std::string& session_id, |
| + scoped_array<uint8> init_data, |
| + int init_data_size); |
| + |
| // The render message loop where WebKit lives. |
| scoped_refptr<base::MessageLoopProxy> render_loop_; |
| WebMediaPlayerImpl* webmediaplayer_; |