1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253 |
- // 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/courier_renderer_factory.h"
- #include <memory>
- #include "base/check.h"
- #include "build/build_config.h"
- #include "build/buildflag.h"
- #include "media/base/overlay_info.h"
- #include "media/media_buildflags.h"
- #if BUILDFLAG(ENABLE_MEDIA_REMOTING_RPC)
- #include "media/remoting/courier_renderer.h" // nogncheck
- #endif
- namespace media {
- namespace remoting {
- CourierRendererFactory::CourierRendererFactory(
- std::unique_ptr<RendererController> controller)
- : controller_(std::move(controller)) {}
- CourierRendererFactory::~CourierRendererFactory() = default;
- std::unique_ptr<Renderer> CourierRendererFactory::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,
- RequestOverlayInfoCB request_overlay_info_cb,
- const gfx::ColorSpace& target_color_space) {
- DCHECK(IsRemotingActive());
- #if BUILDFLAG(ENABLE_MEDIA_REMOTING_RPC)
- return std::make_unique<CourierRenderer>(
- media_task_runner, controller_->GetWeakPtr(), video_renderer_sink);
- #else
- return nullptr;
- #endif
- }
- bool CourierRendererFactory::IsRemotingActive() {
- #if BUILDFLAG(IS_ANDROID)
- return false; // Media Remoting is not supported on Android for now.
- #else
- return controller_ && controller_->remote_rendering_started();
- #endif
- }
- } // namespace remoting
- } // namespace media
|