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

Unified Diff: chromecast/media/audio/cast_audio_manager.h

Issue 2879703003: [chromecast] Moves CastAudioOutputStream::Backend to CMA thread. (Closed)
Patch Set: addressed comments Created 3 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
« no previous file with comments | « chromecast/media/BUILD.gn ('k') | chromecast/media/audio/cast_audio_manager.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chromecast/media/audio/cast_audio_manager.h
diff --git a/chromecast/media/audio/cast_audio_manager.h b/chromecast/media/audio/cast_audio_manager.h
index f12264a046cea6fd1bbc4ecc0e00606c9c390c94..7c95557f1215cf4f3f00a70dc0026433eb982f8c 100644
--- a/chromecast/media/audio/cast_audio_manager.h
+++ b/chromecast/media/audio/cast_audio_manager.h
@@ -13,22 +13,19 @@ namespace chromecast {
namespace media {
class CastAudioMixer;
-class MediaPipelineBackend;
-class MediaPipelineBackendManager;
-struct MediaPipelineDeviceParams;
+class MediaPipelineBackendFactory;
class CastAudioManager : public ::media::AudioManagerBase {
public:
- CastAudioManager(std::unique_ptr<::media::AudioThread> audio_thread,
- ::media::AudioLogFactory* audio_log_factory,
- MediaPipelineBackendManager* backend_manager);
- CastAudioManager(std::unique_ptr<::media::AudioThread> audio_thread,
- ::media::AudioLogFactory* audio_log_factory,
- MediaPipelineBackendManager* backend_manager,
- CastAudioMixer* audio_mixer);
+ CastAudioManager(
+ std::unique_ptr<::media::AudioThread> audio_thread,
+ ::media::AudioLogFactory* audio_log_factory,
+ std::unique_ptr<MediaPipelineBackendFactory> backend_factory,
+ scoped_refptr<base::SingleThreadTaskRunner> backend_task_runner,
+ bool use_mixer);
~CastAudioManager() override;
- // AudioManager implementation.
+ // AudioManagerBase implementation.
bool HasAudioOutputDevices() override;
bool HasAudioInputDevices() override;
void ShowAudioInputSettings() override;
@@ -37,15 +34,16 @@ class CastAudioManager : public ::media::AudioManagerBase {
::media::AudioParameters GetInputStreamParameters(
const std::string& device_id) override;
const char* GetName() override;
-
- // AudioManagerBase implementation
void ReleaseOutputStream(::media::AudioOutputStream* stream) override;
- // This must be called on audio thread.
- virtual std::unique_ptr<MediaPipelineBackend> CreateMediaPipelineBackend(
- const MediaPipelineDeviceParams& params);
+ MediaPipelineBackendFactory* backend_factory() {
+ return backend_factory_.get();
+ }
+ base::SingleThreadTaskRunner* backend_task_runner() {
+ return backend_task_runner_.get();
+ }
- private:
+ protected:
// AudioManagerBase implementation.
::media::AudioOutputStream* MakeLinearOutputStream(
const ::media::AudioParameters& params,
@@ -67,13 +65,16 @@ class CastAudioManager : public ::media::AudioManagerBase {
const ::media::AudioParameters& input_params) override;
// Generates a CastAudioOutputStream for |mixer_|.
- ::media::AudioOutputStream* MakeMixerOutputStream(
+ virtual ::media::AudioOutputStream* MakeMixerOutputStream(
const ::media::AudioParameters& params);
- MediaPipelineBackendManager* const backend_manager_;
+ private:
+ friend class CastAudioMixer;
+
+ std::unique_ptr<MediaPipelineBackendFactory> backend_factory_;
+ scoped_refptr<base::SingleThreadTaskRunner> backend_task_runner_;
std::unique_ptr<::media::AudioOutputStream> mixer_output_stream_;
std::unique_ptr<CastAudioMixer> mixer_;
-
DISALLOW_COPY_AND_ASSIGN(CastAudioManager);
};
« no previous file with comments | « chromecast/media/BUILD.gn ('k') | chromecast/media/audio/cast_audio_manager.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698