[MM]EME implementation using EncryptedMediaPlayerSupport.
[platform/framework/web/chromium-efl.git] / tizen_src / impl / media / base / tizen / webmediaplayer_tizen.h
index f404ae1..cb1a12a 100644 (file)
 #include "content/renderer/media/tizen/media_source_delegate_tizen.h"
 #include "content/renderer/media/tizen/renderer_media_player_manager_tizen.h"
 #include "media/blink/video_frame_compositor.h"
+#include "media/blink/webmediaplayer_params.h"
 #include "media/filters/skcanvas_video_renderer.h"
 
 namespace blink {
-class WebFrame;
+class WebLocalFrame;
 }
 
 namespace cc_blink {
@@ -45,9 +46,10 @@ class WebMediaPlayerTizen
   // |proxy|.
   WebMediaPlayerTizen(
       content::RendererMediaPlayerManagerTizen* manager,
-      blink::WebFrame* frame,
+      blink::WebLocalFrame* frame,
       blink::WebMediaPlayerClient* client,
       base::WeakPtr<media::WebMediaPlayerDelegate> delegate,
+      const WebMediaPlayerParams& params,
       content::WrtUrlParseBase* wrt_url_parse);
   virtual ~WebMediaPlayerTizen();
 
@@ -110,6 +112,30 @@ class WebMediaPlayerTizen
   // Method inherited from DestructionObserver.
   virtual void WillDestroyCurrentMessageLoop() override {};
 
+  virtual MediaKeyException generateKeyRequest(
+      const blink::WebString& key_system,
+      const unsigned char* init_data,
+      unsigned init_data_length);
+
+  virtual MediaKeyException addKey(const blink::WebString& key_system,
+                                   const unsigned char* key,
+                                   unsigned key_length,
+                                   const unsigned char* init_data,
+                                   unsigned init_data_length,
+                                   const blink::WebString& session_id);
+
+  virtual MediaKeyException cancelKeyRequest(
+      const blink::WebString& key_system,
+      const blink::WebString& session_id);
+
+  // TODO(jrummell): Remove this method once Blink updated to use the other
+  // method.
+  virtual void setContentDecryptionModule(
+      blink::WebContentDecryptionModule* cdm);
+  virtual void setContentDecryptionModule(
+      blink::WebContentDecryptionModule* cdm,
+      blink::WebContentDecryptionModuleResult result);
+
   void SetReadyState(WebMediaPlayer::ReadyState state);
   void SetNetworkState(WebMediaPlayer::NetworkState state);
 
@@ -146,7 +172,7 @@ class WebMediaPlayerTizen
   // Called whenever there is new frame to be painted.
   void FrameReady(const scoped_refptr<media::VideoFrame>& frame);
 
-  blink::WebFrame* frame_;
+  blink::WebLocalFrame* frame_;
 
   blink::WebMediaPlayer::NetworkState network_state_;
   blink::WebMediaPlayer::ReadyState ready_state_;
@@ -177,8 +203,7 @@ class WebMediaPlayerTizen
   media::SkCanvasVideoRenderer skcanvas_video_renderer_;
 
   base::WeakPtrFactory<WebMediaPlayerTizen> weak_factory_;
-  scoped_ptr<content::MediaSourceDelegateTizen,
-      content::MediaSourceDelegateTizen::Destroyer> media_source_delegate_;
+  scoped_ptr<content::MediaSourceDelegateTizen> media_source_delegate_;
   MediaPlayerHostMsg_Initialize_Type player_type_;
 
   // Player ID assigned by the |manager_|.
@@ -211,6 +236,7 @@ class WebMediaPlayerTizen
 
   // Factories for supporting video accelerators. May be null.
   scoped_refptr<media::GpuVideoAcceleratorFactories> gpu_factories_;
+  scoped_ptr<EncryptedMediaPlayerSupport> encrypted_media_support_;
   content::WrtUrlParseBase* wrt_url_parse_;
 
   DISALLOW_COPY_AND_ASSIGN(WebMediaPlayerTizen);