| Index: media/audio/audio_output_controller.cc
|
| diff --git a/media/audio/audio_output_controller.cc b/media/audio/audio_output_controller.cc
|
| index 4ba0f3e33a258f633768c3f9c6ad2696890be47e..033d4c579b1109e1a49af89f0713e1497c63c2ca 100644
|
| --- a/media/audio/audio_output_controller.cc
|
| +++ b/media/audio/audio_output_controller.cc
|
| @@ -6,23 +6,15 @@
|
|
|
| #include "base/message_loop.h"
|
|
|
| -// The following parameters limit the request buffer and packet size from the
|
| -// renderer to avoid renderer from requesting too much memory.
|
| -static const uint32 kMegabytes = 1024 * 1024;
|
| -static const uint32 kMaxHardwareBufferSize = 2 * kMegabytes;
|
| // Signal a pause in low-latency mode.
|
| static const int kPauseMark = -1;
|
|
|
| namespace {
|
| // Return true if the parameters for creating an audio stream is valid.
|
| // Return false otherwise.
|
| -static bool CheckParameters(AudioParameters params,
|
| - uint32 hardware_buffer_size) {
|
| +static bool CheckParameters(AudioParameters params) {
|
| if (!params.IsValid())
|
| return false;
|
| - if (hardware_buffer_size <= 0 ||
|
| - hardware_buffer_size > kMaxHardwareBufferSize)
|
| - return false;
|
| return true;
|
| }
|
|
|
| @@ -51,10 +43,9 @@ AudioOutputController::~AudioOutputController() {
|
| scoped_refptr<AudioOutputController> AudioOutputController::Create(
|
| EventHandler* event_handler,
|
| AudioParameters params,
|
| - uint32 hardware_buffer_size,
|
| uint32 buffer_capacity) {
|
|
|
| - if (!CheckParameters(params, hardware_buffer_size))
|
| + if (!CheckParameters(params))
|
| return NULL;
|
|
|
| // Starts the audio controller thread.
|
| @@ -66,7 +57,7 @@ scoped_refptr<AudioOutputController> AudioOutputController::Create(
|
| controller->message_loop_->PostTask(
|
| FROM_HERE,
|
| NewRunnableMethod(controller.get(), &AudioOutputController::DoCreate,
|
| - params, hardware_buffer_size));
|
| + params));
|
| return controller;
|
| }
|
|
|
| @@ -74,12 +65,11 @@ scoped_refptr<AudioOutputController> AudioOutputController::Create(
|
| scoped_refptr<AudioOutputController> AudioOutputController::CreateLowLatency(
|
| EventHandler* event_handler,
|
| AudioParameters params,
|
| - uint32 hardware_buffer_size,
|
| SyncReader* sync_reader) {
|
|
|
| DCHECK(sync_reader);
|
|
|
| - if (!CheckParameters(params, hardware_buffer_size))
|
| + if (!CheckParameters(params))
|
| return NULL;
|
|
|
| // Starts the audio controller thread.
|
| @@ -91,7 +81,7 @@ scoped_refptr<AudioOutputController> AudioOutputController::CreateLowLatency(
|
| controller->message_loop_->PostTask(
|
| FROM_HERE,
|
| NewRunnableMethod(controller.get(), &AudioOutputController::DoCreate,
|
| - params, hardware_buffer_size));
|
| + params));
|
| return controller;
|
| }
|
|
|
| @@ -144,8 +134,7 @@ void AudioOutputController::EnqueueData(const uint8* data, uint32 size) {
|
| }
|
| }
|
|
|
| -void AudioOutputController::DoCreate(AudioParameters params,
|
| - uint32 hardware_buffer_size) {
|
| +void AudioOutputController::DoCreate(AudioParameters params) {
|
| DCHECK_EQ(message_loop_, MessageLoop::current());
|
|
|
| // Close() can be called before DoCreate() is executed.
|
| @@ -160,7 +149,7 @@ void AudioOutputController::DoCreate(AudioParameters params,
|
| return;
|
| }
|
|
|
| - if (!stream_->Open(hardware_buffer_size)) {
|
| + if (!stream_->Open()) {
|
| stream_->Close();
|
| stream_ = NULL;
|
|
|
| @@ -168,6 +157,7 @@ void AudioOutputController::DoCreate(AudioParameters params,
|
| handler_->OnError(this, 0);
|
| return;
|
| }
|
| +
|
| // We have successfully opened the stream. Set the initial volume.
|
| stream_->SetVolume(volume_);
|
|
|
| @@ -246,6 +236,10 @@ void AudioOutputController::DoClose(Task* closed_task) {
|
| stream_ = NULL;
|
| }
|
|
|
| + if (LowLatencyMode()) {
|
| + sync_reader_->Close();
|
| + }
|
| +
|
| state_ = kClosed;
|
| }
|
|
|
| @@ -299,15 +293,6 @@ uint32 AudioOutputController::OnMoreData(
|
| return size;
|
| }
|
|
|
| -void AudioOutputController::OnClose(AudioOutputStream* stream) {
|
| - DCHECK_EQ(message_loop_, MessageLoop::current());
|
| -
|
| - // Push source doesn't need to know the stream so just pass in NULL.
|
| - if (LowLatencyMode()) {
|
| - sync_reader_->Close();
|
| - }
|
| -}
|
| -
|
| void AudioOutputController::OnError(AudioOutputStream* stream, int code) {
|
| // Handle error on the audio controller thread.
|
| message_loop_->PostTask(
|
|
|