diff options
author | dalecurtis@chromium.org <dalecurtis@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-01-10 21:59:46 +0000 |
---|---|---|
committer | dalecurtis@chromium.org <dalecurtis@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-01-10 21:59:46 +0000 |
commit | dd261379c34aa24b5f35767f3752e562e9dd1e44 (patch) | |
tree | 7ce3fa9ab28358848c0b8888996df3638d4a3ebd /media | |
parent | d1be6e49e6d66a5b3a045e739abfc50a4adf7065 (diff) | |
download | chromium_src-dd261379c34aa24b5f35767f3752e562e9dd1e44.zip chromium_src-dd261379c34aa24b5f35767f3752e562e9dd1e44.tar.gz chromium_src-dd261379c34aa24b5f35767f3752e562e9dd1e44.tar.bz2 |
Fix chromeos=1 so Pulse is preferred when use_cras=0.
Merges the settings for use_alsa and use_pulseaudio for selection
based on use_cras. As a consequence, removes linking of ALSA when
use_cras=1, which should result in a small binary size savings.
BUG=none
TEST=Pulse is available along with ALSA when chromeos=1.
NOTRY=true
Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=244098
Review URL: https://codereview.chromium.org/132773002
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@244251 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'media')
-rw-r--r-- | media/audio/cras/audio_manager_cras.cc | 15 | ||||
-rw-r--r-- | media/audio/cras/audio_manager_cras.h | 4 | ||||
-rw-r--r-- | media/audio/cras/cras_input.cc | 6 | ||||
-rw-r--r-- | media/audio/cras/cras_input.h | 4 | ||||
-rw-r--r-- | media/audio/cras/cras_input_unittest.cc | 9 | ||||
-rw-r--r-- | media/audio/cras/cras_unified.cc | 8 | ||||
-rw-r--r-- | media/audio/cras/cras_unified.h | 3 | ||||
-rw-r--r-- | media/audio/cras/cras_unified_unittest.cc | 13 | ||||
-rw-r--r-- | media/media.gyp | 9 |
9 files changed, 43 insertions, 28 deletions
diff --git a/media/audio/cras/audio_manager_cras.cc b/media/audio/cras/audio_manager_cras.cc index 876d6ce..305d5e8 100644 --- a/media/audio/cras/audio_manager_cras.cc +++ b/media/audio/cras/audio_manager_cras.cc @@ -138,4 +138,19 @@ AudioInputStream* AudioManagerCras::MakeInputStream( return new CrasInputStream(params, this, device_id); } +snd_pcm_format_t AudioManagerCras::BitsToFormat(int bits_per_sample) { + switch (bits_per_sample) { + case 8: + return SND_PCM_FORMAT_U8; + case 16: + return SND_PCM_FORMAT_S16; + case 24: + return SND_PCM_FORMAT_S24; + case 32: + return SND_PCM_FORMAT_S32; + default: + return SND_PCM_FORMAT_UNKNOWN; + } +} + } // namespace media diff --git a/media/audio/cras/audio_manager_cras.h b/media/audio/cras/audio_manager_cras.h index 589374a..b2863a6 100644 --- a/media/audio/cras/audio_manager_cras.h +++ b/media/audio/cras/audio_manager_cras.h @@ -5,6 +5,8 @@ #ifndef MEDIA_AUDIO_CRAS_AUDIO_MANAGER_CRAS_H_ #define MEDIA_AUDIO_CRAS_AUDIO_MANAGER_CRAS_H_ +#include <cras_types.h> + #include <string> #include "base/compiler_specific.h" @@ -40,6 +42,8 @@ class MEDIA_EXPORT AudioManagerCras : public AudioManagerBase { virtual AudioInputStream* MakeLowLatencyInputStream( const AudioParameters& params, const std::string& device_id) OVERRIDE; + static snd_pcm_format_t BitsToFormat(int bits_per_sample); + protected: virtual ~AudioManagerCras(); diff --git a/media/audio/cras/cras_input.cc b/media/audio/cras/cras_input.cc index 2c4c6a7..0181d88 100644 --- a/media/audio/cras/cras_input.cc +++ b/media/audio/cras/cras_input.cc @@ -7,10 +7,8 @@ #include <math.h> #include "base/basictypes.h" -#include "base/bind.h" #include "base/logging.h" #include "base/time/time.h" -#include "media/audio/alsa/alsa_util.h" #include "media/audio/audio_manager.h" #include "media/audio/cras/audio_manager_cras.h" @@ -54,7 +52,7 @@ bool CrasInputStream::Open() { } snd_pcm_format_t pcm_format = - alsa_util::BitsToFormat(params_.bits_per_sample()); + AudioManagerCras::BitsToFormat(params_.bits_per_sample()); if (pcm_format == SND_PCM_FORMAT_UNKNOWN) { DLOG(WARNING) << "Unsupported bits/sample: " << params_.bits_per_sample(); return false; @@ -114,7 +112,7 @@ void CrasInputStream::Start(AudioInputCallback* callback) { // Prepare |audio_format| and |stream_params| for the stream we // will create. cras_audio_format* audio_format = cras_audio_format_create( - alsa_util::BitsToFormat(params_.bits_per_sample()), + AudioManagerCras::BitsToFormat(params_.bits_per_sample()), params_.sample_rate(), params_.channels()); if (!audio_format) { diff --git a/media/audio/cras/cras_input.h b/media/audio/cras/cras_input.h index dd2cb54..2b7176b 100644 --- a/media/audio/cras/cras_input.h +++ b/media/audio/cras/cras_input.h @@ -10,8 +10,6 @@ #include <string> #include "base/compiler_specific.h" -#include "base/memory/scoped_ptr.h" -#include "base/memory/weak_ptr.h" #include "media/audio/agc_audio_stream.h" #include "media/audio/audio_io.h" #include "media/audio/audio_parameters.h" @@ -105,4 +103,4 @@ class CrasInputStream : public AgcAudioStream<AudioInputStream> { } // namespace media -#endif // MEDIA_AUDIO_CRAS_ALSA_INPUT_H_ +#endif // MEDIA_AUDIO_CRAS_CRAS_INPUT_H_ diff --git a/media/audio/cras/cras_input_unittest.cc b/media/audio/cras/cras_input_unittest.cc index 03c89b0..77f951c 100644 --- a/media/audio/cras/cras_input_unittest.cc +++ b/media/audio/cras/cras_input_unittest.cc @@ -2,19 +2,22 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#include <unistd.h> - #include <string> #include "base/synchronization/waitable_event.h" #include "base/test/test_timeouts.h" #include "base/time/time.h" #include "media/audio/cras/audio_manager_cras.h" -#include "media/audio/cras/cras_input.h" #include "media/audio/fake_audio_log_factory.h" #include "testing/gmock/include/gmock/gmock.h" #include "testing/gtest/include/gtest/gtest.h" +// cras_util.h defines custom min/max macros which break compilation, so ensure +// it's not included until last. #if avoids presubmit errors. +#if defined(USE_CRAS) +#include "media/audio/cras/cras_input.h" +#endif + using testing::_; using testing::AtLeast; using testing::Ge; diff --git a/media/audio/cras/cras_unified.cc b/media/audio/cras/cras_unified.cc index c85cf59..c41356b 100644 --- a/media/audio/cras/cras_unified.cc +++ b/media/audio/cras/cras_unified.cc @@ -4,11 +4,7 @@ #include "media/audio/cras/cras_unified.h" -#include <cras_client.h> - -#include "base/command_line.h" #include "base/logging.h" -#include "media/audio/alsa/alsa_util.h" #include "media/audio/cras/audio_manager_cras.h" namespace media { @@ -116,7 +112,7 @@ bool CrasUnifiedStream::Open() { return false; } - if (alsa_util::BitsToFormat(params_.bits_per_sample()) == + if (AudioManagerCras::BitsToFormat(params_.bits_per_sample()) == SND_PCM_FORMAT_UNKNOWN) { LOG(WARNING) << "Unsupported pcm format"; return false; @@ -187,7 +183,7 @@ void CrasUnifiedStream::Start(AudioSourceCallback* callback) { // Prepare |audio_format| and |stream_params| for the stream we // will create. cras_audio_format* audio_format = cras_audio_format_create( - alsa_util::BitsToFormat(params_.bits_per_sample()), + AudioManagerCras::BitsToFormat(params_.bits_per_sample()), params_.sample_rate(), params_.channels()); if (!audio_format) { diff --git a/media/audio/cras/cras_unified.h b/media/audio/cras/cras_unified.h index 818763e..36a58e5 100644 --- a/media/audio/cras/cras_unified.h +++ b/media/audio/cras/cras_unified.h @@ -10,18 +10,15 @@ #ifndef MEDIA_AUDIO_LINUX_CRAS_UNIFIED_H_ #define MEDIA_AUDIO_LINUX_CRAS_UNIFIED_H_ -#include <alsa/asoundlib.h> #include <cras_client.h> #include "base/compiler_specific.h" -#include "base/gtest_prod_util.h" #include "media/audio/audio_io.h" #include "media/audio/audio_parameters.h" namespace media { class AudioManagerCras; -class AudioParameters; // Implementation of AudioOuputStream for Chrome OS using the Chrome OS audio // server. diff --git a/media/audio/cras/cras_unified_unittest.cc b/media/audio/cras/cras_unified_unittest.cc index 040192a..01bbe13 100644 --- a/media/audio/cras/cras_unified_unittest.cc +++ b/media/audio/cras/cras_unified_unittest.cc @@ -8,11 +8,16 @@ #include "base/test/test_timeouts.h" #include "base/time/time.h" #include "media/audio/cras/audio_manager_cras.h" -#include "media/audio/cras/cras_unified.h" #include "media/audio/fake_audio_log_factory.h" #include "testing/gmock/include/gmock/gmock.h" #include "testing/gtest/include/gtest/gtest.h" +// cras_util.h defines custom min/max macros which break compilation, so ensure +// it's not included until last. #if avoids presubmit errors. +#if defined(USE_CRAS) +#include "media/audio/cras/cras_unified.h" +#endif + using testing::_; using testing::DoAll; using testing::InvokeWithoutArgs; @@ -41,8 +46,10 @@ class MockAudioManagerCras : public AudioManagerCras { MOCK_METHOD0(HasAudioInputDevices, bool()); MOCK_METHOD1(MakeLinearOutputStream, AudioOutputStream*( const AudioParameters& params)); - MOCK_METHOD1(MakeLowLatencyOutputStream, AudioOutputStream*( - const AudioParameters& params)); + MOCK_METHOD3(MakeLowLatencyOutputStream, + AudioOutputStream*(const AudioParameters& params, + const std::string& device_id, + const std::string& input_device_id)); MOCK_METHOD2(MakeLinearOutputStream, AudioInputStream*( const AudioParameters& params, const std::string& device_id)); MOCK_METHOD2(MakeLowLatencyInputStream, AudioInputStream*( diff --git a/media/media.gyp b/media/media.gyp index 51d7cc0..3f1b2e8 100644 --- a/media/media.gyp +++ b/media/media.gyp @@ -21,15 +21,12 @@ 'media_use_ffmpeg%': 1, 'media_use_libvpx%': 1, }], - # ALSA usage. - ['(OS=="linux" or OS=="freebsd" or OS=="solaris") and embedded!=1', { + # Enable ALSA and Pulse for runtime selection. + ['(OS=="linux" or OS=="freebsd" or OS=="solaris") and embedded!=1 and use_cras==0', { 'use_alsa%': 1, - }, { - 'use_alsa%': 0, - }], - ['os_posix==1 and OS!="mac" and OS!="android" and chromeos!=1 and embedded!=1', { 'use_pulseaudio%': 1, }, { + 'use_alsa%': 0, 'use_pulseaudio%': 0, }], ], |