Index: media/filters/reference_audio_renderer.cc |
diff --git a/media/filters/reference_audio_renderer.cc b/media/filters/reference_audio_renderer.cc |
deleted file mode 100644 |
index 558fcda7bb470b8452b7488a531c1bb534e023a7..0000000000000000000000000000000000000000 |
--- a/media/filters/reference_audio_renderer.cc |
+++ /dev/null |
@@ -1,110 +0,0 @@ |
-// Copyright (c) 2012 The Chromium Authors. All rights reserved. |
-// Use of this source code is governed by a BSD-style license that can be |
-// found in the LICENSE file. |
- |
-#include "media/filters/reference_audio_renderer.h" |
- |
-#include <math.h> |
- |
-#include "base/bind.h" |
-#include "base/synchronization/waitable_event.h" |
- |
-namespace media { |
- |
-ReferenceAudioRenderer::ReferenceAudioRenderer(AudioManager* audio_manager) |
- : AudioRendererBase(), |
- audio_manager_(audio_manager), |
- bytes_per_second_(0), |
- has_buffered_data_(true), |
- buffer_capacity_(0) { |
-} |
- |
-ReferenceAudioRenderer::~ReferenceAudioRenderer() { |
- // Close down the audio device. |
- if (controller_) { |
- base::WaitableEvent closed_event(true, false); |
- controller_->Close(base::Bind(&base::WaitableEvent::Signal, |
- base::Unretained(&closed_event))); |
- closed_event.Wait(); |
- } |
-} |
- |
-void ReferenceAudioRenderer::SetPlaybackRate(float rate) { |
- // TODO(fbarchard): limit rate to reasonable values |
- AudioRendererBase::SetPlaybackRate(rate); |
- |
- if (controller_ && rate > 0.0f) |
- controller_->Play(); |
-} |
- |
-void ReferenceAudioRenderer::SetVolume(float volume) { |
- if (controller_) |
- controller_->SetVolume(volume); |
-} |
- |
-void ReferenceAudioRenderer::OnCreated(AudioOutputController* controller) { |
- NOTIMPLEMENTED(); |
-} |
- |
-void ReferenceAudioRenderer::OnPlaying(AudioOutputController* controller) { |
- NOTIMPLEMENTED(); |
-} |
- |
-void ReferenceAudioRenderer::OnPaused(AudioOutputController* controller) { |
- NOTIMPLEMENTED(); |
-} |
- |
-void ReferenceAudioRenderer::OnError(AudioOutputController* controller, |
- int error_code) { |
- NOTIMPLEMENTED(); |
-} |
- |
-void ReferenceAudioRenderer::OnMoreData(AudioOutputController* controller, |
- AudioBuffersState buffers_state) { |
- // TODO(fbarchard): Waveout_output_win.h should handle zero length buffers |
- // without clicking. |
- uint32 pending_bytes = static_cast<uint32>(ceil(buffers_state.total_bytes() * |
- GetPlaybackRate())); |
- base::TimeDelta delay = base::TimeDelta::FromMicroseconds( |
- base::Time::kMicrosecondsPerSecond * pending_bytes / |
- bytes_per_second_); |
- has_buffered_data_ = buffers_state.pending_bytes != 0; |
- uint32 read = FillBuffer(buffer_.get(), buffer_capacity_, delay); |
- controller->EnqueueData(buffer_.get(), read); |
-} |
- |
-void ReferenceAudioRenderer::OnRenderEndOfStream() { |
- // We cannot signal end of stream as long as we have buffered data. |
- // In such case eventually host would playback all the data, and OnMoreData() |
- // would be called with buffers_state.pending_bytes == 0. At that moment |
- // we'll call SignalEndOfStream(); |
- if (!has_buffered_data_) |
- SignalEndOfStream(); |
-} |
- |
-bool ReferenceAudioRenderer::OnInitialize(int bits_per_channel, |
- ChannelLayout channel_layout, |
- int sample_rate) { |
- int samples_per_packet = sample_rate / 10; |
- int hardware_buffer_size = samples_per_packet * |
- ChannelLayoutToChannelCount(channel_layout) * bits_per_channel / 8; |
- |
- // Allocate audio buffer based on hardware buffer size. |
- buffer_capacity_ = 3 * hardware_buffer_size; |
- buffer_.reset(new uint8[buffer_capacity_]); |
- |
- AudioParameters params(AudioParameters::AUDIO_PCM_LINEAR, channel_layout, |
- sample_rate, bits_per_channel, samples_per_packet); |
- bytes_per_second_ = params.GetBytesPerSecond(); |
- |
- controller_ = AudioOutputController::Create(audio_manager_, this, params, |
- buffer_capacity_); |
- return controller_ != NULL; |
-} |
- |
-void ReferenceAudioRenderer::OnStop() { |
- if (controller_) |
- controller_->Pause(); |
-} |
- |
-} // namespace media |