Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(156)

Side by Side Diff: content/renderer/render_frame_impl.cc

Issue 2204673004: WIP - WebMediaPlayer switch media renderer. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Addressed comments. Created 4 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "content/renderer/render_frame_impl.h" 5 #include "content/renderer/render_frame_impl.h"
6 6
7 #include <map> 7 #include <map>
8 #include <string> 8 #include <string>
9 #include <utility> 9 #include <utility>
10 #include <vector> 10 #include <vector>
(...skipping 128 matching lines...) Expand 10 before | Expand all | Expand 10 after
139 #include "media/audio/audio_output_device.h" 139 #include "media/audio/audio_output_device.h"
140 #include "media/base/audio_renderer_mixer_input.h" 140 #include "media/base/audio_renderer_mixer_input.h"
141 #include "media/base/cdm_factory.h" 141 #include "media/base/cdm_factory.h"
142 #include "media/base/decoder_factory.h" 142 #include "media/base/decoder_factory.h"
143 #include "media/base/media.h" 143 #include "media/base/media.h"
144 #include "media/base/media_log.h" 144 #include "media/base/media_log.h"
145 #include "media/base/media_switches.h" 145 #include "media/base/media_switches.h"
146 #include "media/blink/url_index.h" 146 #include "media/blink/url_index.h"
147 #include "media/blink/webencryptedmediaclient_impl.h" 147 #include "media/blink/webencryptedmediaclient_impl.h"
148 #include "media/blink/webmediaplayer_impl.h" 148 #include "media/blink/webmediaplayer_impl.h"
149 #include "media/remoting/remoting_controller.h"
150 #include "media/remoting/remoting_renderer_factory.h"
149 #include "media/renderers/gpu_video_accelerator_factories.h" 151 #include "media/renderers/gpu_video_accelerator_factories.h"
150 #include "mojo/edk/js/core.h" 152 #include "mojo/edk/js/core.h"
151 #include "mojo/edk/js/support.h" 153 #include "mojo/edk/js/support.h"
152 #include "net/base/data_url.h" 154 #include "net/base/data_url.h"
153 #include "net/base/net_errors.h" 155 #include "net/base/net_errors.h"
154 #include "net/base/registry_controlled_domains/registry_controlled_domain.h" 156 #include "net/base/registry_controlled_domains/registry_controlled_domain.h"
155 #include "net/http/http_util.h" 157 #include "net/http/http_util.h"
156 #include "services/shell/public/cpp/interface_provider.h" 158 #include "services/shell/public/cpp/interface_provider.h"
157 #include "services/shell/public/cpp/interface_registry.h" 159 #include "services/shell/public/cpp/interface_registry.h"
158 #include "storage/common/data_element.h" 160 #include "storage/common/data_element.h"
(...skipping 2523 matching lines...) Expand 10 before | Expand all | Expand 10 after
2682 return CreateAndroidWebMediaPlayer(client, encrypted_client, params); 2684 return CreateAndroidWebMediaPlayer(client, encrypted_client, params);
2683 } 2685 }
2684 #endif // defined(OS_ANDROID) 2686 #endif // defined(OS_ANDROID)
2685 2687
2686 #if defined(ENABLE_MOJO_RENDERER) 2688 #if defined(ENABLE_MOJO_RENDERER)
2687 std::unique_ptr<media::RendererFactory> media_renderer_factory( 2689 std::unique_ptr<media::RendererFactory> media_renderer_factory(
2688 new media::MojoRendererFactory( 2690 new media::MojoRendererFactory(
2689 base::Bind(&RenderThreadImpl::GetGpuFactories, 2691 base::Bind(&RenderThreadImpl::GetGpuFactories,
2690 base::Unretained(render_thread)), 2692 base::Unretained(render_thread)),
2691 GetMediaInterfaceProvider())); 2693 GetMediaInterfaceProvider()));
2694 media::MediaPlayerObserver* player_observer = nullptr;
2692 #else 2695 #else
2693 std::unique_ptr<media::RendererFactory> media_renderer_factory( 2696 std::unique_ptr<media::RendererFactory> default_renderer_factory(
2694 new media::DefaultRendererFactory( 2697 new media::DefaultRendererFactory(
2695 media_log, GetDecoderFactory(), 2698 media_log, GetDecoderFactory(),
2696 base::Bind(&RenderThreadImpl::GetGpuFactories, 2699 base::Bind(&RenderThreadImpl::GetGpuFactories,
2697 base::Unretained(render_thread)))); 2700 base::Unretained(render_thread))));
2701 std::unique_ptr<media::RemotingController> remoting_controller(
2702 new media::RemotingController(GetRemoterFactory()));
2703 media::MediaPlayerObserver* player_observer = remoting_controller.get();
2704 std::unique_ptr<media::RendererFactory> media_renderer_factory(
2705 new media::RemotingRendererFactory(std::move(default_renderer_factory),
2706 std::move(remoting_controller)));
2698 #endif // defined(ENABLE_MOJO_RENDERER) 2707 #endif // defined(ENABLE_MOJO_RENDERER)
2699 2708
2700 if (!url_index_.get() || url_index_->frame() != frame_) 2709 if (!url_index_.get() || url_index_->frame() != frame_)
2701 url_index_.reset(new media::UrlIndex(frame_)); 2710 url_index_.reset(new media::UrlIndex(frame_));
2702 2711
2703 // TODO(miu): In a soon-upcoming change, call GetRemoterFactory()->Create() to 2712 // TODO(miu): In a soon-upcoming change, call GetRemoterFactory()->Create() to
miu 2016/09/30 08:12:10 Looks like you can remove this TODO comment now. ;
xjz 2016/10/01 00:28:41 Done.
2704 // allow the local media pipeline to receive notifications about when Media 2713 // allow the local media pipeline to receive notifications about when Media
2705 // Remoting can take place. Control logic in/around WebMediaPlayerImpl will 2714 // Remoting can take place. Control logic in/around WebMediaPlayerImpl will
2706 // implement media.mojom.RemotingSource. http://crbug.com/643964 2715 // implement media.mojom.RemotingSource. http://crbug.com/643964
2707 2716
2708 media::WebMediaPlayerImpl* media_player = new media::WebMediaPlayerImpl( 2717 media::WebMediaPlayerImpl* media_player = new media::WebMediaPlayerImpl(
2709 frame_, client, encrypted_client, 2718 frame_, client, encrypted_client,
2710 GetWebMediaPlayerDelegate()->AsWeakPtr(), 2719 GetWebMediaPlayerDelegate()->AsWeakPtr(),
2711 std::move(media_renderer_factory), url_index_, params); 2720 std::move(media_renderer_factory), url_index_, player_observer, params);
2712 2721
2713 #if defined(OS_ANDROID) // WMPI_CAST 2722 #if defined(OS_ANDROID) // WMPI_CAST
2714 media_player->SetMediaPlayerManager(GetMediaPlayerManager()); 2723 media_player->SetMediaPlayerManager(GetMediaPlayerManager());
2715 media_player->SetDeviceScaleFactor(render_view_->GetDeviceScaleFactor()); 2724 media_player->SetDeviceScaleFactor(render_view_->GetDeviceScaleFactor());
2716 #endif 2725 #endif
2717 2726
2718 return media_player; 2727 return media_player;
2719 } 2728 }
2720 2729
2721 blink::WebMediaSession* RenderFrameImpl::createMediaSession() { 2730 blink::WebMediaSession* RenderFrameImpl::createMediaSession() {
(...skipping 3709 matching lines...) Expand 10 before | Expand all | Expand 10 after
6431 // event target. Potentially a Pepper plugin will receive the event. 6440 // event target. Potentially a Pepper plugin will receive the event.
6432 // In order to tell whether a plugin gets the last mouse event and which it 6441 // In order to tell whether a plugin gets the last mouse event and which it
6433 // is, we set |pepper_last_mouse_event_target_| to null here. If a plugin gets 6442 // is, we set |pepper_last_mouse_event_target_| to null here. If a plugin gets
6434 // the event, it will notify us via DidReceiveMouseEvent() and set itself as 6443 // the event, it will notify us via DidReceiveMouseEvent() and set itself as
6435 // |pepper_last_mouse_event_target_|. 6444 // |pepper_last_mouse_event_target_|.
6436 pepper_last_mouse_event_target_ = nullptr; 6445 pepper_last_mouse_event_target_ = nullptr;
6437 #endif 6446 #endif
6438 } 6447 }
6439 6448
6440 } // namespace content 6449 } // namespace content
OLDNEW
« no previous file with comments | « content/renderer/BUILD.gn ('k') | media/BUILD.gn » ('j') | media/BUILD.gn » ('J')

Powered by Google App Engine
This is Rietveld 408576698