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

Unified Diff: chromecast/browser/media/cast_mojo_media_client.cc

Issue 2281843003: Move ownership of audio/video sinks to MojoRendererService. (Closed)
Patch Set: rebase Created 4 years, 4 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
« no previous file with comments | « chromecast/browser/media/cast_mojo_media_client.h ('k') | media/mojo/clients/mojo_renderer_unittest.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chromecast/browser/media/cast_mojo_media_client.cc
diff --git a/chromecast/browser/media/cast_mojo_media_client.cc b/chromecast/browser/media/cast_mojo_media_client.cc
index b530524cb91efd0b617aef94bd7cc82ad4ec71b5..24d0ffbe7c8def10723e1224e486f0f4afd07e1f 100644
--- a/chromecast/browser/media/cast_mojo_media_client.cc
+++ b/chromecast/browser/media/cast_mojo_media_client.cc
@@ -6,10 +6,38 @@
#include "base/memory/ptr_util.h"
#include "chromecast/browser/media/cast_renderer.h"
+#include "media/base/audio_renderer_sink.h"
#include "media/base/cdm_factory.h"
#include "media/base/media_log.h"
#include "media/base/renderer_factory.h"
+namespace {
+class CastRendererFactory : public media::RendererFactory {
+ public:
+ CastRendererFactory(
+ const chromecast::media::CreateMediaPipelineBackendCB& create_backend_cb,
+ const scoped_refptr<media::MediaLog>& media_log)
+ : create_backend_cb_(create_backend_cb), media_log_(media_log) {}
+ ~CastRendererFactory() final {}
+
+ std::unique_ptr<media::Renderer> CreateRenderer(
+ const scoped_refptr<base::SingleThreadTaskRunner>& media_task_runner,
+ const scoped_refptr<base::TaskRunner>& worker_task_runner,
+ media::AudioRendererSink* audio_renderer_sink,
+ media::VideoRendererSink* video_renderer_sink,
+ const media::RequestSurfaceCB& request_surface_cb) final {
+ DCHECK(!audio_renderer_sink && !video_renderer_sink);
+ return base::MakeUnique<chromecast::media::CastRenderer>(
+ create_backend_cb_, media_task_runner, "");
+ }
+
+ private:
+ const chromecast::media::CreateMediaPipelineBackendCB create_backend_cb_;
+ scoped_refptr<media::MediaLog> media_log_;
+ DISALLOW_COPY_AND_ASSIGN(CastRendererFactory);
+};
+} // namespace
+
namespace chromecast {
namespace media {
@@ -21,12 +49,16 @@ CastMojoMediaClient::CastMojoMediaClient(
CastMojoMediaClient::~CastMojoMediaClient() {}
-std::unique_ptr<::media::Renderer> CastMojoMediaClient::CreateRenderer(
- scoped_refptr<base::SingleThreadTaskRunner> media_task_runner,
- scoped_refptr<::media::MediaLog> media_log,
+scoped_refptr<::media::AudioRendererSink>
+CastMojoMediaClient::CreateAudioRendererSink(
const std::string& audio_device_id) {
- return base::MakeUnique<chromecast::media::CastRenderer>(
- create_backend_cb_, std::move(media_task_runner), audio_device_id);
+ return nullptr;
jrummell 2016/08/30 19:59:59 Do you need this? It looks the same as the base cl
alokp 2016/08/30 20:08:52 I plan to. I need to capture the audio_device_id h
+}
+
+std::unique_ptr<::media::RendererFactory>
+CastMojoMediaClient::CreateRendererFactory(
+ const scoped_refptr<::media::MediaLog>& media_log) {
+ return base::MakeUnique<CastRendererFactory>(create_backend_cb_, media_log);
}
std::unique_ptr<::media::CdmFactory> CastMojoMediaClient::CreateCdmFactory(
« no previous file with comments | « chromecast/browser/media/cast_mojo_media_client.h ('k') | media/mojo/clients/mojo_renderer_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698