| Index: media/audio/audio_manager_base.h
|
| diff --git a/media/audio/audio_manager_base.h b/media/audio/audio_manager_base.h
|
| index b3100cf6c507bb6cb6af2086806356cc3c6de15a..7c1850187f1ee85a9bd26e8a03211ad44ffab5e6 100644
|
| --- a/media/audio/audio_manager_base.h
|
| +++ b/media/audio/audio_manager_base.h
|
| @@ -5,12 +5,14 @@
|
| #ifndef MEDIA_AUDIO_AUDIO_MANAGER_BASE_H_
|
| #define MEDIA_AUDIO_AUDIO_MANAGER_BASE_H_
|
|
|
| +#include <map>
|
| #include <memory>
|
| #include <string>
|
| #include <unordered_set>
|
| #include <utility>
|
|
|
| #include "base/compiler_specific.h"
|
| +#include "base/files/file_path.h"
|
| #include "base/macros.h"
|
| #include "base/memory/scoped_vector.h"
|
| #include "base/observer_list.h"
|
| @@ -26,7 +28,9 @@
|
|
|
| namespace media {
|
|
|
| +class AudioDebugRecordingHelper;
|
| class AudioOutputDispatcher;
|
| +class AudioOutputResampler;
|
|
|
| // AudioManagerBase provides AudioManager functions common for all platforms.
|
| class MEDIA_EXPORT AudioManagerBase : public AudioManager {
|
| @@ -67,6 +71,9 @@ class MEDIA_EXPORT AudioManagerBase : public AudioManager {
|
| const std::string& input_device_id) override;
|
| std::unique_ptr<AudioLog> CreateAudioLog(
|
| AudioLogFactory::AudioComponent component) override;
|
| + void EnableOutputDebugRecording(
|
| + const base::FilePath& base_file_name) override;
|
| + void DisableOutputDebugRecording() override;
|
|
|
| void SetMaxStreamCountForTesting(int max_input, int max_output) final;
|
|
|
| @@ -111,7 +118,8 @@ class MEDIA_EXPORT AudioManagerBase : public AudioManager {
|
| AudioManagerBase(
|
| scoped_refptr<base::SingleThreadTaskRunner> task_runner,
|
| scoped_refptr<base::SingleThreadTaskRunner> worker_task_runner,
|
| - AudioLogFactory* audio_log_factory);
|
| + AudioLogFactory* audio_log_factory,
|
| + CreateAudioFileWriterCallback create_audio_file_writer_callback);
|
|
|
| // Releases all the audio output dispatchers.
|
| // All audio streams should be closed before Shutdown() is called.
|
| @@ -159,6 +167,9 @@ class MEDIA_EXPORT AudioManagerBase : public AudioManager {
|
|
|
| class CompareByParams;
|
|
|
| + using DebugRecordingHelperMap =
|
| + std::map<int, std::unique_ptr<AudioDebugRecordingHelper>>;
|
| +
|
| // These functions assign group ids to devices based on their device ids.
|
| // The default implementation is an attempt to do this based on
|
| // GetAssociatedOutputDeviceID. Must be called on the audio worker thread
|
| @@ -166,6 +177,12 @@ class MEDIA_EXPORT AudioManagerBase : public AudioManager {
|
| std::string GetGroupIDOutput(const std::string& output_device_id);
|
| std::string GetGroupIDInput(const std::string& input_device_id);
|
|
|
| + // Handles debug recording. Passed to AudioOutputResampler as callbacks. See
|
| + // description of callback definitions in AudioOutputResampler.
|
| + void RegisterDebugRecordingSource(int id, const AudioParameters& params);
|
| + void UnregisterDebugRecordingSource(int id);
|
| + void OnDebugRecordingData(int id, AudioBus* data);
|
| +
|
| // Max number of open output streams, modified by
|
| // SetMaxOutputStreamsAllowed().
|
| int max_num_output_streams_;
|
| @@ -189,6 +206,16 @@ class MEDIA_EXPORT AudioManagerBase : public AudioManager {
|
| // Proxy for creating AudioLog objects.
|
| AudioLogFactory* const audio_log_factory_;
|
|
|
| + // Callback for creating AudioFileWriter objects.
|
| + CreateAudioFileWriterCallback create_audio_file_writer_callback_;
|
| +
|
| + // The base file name for debug recording files. If this is non-empty, debug
|
| + // recording is enabled.
|
| + base::FilePath debug_recording_base_file_name_;
|
| +
|
| + // DebugRecordingHelpers, one per stream.
|
| + DebugRecordingHelperMap debug_recording_helpers_;
|
| +
|
| DISALLOW_COPY_AND_ASSIGN(AudioManagerBase);
|
| };
|
|
|
|
|