Index: media/remoting/remoting_renderer_factory.cc |
diff --git a/media/remoting/remoting_renderer_factory.cc b/media/remoting/remoting_renderer_factory.cc |
new file mode 100644 |
index 0000000000000000000000000000000000000000..52a5db8859da5c087c7f4931e1f5b903e5afde1c |
--- /dev/null |
+++ b/media/remoting/remoting_renderer_factory.cc |
@@ -0,0 +1,38 @@ |
+// Copyright 2016 The Chromium Authors. All rights reserved. |
+// Use of this source code is governed by a BSD-style license that can be |
+// found in the LICENSE file. |
+ |
+#include "media/remoting/remoting_renderer_factory.h" |
+ |
+#include "base/logging.h" |
+ |
+namespace media { |
+ |
+RemotingRendererFactory::RemotingRendererFactory( |
+ std::unique_ptr<RendererFactory> default_renderer_factory, |
+ std::unique_ptr<RemotingController> remoting_controller) |
+ : default_renderer_factory_(std::move(default_renderer_factory)), |
+ remoting_controller_(std::move(remoting_controller)) {} |
+ |
+RemotingRendererFactory::~RemotingRendererFactory() {} |
+ |
+std::unique_ptr<Renderer> RemotingRendererFactory::CreateRenderer( |
+ const scoped_refptr<base::SingleThreadTaskRunner>& media_task_runner, |
+ const scoped_refptr<base::TaskRunner>& worker_task_runner, |
+ AudioRendererSink* audio_renderer_sink, |
+ VideoRendererSink* video_renderer_sink, |
+ const RequestSurfaceCB& request_surface_cb) { |
+ if (remoting_controller_ && remoting_controller_->is_remoting()) { |
+ VLOG(1) << "Create Remoting renderer."; |
+ // TODO(xjz): Merge this with Eric's implementation. |
+ NOTIMPLEMENTED(); |
+ return std::unique_ptr<Renderer>(); |
+ } else { |
+ VLOG(1) << "Create Local playback renderer."; |
+ return default_renderer_factory_->CreateRenderer( |
+ media_task_runner, worker_task_runner, audio_renderer_sink, |
+ video_renderer_sink, request_surface_cb); |
+ } |
+} |
+ |
+} // namespace media |