From: sm.venugopal Date: Wed, 18 Nov 2015 16:22:21 +0000 (+0530) Subject: [MM] Utilize |WebMediaPlayerParams| while creating media engine instance X-Git-Tag: submit/tizen/20201118.160233~480 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=598589e1ad883e71764efa8d985fd3303131f3a3;p=platform%2Fframework%2Fweb%2Fchromium-efl.git [MM] Utilize |WebMediaPlayerParams| while creating media engine instance |WebMediaPlayerParams| is passed on as argument to be in sync with upstream code. Together with: I6e6e327c9a0ba04986f157582321de5ad01e32aa Bug: http://web.sec.samsung.net/bugzilla/show_bug.cgi?id=14649 Reviewed by: a1.gomes, sns.park Change-Id: I6d93e70974f2ffa9f45925cbd3ddde1bcc4a1706 Signed-off-by: sm.venugopal --- diff --git a/tizen_src/chromium_impl/content/renderer/media/efl/webmediaplayer_efl.cc b/tizen_src/chromium_impl/content/renderer/media/efl/webmediaplayer_efl.cc index 73af7bd..353b16f 100644 --- a/tizen_src/chromium_impl/content/renderer/media/efl/webmediaplayer_efl.cc +++ b/tizen_src/chromium_impl/content/renderer/media/efl/webmediaplayer_efl.cc @@ -34,30 +34,32 @@ blink::WebMediaPlayer* CreateWebMediaPlayerEfl( content::RendererMediaPlayerManager* manager, blink::WebFrame* frame, blink::WebMediaPlayerClient* client, - base::WeakPtr delegate) { - return new WebMediaPlayerEfl(manager, frame, client, delegate); + base::WeakPtr delegate, + const media::WebMediaPlayerParams& params) { + return new WebMediaPlayerEfl(manager, frame, client, delegate, params); } WebMediaPlayerEfl::WebMediaPlayerEfl( RendererMediaPlayerManager* manager, blink::WebFrame* frame, blink::WebMediaPlayerClient* client, - base::WeakPtr delegate) + base::WeakPtr delegate, + const media::WebMediaPlayerParams& params) : frame_(frame), network_state_(blink::WebMediaPlayer::NetworkStateEmpty), ready_state_(blink::WebMediaPlayer::ReadyStateHaveNothing), main_loop_(base::ThreadTaskRunnerHandle::Get()), - media_task_runner_( - RenderThreadImpl::current()->GetMediaThreadTaskRunner()), + media_task_runner_(params.media_task_runner()), manager_(manager), client_(client), - media_log_(new RenderMediaLog()), + media_log_(params.media_log()), delegate_(delegate), + defer_load_cb_(params.defer_load_cb()), // Threaded compositing isn't enabled universally yet. compositor_task_runner_( - RenderThreadImpl::current()->compositor_task_runner().get() - ? RenderThreadImpl::current()->compositor_task_runner() - : base::ThreadTaskRunnerHandle::Get()), + params.compositor_task_runner() + ? params.compositor_task_runner() + : base::MessageLoop::current()->task_runner()), compositor_(new media::VideoFrameCompositor( compositor_task_runner_, BIND_TO_RENDER_LOOP(&WebMediaPlayerEfl::OnNaturalSizeChanged), @@ -118,7 +120,16 @@ WebMediaPlayerEfl::~WebMediaPlayerEfl() { void WebMediaPlayerEfl::load(LoadType load_type, const blink::WebURL& url, - CORSMode cors_mode) { + CORSMode /* cors_mode */) { + if (!defer_load_cb_.is_null()) { + defer_load_cb_.Run(base::Bind( + &WebMediaPlayerEfl::DoLoad, AsWeakPtr(), load_type, url)); + return; + } + DoLoad(load_type, url); +} + +void WebMediaPlayerEfl::DoLoad(LoadType load_type, const blink::WebURL& url) { int demuxer_client_id = 0; if (load_type == LoadTypeMediaSource) { // EFL GST-package on desktop cannot handle AAC decoding. diff --git a/tizen_src/chromium_impl/content/renderer/media/efl/webmediaplayer_efl.h b/tizen_src/chromium_impl/content/renderer/media/efl/webmediaplayer_efl.h index f366e4b..e177917 100644 --- a/tizen_src/chromium_impl/content/renderer/media/efl/webmediaplayer_efl.h +++ b/tizen_src/chromium_impl/content/renderer/media/efl/webmediaplayer_efl.h @@ -16,6 +16,7 @@ #include "media/base/efl/media_player_efl.h" #include "media/blink/skcanvas_video_renderer.h" #include "media/blink/video_frame_compositor.h" +#include "media/blink/webmediaplayer_params.h" #include "third_party/WebKit/public/platform/WebMediaPlayer.h" #include "third_party/WebKit/public/platform/WebMediaPlayerEncryptedMediaClient.h" @@ -58,7 +59,8 @@ class WebMediaPlayerEfl RendererMediaPlayerManager* manager, blink::WebFrame* frame, blink::WebMediaPlayerClient* client, - base::WeakPtr delegate); + base::WeakPtr delegate, + const media::WebMediaPlayerParams& params); ~WebMediaPlayerEfl() override; // blink::WebMediaPlayer implementation. @@ -167,6 +169,10 @@ class WebMediaPlayerEfl void OnWaitingForDecryptionKey(); private: + // Called after |defer_load_cb_| has decided to allow the load. If + // |defer_load_cb_| is null this is called immediately. + void DoLoad(LoadType load_type, const blink::WebURL& url); + void OnNaturalSizeChanged(gfx::Size size); void OnOpacityChanged(bool opaque); @@ -198,6 +204,8 @@ class WebMediaPlayerEfl base::WeakPtr delegate_; + media::WebMediaPlayerParams::DeferLoadCB defer_load_cb_; + // The compositor layer for displaying the video content when using // composited playback. scoped_ptr video_weblayer_;