Commit 3b3d2a16 authored by Antonio Gomes's avatar Antonio Gomes Committed by Commit Bot

Create WebMediaStreamRendererFactory instances from blink

... instead of content/renderer/media.

Today, content/renderer/media/media_factory.cc calls out to
blink::CreateWebMediaStreamRendererFactory() (from
t_p/blink/public/web/modules/mediastream/web_media_stream_renderer_factory.h)
and passes the object to Blink.

This CL moves this call within WebMediaPlayerMS's ctor, in webmediaplayer_ms.cc
(blink). For tests, it adds an override method.

This will allow:
- merged of WebMediaStreamRendererFactory and
MediaStreamRendererFactoryImpl classes.
- removal of web_media_stream_renderer_factory.h.

BUG=704136
R=guidou@chromium.org, haraken@chromium.org

Change-Id: I368f9063cfa9a361b603d35f9c9b30d31b488837
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2302711
Auto-Submit: Antonio Gomes <tonikitoo@igalia.com>
Commit-Queue: Kentaro Hara <haraken@chromium.org>
Reviewed-by: default avatarKentaro Hara <haraken@chromium.org>
Reviewed-by: default avatarGuido Urdaneta <guidou@chromium.org>
Cr-Commit-Position: refs/heads/master@{#789308}
parent 8b379a91
...@@ -57,7 +57,6 @@ ...@@ -57,7 +57,6 @@
#include "third_party/blink/public/platform/web_surface_layer_bridge.h" #include "third_party/blink/public/platform/web_surface_layer_bridge.h"
#include "third_party/blink/public/platform/web_video_frame_submitter.h" #include "third_party/blink/public/platform/web_video_frame_submitter.h"
#include "third_party/blink/public/web/blink.h" #include "third_party/blink/public/web/blink.h"
#include "third_party/blink/public/web/modules/mediastream/web_media_stream_renderer_factory.h"
#include "third_party/blink/public/web/modules/mediastream/webmediaplayer_ms.h" #include "third_party/blink/public/web/modules/mediastream/webmediaplayer_ms.h"
#include "third_party/blink/public/web/web_local_frame.h" #include "third_party/blink/public/web/web_local_frame.h"
#include "url/origin.h" #include "url/origin.h"
...@@ -709,7 +708,6 @@ blink::WebMediaPlayer* MediaFactory::CreateWebMediaPlayerForMediaStream( ...@@ -709,7 +708,6 @@ blink::WebMediaPlayer* MediaFactory::CreateWebMediaPlayerForMediaStream(
return new blink::WebMediaPlayerMS( return new blink::WebMediaPlayerMS(
frame, client, GetWebMediaPlayerDelegate(), std::move(media_log), frame, client, GetWebMediaPlayerDelegate(), std::move(media_log),
blink::CreateWebMediaStreamRendererFactory(),
render_frame_->GetTaskRunner(blink::TaskType::kInternalMedia), render_frame_->GetTaskRunner(blink::TaskType::kInternalMedia),
render_thread->GetIOTaskRunner(), video_frame_compositor_task_runner, render_thread->GetIOTaskRunner(), video_frame_compositor_task_runner,
render_thread->GetMediaThreadTaskRunner(), render_thread->GetMediaThreadTaskRunner(),
......
...@@ -43,9 +43,6 @@ class BLINK_MODULES_EXPORT WebMediaStreamRendererFactory { ...@@ -43,9 +43,6 @@ class BLINK_MODULES_EXPORT WebMediaStreamRendererFactory {
base::RepeatingCallback<void()> on_render_error_callback) = 0; base::RepeatingCallback<void()> on_render_error_callback) = 0;
}; };
BLINK_MODULES_EXPORT std::unique_ptr<WebMediaStreamRendererFactory>
CreateWebMediaStreamRendererFactory();
} // namespace blink } // namespace blink
#endif // THIRD_PARTY_BLINK_PUBLIC_WEB_MODULES_MEDIASTREAM_WEB_MEDIA_STREAM_RENDERER_FACTORY_H_ #endif // THIRD_PARTY_BLINK_PUBLIC_WEB_MODULES_MEDIASTREAM_WEB_MEDIA_STREAM_RENDERER_FACTORY_H_
...@@ -83,7 +83,6 @@ class BLINK_MODULES_EXPORT WebMediaPlayerMS ...@@ -83,7 +83,6 @@ class BLINK_MODULES_EXPORT WebMediaPlayerMS
WebMediaPlayerClient* client, WebMediaPlayerClient* client,
WebMediaPlayerDelegate* delegate, WebMediaPlayerDelegate* delegate,
std::unique_ptr<media::MediaLog> media_log, std::unique_ptr<media::MediaLog> media_log,
std::unique_ptr<WebMediaStreamRendererFactory> factory,
scoped_refptr<base::SingleThreadTaskRunner> main_render_task_runner, scoped_refptr<base::SingleThreadTaskRunner> main_render_task_runner,
scoped_refptr<base::SingleThreadTaskRunner> io_task_runner, scoped_refptr<base::SingleThreadTaskRunner> io_task_runner,
scoped_refptr<base::SingleThreadTaskRunner> compositor_task_runner, scoped_refptr<base::SingleThreadTaskRunner> compositor_task_runner,
...@@ -277,6 +276,8 @@ class BLINK_MODULES_EXPORT WebMediaPlayerMS ...@@ -277,6 +276,8 @@ class BLINK_MODULES_EXPORT WebMediaPlayerMS
// Helper method used for testing. // Helper method used for testing.
void SetGpuMemoryBufferVideoForTesting( void SetGpuMemoryBufferVideoForTesting(
media::GpuMemoryBufferVideoFramePool* gpu_memory_buffer_pool); media::GpuMemoryBufferVideoFramePool* gpu_memory_buffer_pool);
void SetMediaStreamRendererFactoryForTesting(
std::unique_ptr<WebMediaStreamRendererFactory>);
// Callback used to fulfill video.requestVideoFrameCallback() requests. // Callback used to fulfill video.requestVideoFrameCallback() requests.
void OnNewFramePresentedCallback(); void OnNewFramePresentedCallback();
......
...@@ -47,11 +47,6 @@ void SendLogMessage(const WTF::String& message) { ...@@ -47,11 +47,6 @@ void SendLogMessage(const WTF::String& message) {
} // namespace } // namespace
std::unique_ptr<WebMediaStreamRendererFactory>
CreateWebMediaStreamRendererFactory() {
return std::make_unique<MediaStreamRendererFactoryImpl>();
}
MediaStreamRendererFactoryImpl::MediaStreamRendererFactoryImpl() {} MediaStreamRendererFactoryImpl::MediaStreamRendererFactoryImpl() {}
MediaStreamRendererFactoryImpl::~MediaStreamRendererFactoryImpl() {} MediaStreamRendererFactoryImpl::~MediaStreamRendererFactoryImpl() {}
......
...@@ -33,9 +33,9 @@ ...@@ -33,9 +33,9 @@
#include "third_party/blink/public/platform/web_size.h" #include "third_party/blink/public/platform/web_size.h"
#include "third_party/blink/public/platform/web_surface_layer_bridge.h" #include "third_party/blink/public/platform/web_surface_layer_bridge.h"
#include "third_party/blink/public/web/modules/media/webmediaplayer_util.h" #include "third_party/blink/public/web/modules/media/webmediaplayer_util.h"
#include "third_party/blink/public/web/modules/mediastream/web_media_stream_renderer_factory.h"
#include "third_party/blink/public/web/web_local_frame.h" #include "third_party/blink/public/web/web_local_frame.h"
#include "third_party/blink/renderer/modules/mediastream/media_stream_local_frame_wrapper.h" #include "third_party/blink/renderer/modules/mediastream/media_stream_local_frame_wrapper.h"
#include "third_party/blink/renderer/modules/mediastream/media_stream_renderer_factory_impl.h"
#include "third_party/blink/renderer/modules/mediastream/webmediaplayer_ms_compositor.h" #include "third_party/blink/renderer/modules/mediastream/webmediaplayer_ms_compositor.h"
#include "third_party/blink/renderer/platform/mediastream/media_stream_audio_track.h" #include "third_party/blink/renderer/platform/mediastream/media_stream_audio_track.h"
#include "third_party/blink/renderer/platform/mediastream/media_stream_component.h" #include "third_party/blink/renderer/platform/mediastream/media_stream_component.h"
...@@ -299,7 +299,6 @@ WebMediaPlayerMS::WebMediaPlayerMS( ...@@ -299,7 +299,6 @@ WebMediaPlayerMS::WebMediaPlayerMS(
WebMediaPlayerClient* client, WebMediaPlayerClient* client,
WebMediaPlayerDelegate* delegate, WebMediaPlayerDelegate* delegate,
std::unique_ptr<media::MediaLog> media_log, std::unique_ptr<media::MediaLog> media_log,
std::unique_ptr<WebMediaStreamRendererFactory> factory,
scoped_refptr<base::SingleThreadTaskRunner> main_render_task_runner, scoped_refptr<base::SingleThreadTaskRunner> main_render_task_runner,
scoped_refptr<base::SingleThreadTaskRunner> io_task_runner, scoped_refptr<base::SingleThreadTaskRunner> io_task_runner,
scoped_refptr<base::SingleThreadTaskRunner> compositor_task_runner, scoped_refptr<base::SingleThreadTaskRunner> compositor_task_runner,
...@@ -320,7 +319,7 @@ WebMediaPlayerMS::WebMediaPlayerMS( ...@@ -320,7 +319,7 @@ WebMediaPlayerMS::WebMediaPlayerMS(
paused_(true), paused_(true),
video_transformation_(media::kNoTransformation), video_transformation_(media::kNoTransformation),
media_log_(std::move(media_log)), media_log_(std::move(media_log)),
renderer_factory_(std::move(factory)), renderer_factory_(std::make_unique<MediaStreamRendererFactoryImpl>()),
main_render_task_runner_(std::move(main_render_task_runner)), main_render_task_runner_(std::move(main_render_task_runner)),
io_task_runner_(std::move(io_task_runner)), io_task_runner_(std::move(io_task_runner)),
compositor_task_runner_(std::move(compositor_task_runner)), compositor_task_runner_(std::move(compositor_task_runner)),
...@@ -1319,6 +1318,11 @@ void WebMediaPlayerMS::SetGpuMemoryBufferVideoForTesting( ...@@ -1319,6 +1318,11 @@ void WebMediaPlayerMS::SetGpuMemoryBufferVideoForTesting(
frame_deliverer_->gpu_memory_buffer_pool_.reset(gpu_memory_buffer_pool); frame_deliverer_->gpu_memory_buffer_pool_.reset(gpu_memory_buffer_pool);
} }
void WebMediaPlayerMS::SetMediaStreamRendererFactoryForTesting(
std::unique_ptr<WebMediaStreamRendererFactory> renderer_factory) {
renderer_factory_ = std::move(renderer_factory);
}
void WebMediaPlayerMS::OnDisplayTypeChanged( void WebMediaPlayerMS::OnDisplayTypeChanged(
WebMediaPlayer::DisplayType display_type) { WebMediaPlayer::DisplayType display_type) {
if (!bridge_) if (!bridge_)
......
...@@ -680,7 +680,6 @@ void WebMediaPlayerMSTest::InitializeWebMediaPlayerMS() { ...@@ -680,7 +680,6 @@ void WebMediaPlayerMSTest::InitializeWebMediaPlayerMS() {
: WebMediaPlayer::SurfaceLayerMode::kNever; : WebMediaPlayer::SurfaceLayerMode::kNever;
player_ = std::make_unique<WebMediaPlayerMS>( player_ = std::make_unique<WebMediaPlayerMS>(
nullptr, this, &delegate_, std::make_unique<media::NullMediaLog>(), nullptr, this, &delegate_, std::make_unique<media::NullMediaLog>(),
std::unique_ptr<WebMediaStreamRendererFactory>(render_factory_),
scheduler::GetSingleThreadTaskRunnerForTesting(), scheduler::GetSingleThreadTaskRunnerForTesting(),
scheduler::GetSingleThreadTaskRunnerForTesting(), scheduler::GetSingleThreadTaskRunnerForTesting(),
scheduler::GetSingleThreadTaskRunnerForTesting(), scheduler::GetSingleThreadTaskRunnerForTesting(),
...@@ -690,6 +689,8 @@ void WebMediaPlayerMSTest::InitializeWebMediaPlayerMS() { ...@@ -690,6 +689,8 @@ void WebMediaPlayerMSTest::InitializeWebMediaPlayerMS() {
WTF::Bind(&WebMediaPlayerMSTest::CreateMockSurfaceLayerBridge, WTF::Bind(&WebMediaPlayerMSTest::CreateMockSurfaceLayerBridge,
WTF::Unretained(this)), WTF::Unretained(this)),
std::move(submitter_), surface_layer_mode); std::move(submitter_), surface_layer_mode);
player_->SetMediaStreamRendererFactoryForTesting(
std::unique_ptr<WebMediaStreamRendererFactory>(render_factory_));
} }
MockMediaStreamVideoRenderer* WebMediaPlayerMSTest::LoadAndGetFrameProvider( MockMediaStreamVideoRenderer* WebMediaPlayerMSTest::LoadAndGetFrameProvider(
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment