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

Unified Diff: media/audio/mac/audio_low_latency_input_mac_unittest.cc

Issue 344583002: Modifies AudioInputCallback::OnData and use media::AudioBus instead of plain byte vector (Relanding) (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Added extra non-pure OnData API 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
« no previous file with comments | « media/audio/mac/audio_low_latency_input_mac.cc ('k') | media/audio/pulse/pulse_input.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: media/audio/mac/audio_low_latency_input_mac_unittest.cc
diff --git a/media/audio/mac/audio_low_latency_input_mac_unittest.cc b/media/audio/mac/audio_low_latency_input_mac_unittest.cc
index fdd7c05e58ce8b3976e54a1024d26296d0c7c999..79721d4f37b67923e59cd6270d54712e8c85e716 100644
--- a/media/audio/mac/audio_low_latency_input_mac_unittest.cc
+++ b/media/audio/mac/audio_low_latency_input_mac_unittest.cc
@@ -31,9 +31,11 @@ ACTION_P4(CheckCountAndPostQuitTask, count, limit, loop, closure) {
class MockAudioInputCallback : public AudioInputStream::AudioInputCallback {
public:
- MOCK_METHOD5(OnData, void(AudioInputStream* stream,
- const uint8* src, uint32 size,
- uint32 hardware_delay_bytes, double volume));
+ MOCK_METHOD4(OnData,
+ void(AudioInputStream* stream,
+ const AudioBus* src,
+ uint32 hardware_delay_bytes,
+ double volume));
MOCK_METHOD1(OnError, void(AudioInputStream* stream));
};
@@ -74,12 +76,19 @@ class WriteToFileAudioSink : public AudioInputStream::AudioInputCallback {
// AudioInputStream::AudioInputCallback implementation.
virtual void OnData(AudioInputStream* stream,
- const uint8* src, uint32 size,
- uint32 hardware_delay_bytes, double volume) OVERRIDE {
+ 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)) {
bytes_to_write_ += size;
}
}
@@ -224,18 +233,13 @@ TEST_F(MacAudioInputTest, AUAudioInputStreamVerifyMonoRecording) {
AudioInputStream* ais = CreateAudioInputStream(CHANNEL_LAYOUT_MONO);
EXPECT_TRUE(ais->Open());
- int fs = static_cast<int>(AUAudioInputStream::HardwareSampleRate());
- int samples_per_packet = fs / 100;
- int bits_per_sample = 16;
- uint32 bytes_per_packet = samples_per_packet * (bits_per_sample / 8);
-
MockAudioInputCallback sink;
// We use 10ms packets and will run the test until ten packets are received.
// All should contain valid packets of the same size and a valid delay
// estimate.
base::RunLoop run_loop;
- EXPECT_CALL(sink, OnData(ais, NotNull(), bytes_per_packet, _, _))
+ EXPECT_CALL(sink, OnData(ais, NotNull(), _, _))
.Times(AtLeast(10))
.WillRepeatedly(CheckCountAndPostQuitTask(
&count, 10, &message_loop_, run_loop.QuitClosure()));
@@ -256,11 +260,6 @@ TEST_F(MacAudioInputTest, AUAudioInputStreamVerifyStereoRecording) {
AudioInputStream* ais = CreateAudioInputStream(CHANNEL_LAYOUT_STEREO);
EXPECT_TRUE(ais->Open());
- int fs = static_cast<int>(AUAudioInputStream::HardwareSampleRate());
- int samples_per_packet = fs / 100;
- int bits_per_sample = 16;
- uint32 bytes_per_packet = 2 * samples_per_packet * (bits_per_sample / 8);
-
MockAudioInputCallback sink;
// We use 10ms packets and will run the test until ten packets are received.
@@ -274,7 +273,7 @@ TEST_F(MacAudioInputTest, AUAudioInputStreamVerifyStereoRecording) {
// ensure that we can land the patch but will revisit this test again when
// more analysis of the delay estimates are done.
base::RunLoop run_loop;
- EXPECT_CALL(sink, OnData(ais, NotNull(), bytes_per_packet, _, _))
+ EXPECT_CALL(sink, OnData(ais, NotNull(), _, _))
.Times(AtLeast(10))
.WillRepeatedly(CheckCountAndPostQuitTask(
&count, 10, &message_loop_, run_loop.QuitClosure()));
« no previous file with comments | « media/audio/mac/audio_low_latency_input_mac.cc ('k') | media/audio/pulse/pulse_input.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698