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

Unified Diff: media/audio/android/audio_android_unittest.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: fixed SpeechRecognitionBrowserTest 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/android/audio_android_unittest.cc
diff --git a/media/audio/android/audio_android_unittest.cc b/media/audio/android/audio_android_unittest.cc
index 06df7f09aebff1710f76834257fb12b5e212263d..a356d9c25deb6f7e174a9177365c45a4c06c0f53 100644
--- a/media/audio/android/audio_android_unittest.cc
+++ b/media/audio/android/audio_android_unittest.cc
@@ -148,10 +148,9 @@ std::ostream& operator<<(std::ostream& os, const AudioParameters& params) {
// Gmock implementation of AudioInputStream::AudioInputCallback.
class MockAudioInputCallback : public AudioInputStream::AudioInputCallback {
public:
- MOCK_METHOD5(OnData,
+ MOCK_METHOD4(OnData,
void(AudioInputStream* stream,
- const uint8* src,
- uint32 size,
+ const AudioBus* src,
uint32 hardware_delay_bytes,
double volume));
MOCK_METHOD1(OnError, void(AudioInputStream* stream));
@@ -264,14 +263,19 @@ class FileAudioSink : public AudioInputStream::AudioInputCallback {
// AudioInputStream::AudioInputCallback implementation.
virtual void OnData(AudioInputStream* stream,
- const uint8* src,
- uint32 size,
+ const AudioBus* src,
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.
- if (!buffer_->Append(src, size))
+ const int size = bytes_per_sample * num_samples;
+ if (!buffer_->Append((const uint8*)interleaved.get(), size))
event_->Signal();
}
@@ -307,13 +311,19 @@ class FullDuplexAudioSinkSource
// AudioInputStream::AudioInputCallback implementation
virtual void OnData(AudioInputStream* stream,
- const uint8* src,
- uint32 size,
+ const AudioBus* src,
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;
@@ -334,7 +344,7 @@ class FullDuplexAudioSinkSource
// 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(src, size)) {
+ if (!fifo_->Append((const uint8*)interleaved.get(), size)) {
fifo_->set_forward_capacity(2 * fifo_->forward_capacity());
fifo_->Clear();
}
@@ -640,14 +650,10 @@ class AudioAndroidInputTest : public AudioAndroidOutputTest,
int count = 0;
MockAudioInputCallback sink;
- EXPECT_CALL(sink,
- OnData(audio_input_stream_,
- NotNull(),
- params.
- GetBytesPerBuffer(), _, _))
+ EXPECT_CALL(sink, OnData(audio_input_stream_, NotNull(), _, _))
.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);

Powered by Google App Engine
This is Rietveld 408576698