| Index: components/audio_modem/audio_recorder_unittest.cc
|
| diff --git a/components/audio_modem/audio_recorder_unittest.cc b/components/audio_modem/audio_recorder_unittest.cc
|
| index a05ad7f5f9087d37dafcc512a5a431faad62866b..a2efda62c170bdcd02d11721f127053f08c120a0 100644
|
| --- a/components/audio_modem/audio_recorder_unittest.cc
|
| +++ b/components/audio_modem/audio_recorder_unittest.cc
|
| @@ -20,6 +20,8 @@
|
|
|
| namespace {
|
|
|
| +const size_t kSomeNumber = 0x9999;
|
| +
|
| class TestAudioInputStream : public media::AudioInputStream {
|
| public:
|
| TestAudioInputStream(const media::AudioParameters& params,
|
| @@ -87,23 +89,24 @@ class AudioRecorderTest : public testing::Test {
|
| }
|
|
|
| void CreateSimpleRecorder() {
|
| - DeleteRecorder();
|
| - recorder_ = new AudioRecorderImpl();
|
| - recorder_->Initialize(
|
| - base::Bind(&AudioRecorderTest::DecodeSamples, base::Unretained(this)));
|
| + // If we have input devices, we'll create a recorder which uses a real
|
| + // input stream, if not, we'll create a recorder which uses our mock input
|
| + // stream.
|
| + if (media::AudioManager::Get()->HasAudioInputDevices()) {
|
| + DeleteRecorder();
|
| + recorder_ = new AudioRecorderImpl();
|
| + recorder_->Initialize(base::Bind(&AudioRecorderTest::DecodeSamples,
|
| + base::Unretained(this)));
|
| + } else {
|
| + CreateRecorder(kSomeNumber);
|
| + }
|
| }
|
|
|
| - void CreateRecorder(size_t channels,
|
| - size_t sample_rate,
|
| - size_t bits_per_sample,
|
| - size_t samples) {
|
| + void CreateRecorder(size_t samples) {
|
| DeleteRecorder();
|
| - params_.Reset(media::AudioParameters::AUDIO_PCM_LOW_LATENCY,
|
| - kDefaultChannelLayout,
|
| - channels,
|
| - sample_rate,
|
| - bits_per_sample,
|
| - 4096);
|
| +
|
| + params_ = media::AudioManager::Get()->GetInputStreamParameters(
|
| + media::AudioManagerBase::kDefaultDeviceId);
|
|
|
| channel_data_.clear();
|
| channel_data_.push_back(GenerateSamples(0x1337, samples));
|
| @@ -193,17 +196,7 @@ class AudioRecorderTest : public testing::Test {
|
| content::TestBrowserThreadBundle thread_bundle_;
|
| };
|
|
|
| -// TODO(rkc): These tests are broken on all platforms.
|
| -// On Windows and Mac, we cannot use non-OS params. The tests need to be
|
| -// rewritten to use the params provided to us by the audio manager
|
| -// rather than setting our own params.
|
| -// On Linux, there is a memory leak in the audio code during initialization.
|
| -#define MAYBE_BasicRecordAndStop DISABLED_BasicRecordAndStop
|
| -#define MAYBE_OutOfOrderRecordAndStopMultiple \
|
| - DISABLED_OutOfOrderRecordAndStopMultiple
|
| -#define MAYBE_RecordingEndToEnd DISABLED_RecordingEndToEnd
|
| -
|
| -TEST_F(AudioRecorderTest, MAYBE_BasicRecordAndStop) {
|
| +TEST_F(AudioRecorderTest, BasicRecordAndStop) {
|
| CreateSimpleRecorder();
|
|
|
| recorder_->Record();
|
| @@ -224,7 +217,7 @@ TEST_F(AudioRecorderTest, MAYBE_BasicRecordAndStop) {
|
| DeleteRecorder();
|
| }
|
|
|
| -TEST_F(AudioRecorderTest, MAYBE_OutOfOrderRecordAndStopMultiple) {
|
| +TEST_F(AudioRecorderTest, OutOfOrderRecordAndStopMultiple) {
|
| CreateSimpleRecorder();
|
|
|
| recorder_->Stop();
|
| @@ -243,10 +236,9 @@ TEST_F(AudioRecorderTest, MAYBE_OutOfOrderRecordAndStopMultiple) {
|
| DeleteRecorder();
|
| }
|
|
|
| -TEST_F(AudioRecorderTest, MAYBE_RecordingEndToEnd) {
|
| +TEST_F(AudioRecorderTest, RecordingEndToEnd) {
|
| const int kNumSamples = 48000 * 3;
|
| - CreateRecorder(
|
| - kDefaultChannels, kDefaultSampleRate, kDefaultBitsPerSample, kNumSamples);
|
| + CreateRecorder(kNumSamples);
|
|
|
| RecordAndVerifySamples();
|
|
|
|
|