Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(267)

Unified Diff: media/audio/pulse/pulse_input.cc

Issue 314713002: Modifies AudioInputCallback::OnData and use media::AudioBus instead of plain byte vector (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Now uses AudioBus::WrapMemory instead of From/ToInterleaved Created 6 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: media/audio/pulse/pulse_input.cc
diff --git a/media/audio/pulse/pulse_input.cc b/media/audio/pulse/pulse_input.cc
index 9d31cddd735ff291713ae24c5e6e6f410008df8d..6ab99f7b3e55b40b0562dddb9c6654240d16948e 100644
--- a/media/audio/pulse/pulse_input.cc
+++ b/media/audio/pulse/pulse_input.cc
@@ -32,11 +32,15 @@ PulseAudioInputStream::PulseAudioInputStream(AudioManagerPulse* audio_manager,
pa_context_(context),
handle_(NULL),
context_state_changed_(false) {
+ DVLOG(1) << __FUNCTION__;
DCHECK(mainloop);
DCHECK(context);
+ CHECK(params_.IsValid());
+ audio_bus_ = AudioBus::Create(params_);
}
PulseAudioInputStream::~PulseAudioInputStream() {
+ DVLOG(1) << __FUNCTION__;
// All internal structures should already have been freed in Close(),
// which calls AudioManagerPulse::Release which deletes this object.
DCHECK(!handle_);
@@ -52,6 +56,7 @@ bool PulseAudioInputStream::Open() {
DCHECK(handle_);
+ DVLOG(1) << "frames_per_buffer: " << params_.frames_per_buffer();
buffer_.reset(new media::SeekableBuffer(0, 2 * params_.GetBytesPerBuffer()));
audio_data_buffer_.reset(new uint8[params_.GetBytesPerBuffer()]);
return true;
@@ -272,8 +277,11 @@ void PulseAudioInputStream::ReadData() {
int packet_size = params_.GetBytesPerBuffer();
while (buffer_->forward_bytes() >= packet_size) {
buffer_->Read(audio_data_buffer_.get(), packet_size);
- callback_->OnData(this, audio_data_buffer_.get(), packet_size,
- hardware_delay, normalized_volume);
+ audio_bus_->FromInterleaved(audio_data_buffer_.get(),
+ audio_bus_->frames(),
+ params_.bits_per_sample() / 8);
+ callback_->OnData(
+ this, audio_bus_.get(), hardware_delay, normalized_volume);
if (buffer_->forward_bytes() < packet_size)
break;

Powered by Google App Engine
This is Rietveld 408576698