1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 #include "media/base/audio_hardware_config.h" 6 #include "media/audio/audio_parameters.h" 7 #include "testing/gtest/include/gtest/gtest.h" 8 9 namespace media { 10 11 static const int kOutputBufferSize = 2048; 12 static const int kOutputSampleRate = 48000; 13 static const ChannelLayout kOutputChannelLayout = CHANNEL_LAYOUT_STEREO; 14 static const int kInputSampleRate = 44100; 15 static const ChannelLayout kInputChannelLayout = CHANNEL_LAYOUT_STEREO; 16 17 TEST(AudioHardwareConfig, Getters) { 18 AudioParameters input_params( 19 AudioParameters::AUDIO_PCM_LOW_LATENCY, 20 kInputChannelLayout, 21 kInputSampleRate, 22 16, 23 kOutputBufferSize); 24 25 AudioParameters output_params( 26 AudioParameters::AUDIO_PCM_LOW_LATENCY, 27 kOutputChannelLayout, 28 kOutputSampleRate, 29 16, 30 kOutputBufferSize); 31 32 AudioHardwareConfig fake_config(input_params, output_params); 33 34 EXPECT_EQ(kOutputBufferSize, fake_config.GetOutputBufferSize()); 35 EXPECT_EQ(kOutputSampleRate, fake_config.GetOutputSampleRate()); 36 EXPECT_EQ(kInputSampleRate, fake_config.GetInputSampleRate()); 37 EXPECT_EQ(kInputChannelLayout, fake_config.GetInputChannelLayout()); 38 } 39 40 TEST(AudioHardwareConfig, Setters) { 41 AudioParameters input_params( 42 AudioParameters::AUDIO_PCM_LOW_LATENCY, 43 kInputChannelLayout, 44 kInputSampleRate, 45 16, 46 kOutputBufferSize); 47 48 AudioParameters output_params( 49 AudioParameters::AUDIO_PCM_LOW_LATENCY, 50 kOutputChannelLayout, 51 kOutputSampleRate, 52 16, 53 kOutputBufferSize); 54 55 AudioHardwareConfig fake_config(input_params, output_params); 56 57 // Verify output parameters. 58 const int kNewOutputBufferSize = kOutputBufferSize * 2; 59 const int kNewOutputSampleRate = kOutputSampleRate * 2; 60 EXPECT_NE(kNewOutputBufferSize, fake_config.GetOutputBufferSize()); 61 EXPECT_NE(kNewOutputSampleRate, fake_config.GetOutputSampleRate()); 62 63 AudioParameters new_output_params( 64 AudioParameters::AUDIO_PCM_LOW_LATENCY, 65 kOutputChannelLayout, 66 kNewOutputSampleRate, 67 16, 68 kNewOutputBufferSize); 69 fake_config.UpdateOutputConfig(new_output_params); 70 EXPECT_EQ(kNewOutputBufferSize, fake_config.GetOutputBufferSize()); 71 EXPECT_EQ(kNewOutputSampleRate, fake_config.GetOutputSampleRate()); 72 73 // Verify input parameters. 74 const int kNewInputSampleRate = kInputSampleRate * 2; 75 const ChannelLayout kNewInputChannelLayout = CHANNEL_LAYOUT_MONO; 76 EXPECT_NE(kNewInputSampleRate, fake_config.GetInputSampleRate()); 77 EXPECT_NE(kNewInputChannelLayout, fake_config.GetInputChannelLayout()); 78 79 AudioParameters new_input_params( 80 AudioParameters::AUDIO_PCM_LOW_LATENCY, 81 kNewInputChannelLayout, 82 kNewInputSampleRate, 83 16, 84 kOutputBufferSize); 85 fake_config.UpdateInputConfig(new_input_params); 86 EXPECT_EQ(kNewInputSampleRate, fake_config.GetInputSampleRate()); 87 EXPECT_EQ(kNewInputChannelLayout, fake_config.GetInputChannelLayout()); 88 } 89 90 } // namespace content 91