| Index: media/audio/audio_input_controller.cc
|
| diff --git a/media/audio/audio_input_controller.cc b/media/audio/audio_input_controller.cc
|
| index 7eef001eed1dcd60fab0f014aa2c411659f1b5e2..fca8d735c32798d6a6e74f1c22d1b052e365fa63 100644
|
| --- a/media/audio/audio_input_controller.cc
|
| +++ b/media/audio/audio_input_controller.cc
|
| @@ -11,6 +11,7 @@
|
| #include <utility>
|
|
|
| #include "base/bind.h"
|
| +#include "base/memory/ptr_util.h"
|
| #include "base/metrics/histogram_macros.h"
|
| #include "base/single_thread_task_runner.h"
|
| #include "base/strings/string_number_conversions.h"
|
| @@ -19,6 +20,7 @@
|
| #include "base/threading/thread_task_runner_handle.h"
|
| #include "base/time/time.h"
|
| #include "base/trace_event/trace_event.h"
|
| +#include "media/base/media_switches.h"
|
| #include "media/base/user_input_monitor.h"
|
|
|
| namespace media {
|
| @@ -142,8 +144,8 @@ class AudioInputController::AudioCallback
|
| // that get returned to us somehow.
|
| // We should also avoid calling PostTask here since the implementation
|
| // of the debug writer will basically do a PostTask straight away anyway.
|
| - // Might require some modifications to AudioFileWriter though since
|
| - // there are some threading concerns there and AudioFileWriter's
|
| + // Might require some modifications to AudioDebugFileWriter though since
|
| + // there are some threading concerns there and AudioDebugFileWriter's
|
| // lifetime guarantees need to be longer than that of associated active
|
| // audio streams.
|
| std::unique_ptr<AudioBus> source_copy =
|
| @@ -195,9 +197,10 @@ AudioInputController::AudioInputController(
|
| scoped_refptr<base::SingleThreadTaskRunner> task_runner,
|
| EventHandler* handler,
|
| SyncWriter* sync_writer,
|
| - std::unique_ptr<AudioFileWriter> debug_writer,
|
| UserInputMonitor* user_input_monitor,
|
| - StreamType type)
|
| + const AudioParameters& params,
|
| + StreamType type,
|
| + scoped_refptr<base::SingleThreadTaskRunner> file_task_runner)
|
| : creator_task_runner_(base::ThreadTaskRunnerHandle::Get()),
|
| task_runner_(std::move(task_runner)),
|
| handler_(handler),
|
| @@ -205,7 +208,11 @@ AudioInputController::AudioInputController(
|
| sync_writer_(sync_writer),
|
| type_(type),
|
| user_input_monitor_(user_input_monitor),
|
| - debug_writer_(std::move(debug_writer)),
|
| +#if BUILDFLAG(ENABLE_WEBRTC)
|
| + debug_writer_(
|
| + base::MakeUnique<AudioDebugFileWriter>(params,
|
| + std::move(file_task_runner))),
|
| +#endif
|
| weak_ptr_factory_(this) {
|
| DCHECK(creator_task_runner_.get());
|
| DCHECK(handler_);
|
| @@ -223,10 +230,10 @@ scoped_refptr<AudioInputController> AudioInputController::Create(
|
| EventHandler* event_handler,
|
| SyncWriter* sync_writer,
|
| UserInputMonitor* user_input_monitor,
|
| - std::unique_ptr<AudioFileWriter> debug_writer,
|
| const AudioParameters& params,
|
| const std::string& device_id,
|
| - bool enable_agc) {
|
| + bool enable_agc,
|
| + scoped_refptr<base::SingleThreadTaskRunner> file_task_runner) {
|
| DCHECK(audio_manager);
|
| DCHECK(sync_writer);
|
| DCHECK(event_handler);
|
| @@ -244,7 +251,8 @@ scoped_refptr<AudioInputController> AudioInputController::Create(
|
| // the audio-manager thread.
|
| scoped_refptr<AudioInputController> controller(new AudioInputController(
|
| audio_manager->GetTaskRunner(), event_handler, sync_writer,
|
| - std::move(debug_writer), user_input_monitor, ParamsToStreamType(params)));
|
| + user_input_monitor, params, ParamsToStreamType(params),
|
| + std::move(file_task_runner)));
|
|
|
| // Create and open a new audio input stream from the existing
|
| // audio-device thread. Use the provided audio-input device.
|
| @@ -264,8 +272,9 @@ scoped_refptr<AudioInputController> AudioInputController::CreateForStream(
|
| EventHandler* event_handler,
|
| AudioInputStream* stream,
|
| SyncWriter* sync_writer,
|
| - std::unique_ptr<AudioFileWriter> debug_writer,
|
| - UserInputMonitor* user_input_monitor) {
|
| + UserInputMonitor* user_input_monitor,
|
| + scoped_refptr<base::SingleThreadTaskRunner> file_task_runner,
|
| + const AudioParameters& params) {
|
| DCHECK(sync_writer);
|
| DCHECK(stream);
|
| DCHECK(event_handler);
|
| @@ -280,8 +289,8 @@ scoped_refptr<AudioInputController> AudioInputController::CreateForStream(
|
| // Create the AudioInputController object and ensure that it runs on
|
| // the audio-manager thread.
|
| scoped_refptr<AudioInputController> controller(new AudioInputController(
|
| - task_runner, event_handler, sync_writer, std::move(debug_writer),
|
| - user_input_monitor, VIRTUAL));
|
| + task_runner, event_handler, sync_writer, user_input_monitor, params,
|
| + VIRTUAL, std::move(file_task_runner)));
|
|
|
| if (!controller->task_runner_->PostTask(
|
| FROM_HERE, base::Bind(&AudioInputController::DoCreateForStream,
|
|
|