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

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

Issue 1697233002: Reland of land "media: Refactor MojoMediaClient" with fix. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 10 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 | « media/mojo/services/default_mojo_media_client.h ('k') | media/mojo/services/main.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: media/mojo/services/default_mojo_media_client.cc
diff --git a/media/mojo/services/default_mojo_media_client.cc b/media/mojo/services/default_mojo_media_client.cc
index 4facbd1d88aa055325a977682b496125bf269cc1..c602f643bd659e5fafb906e59dfd69d0004f27cd 100644
--- a/media/mojo/services/default_mojo_media_client.cc
+++ b/media/mojo/services/default_mojo_media_client.cc
@@ -2,13 +2,10 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-#include "media/mojo/services/mojo_media_client.h"
+#include "media/mojo/services/default_mojo_media_client.h"
-#include "base/macros.h"
-#include "base/memory/scoped_ptr.h"
#include "media/audio/audio_manager_base.h"
#include "media/audio/audio_output_stream_sink.h"
-#include "media/audio/fake_audio_log_factory.h"
#include "media/base/audio_hardware_config.h"
#include "media/base/media.h"
#include "media/base/null_video_sink.h"
@@ -18,72 +15,55 @@
namespace media {
-namespace {
-class DefaultMojoMediaClient : public MojoMediaClient {
- public:
- DefaultMojoMediaClient() {}
+DefaultMojoMediaClient::DefaultMojoMediaClient() {}
- // MojoMediaClient overrides.
- void Initialize() override {
- InitializeMediaLibrary();
- // TODO(dalecurtis): We should find a single owner per process for the audio
- // manager or make it a lazy instance. It's not safe to call Get()/Create()
- // across multiple threads...
- //
- // TODO(dalecurtis): Eventually we'll want something other than a fake audio
- // log factory here too. We should probably at least DVLOG() such info.
- AudioManager* audio_manager = AudioManager::Get();
- if (!audio_manager)
- audio_manager = media::AudioManager::Create(&fake_audio_log_factory_);
+DefaultMojoMediaClient::~DefaultMojoMediaClient() {}
- audio_hardware_config_.reset(new AudioHardwareConfig(
- audio_manager->GetInputStreamParameters(
- AudioManagerBase::kDefaultDeviceId),
- audio_manager->GetDefaultOutputStreamParameters()));
+void DefaultMojoMediaClient::Initialize() {
+ InitializeMediaLibrary();
+ // TODO(dalecurtis): We should find a single owner per process for the audio
+ // manager or make it a lazy instance. It's not safe to call Get()/Create()
+ // across multiple threads...
+ //
+ // TODO(dalecurtis): Eventually we'll want something other than a fake audio
+ // log factory here too. We should probably at least DVLOG() such info.
+ AudioManager* audio_manager = AudioManager::Get();
+ if (!audio_manager)
+ audio_manager = media::AudioManager::Create(&fake_audio_log_factory_);
+
+ audio_hardware_config_.reset(new AudioHardwareConfig(
+ audio_manager->GetInputStreamParameters(
+ AudioManagerBase::kDefaultDeviceId),
+ audio_manager->GetDefaultOutputStreamParameters()));
+}
+
+scoped_ptr<RendererFactory> DefaultMojoMediaClient::CreateRendererFactory(
+ const scoped_refptr<MediaLog>& media_log) {
+ return make_scoped_ptr(
+ new DefaultRendererFactory(media_log, nullptr, *audio_hardware_config_));
+}
+
+AudioRendererSink* DefaultMojoMediaClient::CreateAudioRendererSink() {
+ if (!audio_renderer_sink_)
+ audio_renderer_sink_ = new AudioOutputStreamSink();
+
+ return audio_renderer_sink_.get();
+}
+
+VideoRendererSink* DefaultMojoMediaClient::CreateVideoRendererSink(
+ const scoped_refptr<base::SingleThreadTaskRunner>& task_runner) {
+ if (!video_renderer_sink_) {
+ video_renderer_sink_ = make_scoped_ptr(
+ new NullVideoSink(false, base::TimeDelta::FromSecondsD(1.0 / 60),
+ NullVideoSink::NewFrameCB(), task_runner));
}
- scoped_ptr<RendererFactory> CreateRendererFactory(
- const scoped_refptr<MediaLog>& media_log) override {
- return make_scoped_ptr(new DefaultRendererFactory(media_log, nullptr,
- *audio_hardware_config_));
- }
+ return video_renderer_sink_.get();
+}
- AudioRendererSink* CreateAudioRendererSink() override {
- if (!audio_renderer_sink_)
- audio_renderer_sink_ = new AudioOutputStreamSink();
-
- return audio_renderer_sink_.get();
- }
-
- VideoRendererSink* CreateVideoRendererSink(
- const scoped_refptr<base::SingleThreadTaskRunner>& task_runner) override {
- if (!video_renderer_sink_) {
- video_renderer_sink_ = make_scoped_ptr(
- new NullVideoSink(false, base::TimeDelta::FromSecondsD(1.0 / 60),
- NullVideoSink::NewFrameCB(), task_runner));
- }
-
- return video_renderer_sink_.get();
- }
-
- scoped_ptr<CdmFactory> CreateCdmFactory(
- mojo::shell::mojom::InterfaceProvider* /* service_provider */) override {
- return make_scoped_ptr(new DefaultCdmFactory());
- }
-
- private:
- FakeAudioLogFactory fake_audio_log_factory_;
- scoped_ptr<AudioHardwareConfig> audio_hardware_config_;
- scoped_refptr<AudioRendererSink> audio_renderer_sink_;
- scoped_ptr<VideoRendererSink> video_renderer_sink_;
-
- DISALLOW_COPY_AND_ASSIGN(DefaultMojoMediaClient);
-};
-
-} // namespace (anonymous)
-
-scoped_ptr<MojoMediaClient> MojoMediaClient::Create() {
- return make_scoped_ptr(new DefaultMojoMediaClient());
+scoped_ptr<CdmFactory> DefaultMojoMediaClient::CreateCdmFactory(
+ mojo::shell::mojom::InterfaceProvider* /* service_provider */) {
+ return make_scoped_ptr(new DefaultCdmFactory());
}
} // namespace media
« no previous file with comments | « media/mojo/services/default_mojo_media_client.h ('k') | media/mojo/services/main.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698