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

Unified Diff: trunk/src/media/audio/win/audio_low_latency_input_win_unittest.cc

Issue 335343004: Revert 277794 "Modifies AudioInputCallback::OnData and use media..." (Closed) Base URL: svn://svn.chromium.org/chrome/
Patch Set: 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: trunk/src/media/audio/win/audio_low_latency_input_win_unittest.cc
===================================================================
--- trunk/src/media/audio/win/audio_low_latency_input_win_unittest.cc (revision 277811)
+++ trunk/src/media/audio/win/audio_low_latency_input_win_unittest.cc (working copy)
@@ -38,23 +38,21 @@
class MockAudioInputCallback : public AudioInputStream::AudioInputCallback {
public:
- MOCK_METHOD4(OnData,
- void(AudioInputStream* stream,
- const AudioBus* src,
- uint32 hardware_delay_bytes,
- double volume));
+ MOCK_METHOD5(OnData, void(AudioInputStream* stream,
+ const uint8* src, uint32 size,
+ uint32 hardware_delay_bytes, double volume));
MOCK_METHOD1(OnError, void(AudioInputStream* stream));
};
class FakeAudioInputCallback : public AudioInputStream::AudioInputCallback {
public:
FakeAudioInputCallback()
- : error_(false),
- data_event_(false, false),
- num_received_audio_frames_(0) {}
+ : error_(false),
+ data_event_(false, false) {
+ }
+ const std::vector<uint8>& received_data() const { return received_data_; }
bool error() const { return error_; }
- int num_received_audio_frames() const { return num_received_audio_frames_; }
// Waits until OnData() is called on another thread.
void WaitForData() {
@@ -62,11 +60,9 @@
}
virtual void OnData(AudioInputStream* stream,
- const AudioBus* src,
- uint32 hardware_delay_bytes,
- double volume) OVERRIDE {
- EXPECT_NE(hardware_delay_bytes, 0u);
- num_received_audio_frames_ += src->frames();
+ const uint8* src, uint32 size,
+ uint32 hardware_delay_bytes, double volume) OVERRIDE {
+ received_data_.insert(received_data_.end(), src, src + size);
data_event_.Signal();
}
@@ -75,7 +71,7 @@
}
private:
- int num_received_audio_frames_;
+ std::vector<uint8> received_data_;
base::WaitableEvent data_event_;
bool error_;
@@ -90,9 +86,8 @@
// 2 bytes per sample, 2 channels, 10ms @ 48kHz, 10 seconds <=> 1920000 bytes.
static const size_t kMaxBufferSize = 2 * 2 * 480 * 100 * 10;
- explicit WriteToFileAudioSink(const char* file_name, int bits_per_sample)
- : bits_per_sample_(bits_per_sample),
- buffer_(0, kMaxBufferSize),
+ explicit WriteToFileAudioSink(const char* file_name)
+ : buffer_(0, kMaxBufferSize),
bytes_to_write_(0) {
base::FilePath file_path;
EXPECT_TRUE(PathService::Get(base::DIR_EXE, &file_path));
@@ -100,7 +95,6 @@
binary_file_ = base::OpenFile(file_path, "wb");
DLOG_IF(ERROR, !binary_file_) << "Failed to open binary PCM data file.";
VLOG(0) << ">> Output file: " << file_path.value() << " has been created.";
- VLOG(0) << "bits_per_sample_:" << bits_per_sample_;
}
virtual ~WriteToFileAudioSink() {
@@ -123,20 +117,14 @@
// AudioInputStream::AudioInputCallback implementation.
virtual void OnData(AudioInputStream* stream,
- const AudioBus* src,
+ const uint8* src,
+ uint32 size,
uint32 hardware_delay_bytes,
double volume) {
- EXPECT_EQ(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());
-
// 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)) {
bytes_to_write_ += size;
}
}
@@ -144,7 +132,6 @@
virtual void OnError(AudioInputStream* stream) {}
private:
- int bits_per_sample_;
media::SeekableBuffer buffer_;
FILE* binary_file_;
size_t bytes_to_write_;
@@ -389,7 +376,8 @@
// 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.
- EXPECT_CALL(sink, OnData(ais.get(), NotNull(), Gt(bytes_per_packet), _))
+ EXPECT_CALL(sink, OnData(
+ ais.get(), NotNull(), bytes_per_packet, Gt(bytes_per_packet), _))
.Times(AtLeast(10))
.WillRepeatedly(CheckCountAndPostQuitTask(&count, 10, &loop));
ais->Start(&sink);
@@ -409,7 +397,8 @@
bytes_per_packet = aisw.channels() * aisw.frames_per_buffer() *
(aisw.bits_per_sample() / 8);
- EXPECT_CALL(sink, OnData(ais.get(), NotNull(), Gt(bytes_per_packet), _))
+ EXPECT_CALL(sink, OnData(
+ ais.get(), NotNull(), bytes_per_packet, Gt(bytes_per_packet), _))
.Times(AtLeast(10))
.WillRepeatedly(CheckCountAndPostQuitTask(&count, 10, &loop));
ais->Start(&sink);
@@ -425,7 +414,8 @@
bytes_per_packet = aisw.channels() * aisw.frames_per_buffer() *
(aisw.bits_per_sample() / 8);
- EXPECT_CALL(sink, OnData(ais.get(), NotNull(), Gt(bytes_per_packet), _))
+ EXPECT_CALL(sink, OnData(
+ ais.get(), NotNull(), bytes_per_packet, Gt(bytes_per_packet), _))
.Times(AtLeast(10))
.WillRepeatedly(CheckCountAndPostQuitTask(&count, 10, &loop));
ais->Start(&sink);
@@ -434,7 +424,7 @@
ais.Close();
}
-// Test that we can capture a stream in loopback.
+// Test that we can capture loopback stream.
TEST(WinAudioInputTest, WASAPIAudioInputStreamLoopback) {
scoped_ptr<AudioManager> audio_manager(AudioManager::CreateForTesting());
if (!audio_manager->HasAudioOutputDevices() || !CoreAudioUtil::IsSupported())
@@ -459,7 +449,7 @@
sink.WaitForData();
stream.Close();
- EXPECT_GT(sink.num_received_audio_frames(), 0);
+ EXPECT_FALSE(sink.received_data().empty());
EXPECT_FALSE(sink.error());
}
@@ -484,7 +474,7 @@
EXPECT_TRUE(ais->Open());
VLOG(0) << ">> Sample rate: " << aisw.sample_rate() << " [Hz]";
- WriteToFileAudioSink file_sink(file_name, aisw.bits_per_sample());
+ WriteToFileAudioSink file_sink(file_name);
VLOG(0) << ">> Speak into the default microphone while recording.";
ais->Start(&file_sink);
base::PlatformThread::Sleep(TestTimeouts::action_timeout());
« no previous file with comments | « trunk/src/media/audio/win/audio_low_latency_input_win.cc ('k') | trunk/src/media/audio/win/wavein_input_win.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698