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

Unified Diff: media/mojo/services/mojo_renderer_impl.cc

Issue 1873513003: Add video-rendering to mojo media pipeline. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: export VideoOverlayFactory Created 4 years, 7 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 side-by-side diff with in-line comments
Download patch
Index: media/mojo/services/mojo_renderer_impl.cc
diff --git a/media/mojo/services/mojo_renderer_impl.cc b/media/mojo/services/mojo_renderer_impl.cc
index 55407310e9b20bff87db3662a702cfe5ac9c20c0..564941378a7eff63a5346d8c74ed651a2a7ec4bb 100644
--- a/media/mojo/services/mojo_renderer_impl.cc
+++ b/media/mojo/services/mojo_renderer_impl.cc
@@ -12,15 +12,21 @@
#include "base/single_thread_task_runner.h"
#include "media/base/demuxer_stream_provider.h"
#include "media/base/renderer_client.h"
+#include "media/base/video_renderer_sink.h"
#include "media/mojo/services/mojo_demuxer_stream_impl.h"
+#include "media/renderers/video_overlay_factory.h"
#include "mojo/converters/geometry/geometry_type_converters.h"
namespace media {
MojoRendererImpl::MojoRendererImpl(
const scoped_refptr<base::SingleThreadTaskRunner>& task_runner,
+ std::unique_ptr<VideoOverlayFactory> video_overlay_factory,
+ VideoRendererSink* video_renderer_sink,
mojom::RendererPtr remote_renderer)
: task_runner_(task_runner),
+ video_overlay_factory_(std::move(video_overlay_factory)),
+ video_renderer_sink_(video_renderer_sink),
remote_renderer_info_(remote_renderer.PassInterface()),
binding_(this) {
DVLOG(1) << __FUNCTION__;
@@ -180,9 +186,13 @@ void MojoRendererImpl::OnError() {
}
void MojoRendererImpl::OnVideoNaturalSizeChange(mojo::SizePtr size) {
- DVLOG(2) << __FUNCTION__ << ": " << size->width << "," << size->height;
+ gfx::Size new_size = size.To<gfx::Size>();
+ DVLOG(2) << __FUNCTION__ << ": " << new_size.ToString();
DCHECK(task_runner_->BelongsToCurrentThread());
- client_->OnVideoNaturalSizeChange(size.To<gfx::Size>());
+
+ video_renderer_sink_->PaintFrameUsingOldRenderingPath(
+ video_overlay_factory_->CreateFrame(new_size));
+ client_->OnVideoNaturalSizeChange(new_size);
}
void MojoRendererImpl::OnVideoOpacityChange(bool opaque) {

Powered by Google App Engine
This is Rietveld 408576698