Index: trunk/src/media/audio/android/audio_android_unittest.cc |
=================================================================== |
--- trunk/src/media/audio/android/audio_android_unittest.cc (revision 277811) |
+++ trunk/src/media/audio/android/audio_android_unittest.cc (working copy) |
@@ -148,9 +148,10 @@ |
// Gmock implementation of AudioInputStream::AudioInputCallback. |
class MockAudioInputCallback : public AudioInputStream::AudioInputCallback { |
public: |
- MOCK_METHOD4(OnData, |
+ MOCK_METHOD5(OnData, |
void(AudioInputStream* stream, |
- const AudioBus* src, |
+ const uint8* src, |
+ uint32 size, |
uint32 hardware_delay_bytes, |
double volume)); |
MOCK_METHOD1(OnError, void(AudioInputStream* stream)); |
@@ -263,19 +264,14 @@ |
// AudioInputStream::AudioInputCallback implementation. |
virtual void OnData(AudioInputStream* stream, |
- const AudioBus* src, |
+ const uint8* src, |
+ uint32 size, |
uint32 hardware_delay_bytes, |
double volume) OVERRIDE { |
- const int num_samples = src->frames() * src->channels(); |
- scoped_ptr<int16> interleaved(new int16[num_samples]); |
- const int bytes_per_sample = sizeof(*interleaved); |
- src->ToInterleaved(src->frames(), bytes_per_sample, interleaved.get()); |
- |
// Store data data in a temporary buffer to avoid making blocking |
// fwrite() calls in the audio callback. The complete buffer will be |
// written to file in the destructor. |
- const int size = bytes_per_sample * num_samples; |
- if (!buffer_->Append((const uint8*)interleaved.get(), size)) |
+ if (!buffer_->Append(src, size)) |
event_->Signal(); |
} |
@@ -311,19 +307,13 @@ |
// AudioInputStream::AudioInputCallback implementation |
virtual void OnData(AudioInputStream* stream, |
- const AudioBus* src, |
+ const uint8* src, |
+ uint32 size, |
uint32 hardware_delay_bytes, |
double volume) OVERRIDE { |
const base::TimeTicks now_time = base::TimeTicks::Now(); |
const int diff = (now_time - previous_time_).InMilliseconds(); |
- EXPECT_EQ(params_.bits_per_sample(), 16); |
- const int num_samples = src->frames() * src->channels(); |
- scoped_ptr<int16> interleaved(new int16[num_samples]); |
- const int bytes_per_sample = sizeof(*interleaved); |
- src->ToInterleaved(src->frames(), bytes_per_sample, interleaved.get()); |
- const int size = bytes_per_sample * num_samples; |
- |
base::AutoLock lock(lock_); |
if (diff > 1000) { |
started_ = true; |
@@ -344,7 +334,7 @@ |
// Append new data to the FIFO and extend the size if the max capacity |
// was exceeded. Flush the FIFO when extended just in case. |
- if (!fifo_->Append((const uint8*)interleaved.get(), size)) { |
+ if (!fifo_->Append(src, size)) { |
fifo_->set_forward_capacity(2 * fifo_->forward_capacity()); |
fifo_->Clear(); |
} |
@@ -650,10 +640,14 @@ |
int count = 0; |
MockAudioInputCallback sink; |
- EXPECT_CALL(sink, OnData(audio_input_stream_, NotNull(), _, _)) |
+ EXPECT_CALL(sink, |
+ OnData(audio_input_stream_, |
+ NotNull(), |
+ params. |
+ GetBytesPerBuffer(), _, _)) |
.Times(AtLeast(num_callbacks)) |
.WillRepeatedly( |
- CheckCountAndPostQuitTask(&count, num_callbacks, loop())); |
+ CheckCountAndPostQuitTask(&count, num_callbacks, loop())); |
EXPECT_CALL(sink, OnError(audio_input_stream_)).Times(0); |
OpenAndStartAudioInputStreamOnAudioThread(&sink); |