Index: content/renderer/media/webaudio_media_stream_source.cc |
diff --git a/content/renderer/media/webaudio_media_stream_source.cc b/content/renderer/media/webaudio_media_stream_source.cc |
deleted file mode 100644 |
index 7f4c75d37ff6f15c6fc451b96e8345aa83aad7b6..0000000000000000000000000000000000000000 |
--- a/content/renderer/media/webaudio_media_stream_source.cc |
+++ /dev/null |
@@ -1,111 +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 "content/renderer/media/webaudio_media_stream_source.h" |
- |
-#include "base/bind.h" |
-#include "base/bind_helpers.h" |
-#include "base/logging.h" |
- |
-namespace content { |
- |
-WebAudioMediaStreamSource::WebAudioMediaStreamSource( |
- blink::WebMediaStreamSource* blink_source) |
- : MediaStreamAudioSource(false /* is_remote */), |
- is_registered_consumer_(false), |
- fifo_(base::Bind(&WebAudioMediaStreamSource::DeliverRebufferedAudio, |
- base::Unretained(this))), |
- blink_source_(*blink_source) { |
- DVLOG(1) << "WebAudioMediaStreamSource::WebAudioMediaStreamSource()"; |
-} |
- |
-WebAudioMediaStreamSource::~WebAudioMediaStreamSource() { |
- DVLOG(1) << "WebAudioMediaStreamSource::~WebAudioMediaStreamSource()"; |
- EnsureSourceIsStopped(); |
-} |
- |
-void WebAudioMediaStreamSource::setFormat(size_t number_of_channels, |
- float sample_rate) { |
- DCHECK(thread_checker_.CalledOnValidThread()); |
- VLOG(1) << "WebAudio media stream source changed format to: channels=" |
- << number_of_channels << ", sample_rate=" << sample_rate; |
- |
- // If the channel count is greater than 8, use discrete layout. However, |
- // anything beyond 8 is ignored by some audio tracks/sinks. |
- media::ChannelLayout channel_layout = |
- number_of_channels > 8 ? media::CHANNEL_LAYOUT_DISCRETE |
- : media::GuessChannelLayout(number_of_channels); |
- |
- // Set the format used by this WebAudioMediaStreamSource. We are using 10ms |
- // data as a buffer size since that is the native buffer size of WebRtc packet |
- // running on. |
- // |
- // TODO(miu): Re-evaluate whether this is needed. For now (this refactoring), |
- // I did not want to change behavior. http://crbug.com/577874 |
- fifo_.Reset(sample_rate / 100); |
- media::AudioParameters params(media::AudioParameters::AUDIO_PCM_LOW_LATENCY, |
- channel_layout, sample_rate, 16, |
- fifo_.frames_per_buffer()); |
- // Take care of the discrete channel layout case. |
- params.set_channels_for_discrete(number_of_channels); |
- MediaStreamAudioSource::SetFormat(params); |
- |
- if (!wrapper_bus_ || wrapper_bus_->channels() != params.channels()) |
- wrapper_bus_ = media::AudioBus::CreateWrapper(params.channels()); |
-} |
- |
-bool WebAudioMediaStreamSource::EnsureSourceIsStarted() { |
- DCHECK(thread_checker_.CalledOnValidThread()); |
- if (is_registered_consumer_) |
- return true; |
- if (blink_source_.isNull() || !blink_source_.requiresAudioConsumer()) |
- return false; |
- VLOG(1) << "Starting WebAudio media stream source."; |
- blink_source_.addAudioConsumer(this); |
- is_registered_consumer_ = true; |
- return true; |
-} |
- |
-void WebAudioMediaStreamSource::EnsureSourceIsStopped() { |
- DCHECK(thread_checker_.CalledOnValidThread()); |
- if (!is_registered_consumer_) |
- return; |
- is_registered_consumer_ = false; |
- DCHECK(!blink_source_.isNull()); |
- blink_source_.removeAudioConsumer(this); |
- blink_source_.reset(); |
- VLOG(1) << "Stopped WebAudio media stream source. Final audio parameters={" |
- << GetAudioParameters().AsHumanReadableString() << "}."; |
-} |
- |
-void WebAudioMediaStreamSource::consumeAudio( |
- const blink::WebVector<const float*>& audio_data, |
- size_t number_of_frames) { |
- // TODO(miu): Plumbing is needed to determine the actual capture timestamp |
- // of the audio, instead of just snapshotting TimeTicks::Now(), for proper |
- // audio/video sync. http://crbug.com/335335 |
- current_reference_time_ = base::TimeTicks::Now(); |
- |
- wrapper_bus_->set_frames(number_of_frames); |
- DCHECK_EQ(wrapper_bus_->channels(), static_cast<int>(audio_data.size())); |
- for (size_t i = 0; i < audio_data.size(); ++i) |
- wrapper_bus_->SetChannelData(i, const_cast<float*>(audio_data[i])); |
- |
- // The following will result in zero, one, or multiple synchronous calls to |
- // DeliverRebufferedAudio(). |
- fifo_.Push(*wrapper_bus_); |
-} |
- |
-void WebAudioMediaStreamSource::DeliverRebufferedAudio( |
- const media::AudioBus& audio_bus, |
- int frame_delay) { |
- const base::TimeTicks reference_time = |
- current_reference_time_ + |
- base::TimeDelta::FromMicroseconds( |
- frame_delay * base::Time::kMicrosecondsPerSecond / |
- MediaStreamAudioSource::GetAudioParameters().sample_rate()); |
- MediaStreamAudioSource::DeliverDataToTracks(audio_bus, reference_time); |
-} |
- |
-} // namespace content |