summaryrefslogtreecommitdiffstats
path: root/media
diff options
context:
space:
mode:
authordalecurtis@chromium.org <dalecurtis@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-10-01 03:50:03 +0000
committerdalecurtis@chromium.org <dalecurtis@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-10-01 03:50:03 +0000
commit2fb4b740a8f6c79ae376c5f0257ed66ac3ef4246 (patch)
treede534a2cb59ad9c9323923095150f8ea8a08f1bc /media
parente8475f8ac4fa50edffd37396c0cb386e3e817879 (diff)
downloadchromium_src-2fb4b740a8f6c79ae376c5f0257ed66ac3ef4246.zip
chromium_src-2fb4b740a8f6c79ae376c5f0257ed66ac3ef4246.tar.gz
chromium_src-2fb4b740a8f6c79ae376c5f0257ed66ac3ef4246.tar.bz2
Remove the last vestiges of audio_util.
- Removes GetHighLatencyOutputBufferSize() since we no longer have any high latency users. Fallback uses a minimum 2048 buffer size in AudioOutputResampler. - Moves NumberOfWaveOutBuffers() to AudioManagerWin. Documents existing broken unit test edge case for Vista. - Moves GetUserBufferSize() to AudioManagerBase as a protected method. BUG=120319 TEST=compiles Review URL: https://codereview.chromium.org/25133002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@226131 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'media')
-rw-r--r--media/audio/android/audio_manager_android.cc1
-rw-r--r--media/audio/audio_device_thread.cc1
-rw-r--r--media/audio/audio_input_volume_unittest.cc1
-rw-r--r--media/audio/audio_manager_base.cc13
-rw-r--r--media/audio/audio_manager_base.h5
-rw-r--r--media/audio/audio_output_controller.cc1
-rw-r--r--media/audio/audio_output_device.cc1
-rw-r--r--media/audio/audio_output_dispatcher_impl.cc1
-rw-r--r--media/audio/audio_output_resampler.cc7
-rw-r--r--media/audio/audio_util.cc99
-rw-r--r--media/audio/audio_util.h31
-rw-r--r--media/audio/cras/audio_manager_cras.cc1
-rw-r--r--media/audio/cras/cras_unified.cc1
-rw-r--r--media/audio/linux/audio_manager_linux.cc1
-rw-r--r--media/audio/mac/audio_auhal_mac.cc1
-rw-r--r--media/audio/mac/audio_input_mac.cc1
-rw-r--r--media/audio/mac/audio_low_latency_input_mac.cc1
-rw-r--r--media/audio/mac/audio_manager_mac.cc35
-rw-r--r--media/audio/mac/audio_manager_mac.h2
-rw-r--r--media/audio/mac/audio_synchronized_mac.cc1
-rw-r--r--media/audio/mac/audio_unified_mac.cc1
-rw-r--r--media/audio/openbsd/audio_manager_openbsd.cc1
-rw-r--r--media/audio/pulse/audio_manager_pulse.cc1
-rw-r--r--media/audio/simple_sources.cc1
-rw-r--r--media/audio/win/audio_device_listener_win.cc1
-rw-r--r--media/audio/win/audio_low_latency_input_win.cc1
-rw-r--r--media/audio/win/audio_low_latency_output_win_unittest.cc1
-rw-r--r--media/audio/win/audio_manager_win.cc20
-rw-r--r--media/audio/win/audio_output_win_unittest.cc39
-rw-r--r--media/audio/win/audio_unified_win_unittest.cc1
-rw-r--r--media/audio/win/wavein_input_win.cc1
-rw-r--r--media/filters/audio_renderer_algorithm.cc1
-rw-r--r--media/filters/audio_renderer_impl.cc1
-rw-r--r--media/media.gyp4
34 files changed, 73 insertions, 206 deletions
diff --git a/media/audio/android/audio_manager_android.cc b/media/audio/android/audio_manager_android.cc
index 04b226f..dc77a4c 100644
--- a/media/audio/android/audio_manager_android.cc
+++ b/media/audio/android/audio_manager_android.cc
@@ -10,7 +10,6 @@
#include "media/audio/android/opensles_output.h"
#include "media/audio/audio_manager.h"
#include "media/audio/audio_parameters.h"
-#include "media/audio/audio_util.h"
#include "media/audio/fake_audio_input_stream.h"
#include "media/base/channel_layout.h"
diff --git a/media/audio/audio_device_thread.cc b/media/audio/audio_device_thread.cc
index d5c1bbc..6998890 100644
--- a/media/audio/audio_device_thread.cc
+++ b/media/audio/audio_device_thread.cc
@@ -12,7 +12,6 @@
#include "base/message_loop/message_loop.h"
#include "base/threading/platform_thread.h"
#include "base/threading/thread_restrictions.h"
-#include "media/audio/audio_util.h"
#include "media/base/audio_bus.h"
using base::PlatformThread;
diff --git a/media/audio/audio_input_volume_unittest.cc b/media/audio/audio_input_volume_unittest.cc
index 570c045..be3cde8 100644
--- a/media/audio/audio_input_volume_unittest.cc
+++ b/media/audio/audio_input_volume_unittest.cc
@@ -8,7 +8,6 @@
#include "base/memory/scoped_ptr.h"
#include "media/audio/audio_io.h"
#include "media/audio/audio_manager_base.h"
-#include "media/audio/audio_util.h"
#include "testing/gtest/include/gtest/gtest.h"
#if defined(OS_WIN)
diff --git a/media/audio/audio_manager_base.cc b/media/audio/audio_manager_base.cc
index 5b1f4b3..7843299 100644
--- a/media/audio/audio_manager_base.cc
+++ b/media/audio/audio_manager_base.cc
@@ -8,12 +8,12 @@
#include "base/bind_helpers.h"
#include "base/command_line.h"
#include "base/message_loop/message_loop_proxy.h"
+#include "base/strings/string_number_conversions.h"
#include "base/threading/thread.h"
#include "build/build_config.h"
#include "media/audio/audio_output_dispatcher_impl.h"
#include "media/audio/audio_output_proxy.h"
#include "media/audio/audio_output_resampler.h"
-#include "media/audio/audio_util.h"
#include "media/audio/fake_audio_input_stream.h"
#include "media/audio/fake_audio_output_stream.h"
#include "media/base/media_switches.h"
@@ -423,4 +423,15 @@ std::string AudioManagerBase::GetDefaultOutputDeviceID() {
return "";
}
+int AudioManagerBase::GetUserBufferSize() {
+ const CommandLine* cmd_line = CommandLine::ForCurrentProcess();
+ int buffer_size = 0;
+ std::string buffer_size_str(cmd_line->GetSwitchValueASCII(
+ switches::kAudioBufferSize));
+ if (base::StringToInt(buffer_size_str, &buffer_size) && buffer_size > 0)
+ return buffer_size;
+
+ return 0;
+}
+
} // namespace media
diff --git a/media/audio/audio_manager_base.h b/media/audio/audio_manager_base.h
index cdf7d3a..8fbe977 100644
--- a/media/audio/audio_manager_base.h
+++ b/media/audio/audio_manager_base.h
@@ -122,7 +122,6 @@ class MEDIA_EXPORT AudioManagerBase : public AudioManager {
protected:
AudioManagerBase();
-
// Shuts down the audio thread and releases all the audio output dispatchers
// on the audio thread. All audio streams should be freed before Shutdown()
// is called. This must be called in the destructor of every AudioManagerBase
@@ -136,6 +135,10 @@ class MEDIA_EXPORT AudioManagerBase : public AudioManager {
// thread.
void NotifyAllOutputDeviceChangeListeners();
+ // Returns user buffer size as specified on the command line or 0 if no buffer
+ // size has been specified.
+ int GetUserBufferSize();
+
// Returns the preferred hardware audio output parameters for opening output
// streams. If the users inject a valid |input_params|, each AudioManager
// will decide if they should return the values from |input_params| or the
diff --git a/media/audio/audio_output_controller.cc b/media/audio/audio_output_controller.cc
index 649612c..81eaab9 100644
--- a/media/audio/audio_output_controller.cc
+++ b/media/audio/audio_output_controller.cc
@@ -11,7 +11,6 @@
#include "base/threading/platform_thread.h"
#include "base/time/time.h"
#include "build/build_config.h"
-#include "media/audio/audio_util.h"
#include "media/audio/shared_memory_util.h"
#include "media/base/scoped_histogram_timer.h"
diff --git a/media/audio/audio_output_device.cc b/media/audio/audio_output_device.cc
index 0c406ca..a5b239e 100644
--- a/media/audio/audio_output_device.cc
+++ b/media/audio/audio_output_device.cc
@@ -10,7 +10,6 @@
#include "base/threading/thread_restrictions.h"
#include "base/time/time.h"
#include "media/audio/audio_output_controller.h"
-#include "media/audio/audio_util.h"
#include "media/audio/shared_memory_util.h"
#include "media/base/limits.h"
diff --git a/media/audio/audio_output_dispatcher_impl.cc b/media/audio/audio_output_dispatcher_impl.cc
index bcdcd65..31bd11c 100644
--- a/media/audio/audio_output_dispatcher_impl.cc
+++ b/media/audio/audio_output_dispatcher_impl.cc
@@ -12,7 +12,6 @@
#include "base/time/time.h"
#include "media/audio/audio_io.h"
#include "media/audio/audio_output_proxy.h"
-#include "media/audio/audio_util.h"
namespace media {
diff --git a/media/audio/audio_output_resampler.cc b/media/audio/audio_output_resampler.cc
index da424ec..7a4ef1c 100644
--- a/media/audio/audio_output_resampler.cc
+++ b/media/audio/audio_output_resampler.cc
@@ -14,7 +14,6 @@
#include "media/audio/audio_io.h"
#include "media/audio/audio_output_dispatcher_impl.h"
#include "media/audio/audio_output_proxy.h"
-#include "media/audio/audio_util.h"
#include "media/audio/sample_rates.h"
#include "media/base/audio_converter.h"
#include "media/base/limits.h"
@@ -132,10 +131,8 @@ static AudioParameters SetupFallbackParams(
// mode. |kMinLowLatencyFrameSize| is arbitrarily based on Pepper Flash's
// MAXIMUM frame size for low latency.
static const int kMinLowLatencyFrameSize = 2048;
- int frames_per_buffer = std::min(
- std::max(input_params.frames_per_buffer(), kMinLowLatencyFrameSize),
- static_cast<int>(
- GetHighLatencyOutputBufferSize(input_params.sample_rate())));
+ const int frames_per_buffer =
+ std::max(input_params.frames_per_buffer(), kMinLowLatencyFrameSize);
return AudioParameters(
AudioParameters::AUDIO_PCM_LINEAR, input_params.channel_layout(),
diff --git a/media/audio/audio_util.cc b/media/audio/audio_util.cc
deleted file mode 100644
index 42c6c91..0000000
--- a/media/audio/audio_util.cc
+++ /dev/null
@@ -1,99 +0,0 @@
-// Copyright (c) 2012 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-// Software adjust volume of samples, allows each audio stream its own
-// volume without impacting master volume for chrome and other applications.
-
-// Implemented as templates to allow 8, 16 and 32 bit implementations.
-// 8 bit is unsigned and biased by 128.
-
-// TODO(vrk): This file has been running pretty wild and free, and it's likely
-// that a lot of the functions can be simplified and made more elegant. Revisit
-// after other audio cleanup is done. (crbug.com/120319)
-
-#include "media/audio/audio_util.h"
-
-#include "base/command_line.h"
-#include "base/strings/string_number_conversions.h"
-#include "base/time/time.h"
-#include "media/base/media_switches.h"
-
-#if defined(OS_WIN)
-#include "base/win/windows_version.h"
-#endif
-
-namespace media {
-
-// Returns user buffer size as specified on the command line or 0 if no buffer
-// size has been specified.
-int GetUserBufferSize() {
- const CommandLine* cmd_line = CommandLine::ForCurrentProcess();
- int buffer_size = 0;
- std::string buffer_size_str(cmd_line->GetSwitchValueASCII(
- switches::kAudioBufferSize));
- if (base::StringToInt(buffer_size_str, &buffer_size) && buffer_size > 0)
- return buffer_size;
-
- return 0;
-}
-
-// Computes a buffer size based on the given |sample_rate|. Must be used in
-// conjunction with AUDIO_PCM_LINEAR.
-size_t GetHighLatencyOutputBufferSize(int sample_rate) {
- int user_buffer_size = GetUserBufferSize();
- if (user_buffer_size)
- return user_buffer_size;
-
- // TODO(vrk/crogers): The buffer sizes that this function computes is probably
- // overly conservative. However, reducing the buffer size to 2048-8192 bytes
- // caused crbug.com/108396. This computation should be revisited while making
- // sure crbug.com/108396 doesn't happen again.
-
- // The minimum number of samples in a hardware packet.
- // This value is selected so that we can handle down to 5khz sample rate.
- static const size_t kMinSamplesPerHardwarePacket = 1024;
-
- // The maximum number of samples in a hardware packet.
- // This value is selected so that we can handle up to 192khz sample rate.
- static const size_t kMaxSamplesPerHardwarePacket = 64 * 1024;
-
- // This constant governs the hardware audio buffer size, this value should be
- // chosen carefully.
- // This value is selected so that we have 8192 samples for 48khz streams.
- static const size_t kMillisecondsPerHardwarePacket = 170;
-
- // Select the number of samples that can provide at least
- // |kMillisecondsPerHardwarePacket| worth of audio data.
- size_t samples = kMinSamplesPerHardwarePacket;
- while (samples <= kMaxSamplesPerHardwarePacket &&
- samples * base::Time::kMillisecondsPerSecond <
- sample_rate * kMillisecondsPerHardwarePacket) {
- samples *= 2;
- }
- return samples;
-}
-
-#if defined(OS_WIN)
-
-int NumberOfWaveOutBuffers() {
- // Use the user provided buffer count if provided.
- int buffers = 0;
- std::string buffers_str(CommandLine::ForCurrentProcess()->GetSwitchValueASCII(
- switches::kWaveOutBuffers));
- if (base::StringToInt(buffers_str, &buffers) && buffers > 0) {
- return buffers;
- }
-
- // Use 4 buffers for Vista, 3 for everyone else:
- // - The entire Windows audio stack was rewritten for Windows Vista and wave
- // out performance was degraded compared to XP.
- // - The regression was fixed in Windows 7 and most configurations will work
- // with 2, but some (e.g., some Sound Blasters) still need 3.
- // - Some XP configurations (even multi-processor ones) also need 3.
- return (base::win::GetVersion() == base::win::VERSION_VISTA) ? 4 : 3;
-}
-
-#endif
-
-} // namespace media
diff --git a/media/audio/audio_util.h b/media/audio/audio_util.h
deleted file mode 100644
index a11c327..0000000
--- a/media/audio/audio_util.h
+++ /dev/null
@@ -1,31 +0,0 @@
-// Copyright (c) 2012 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef MEDIA_AUDIO_AUDIO_UTIL_H_
-#define MEDIA_AUDIO_AUDIO_UTIL_H_
-
-#include "base/basictypes.h"
-#include "build/build_config.h"
-#include "media/base/media_export.h"
-
-namespace media {
-
-// Returns user buffer size as specified on the command line or 0 if no buffer
-// size has been specified.
-MEDIA_EXPORT int GetUserBufferSize();
-
-// Computes a buffer size based on the given |sample_rate|. Must be used in
-// conjunction with AUDIO_PCM_LINEAR.
-MEDIA_EXPORT size_t GetHighLatencyOutputBufferSize(int sample_rate);
-
-#if defined(OS_WIN)
-
-// Returns number of buffers to be used by wave out.
-MEDIA_EXPORT int NumberOfWaveOutBuffers();
-
-#endif // defined(OS_WIN)
-
-} // namespace media
-
-#endif // MEDIA_AUDIO_AUDIO_UTIL_H_
diff --git a/media/audio/cras/audio_manager_cras.cc b/media/audio/cras/audio_manager_cras.cc
index 14a0c4e..4659328 100644
--- a/media/audio/cras/audio_manager_cras.cc
+++ b/media/audio/cras/audio_manager_cras.cc
@@ -9,7 +9,6 @@
#include "base/logging.h"
#include "base/nix/xdg_util.h"
#include "base/stl_util.h"
-#include "media/audio/audio_util.h"
#include "media/audio/cras/cras_input.h"
#include "media/audio/cras/cras_unified.h"
#include "media/base/channel_layout.h"
diff --git a/media/audio/cras/cras_unified.cc b/media/audio/cras/cras_unified.cc
index a774186..fe2c7b0 100644
--- a/media/audio/cras/cras_unified.cc
+++ b/media/audio/cras/cras_unified.cc
@@ -8,7 +8,6 @@
#include "base/command_line.h"
#include "base/logging.h"
-#include "media/audio/audio_util.h"
#include "media/audio/cras/audio_manager_cras.h"
#include "media/audio/linux/alsa_util.h"
diff --git a/media/audio/linux/audio_manager_linux.cc b/media/audio/linux/audio_manager_linux.cc
index 708e4f2..0d0f104 100644
--- a/media/audio/linux/audio_manager_linux.cc
+++ b/media/audio/linux/audio_manager_linux.cc
@@ -14,7 +14,6 @@
#include "base/stl_util.h"
#include "media/audio/audio_output_dispatcher.h"
#include "media/audio/audio_parameters.h"
-#include "media/audio/audio_util.h"
#if defined(USE_CRAS)
#include "media/audio/cras/audio_manager_cras.h"
#endif
diff --git a/media/audio/mac/audio_auhal_mac.cc b/media/audio/mac/audio_auhal_mac.cc
index 051b709..e180087 100644
--- a/media/audio/mac/audio_auhal_mac.cc
+++ b/media/audio/mac/audio_auhal_mac.cc
@@ -11,7 +11,6 @@
#include "base/debug/trace_event.h"
#include "base/logging.h"
#include "base/mac/mac_logging.h"
-#include "media/audio/audio_util.h"
#include "media/audio/mac/audio_manager_mac.h"
#include "media/base/media_switches.h"
diff --git a/media/audio/mac/audio_input_mac.cc b/media/audio/mac/audio_input_mac.cc
index 7930567..4aee117 100644
--- a/media/audio/mac/audio_input_mac.cc
+++ b/media/audio/mac/audio_input_mac.cc
@@ -10,7 +10,6 @@
#include "base/logging.h"
#include "base/mac/mac_logging.h"
#include "media/audio/audio_manager_base.h"
-#include "media/audio/audio_util.h"
namespace media {
diff --git a/media/audio/mac/audio_low_latency_input_mac.cc b/media/audio/mac/audio_low_latency_input_mac.cc
index 9b0c9b21..67c4a5a 100644
--- a/media/audio/mac/audio_low_latency_input_mac.cc
+++ b/media/audio/mac/audio_low_latency_input_mac.cc
@@ -9,7 +9,6 @@
#include "base/basictypes.h"
#include "base/logging.h"
#include "base/mac/mac_logging.h"
-#include "media/audio/audio_util.h"
#include "media/audio/mac/audio_manager_mac.h"
#include "media/base/data_buffer.h"
diff --git a/media/audio/mac/audio_manager_mac.cc b/media/audio/mac/audio_manager_mac.cc
index 8e4b969..8003ddc 100644
--- a/media/audio/mac/audio_manager_mac.cc
+++ b/media/audio/mac/audio_manager_mac.cc
@@ -13,7 +13,6 @@
#include "base/mac/scoped_cftyperef.h"
#include "base/strings/sys_string_conversions.h"
#include "media/audio/audio_parameters.h"
-#include "media/audio/audio_util.h"
#include "media/audio/mac/audio_auhal_mac.h"
#include "media/audio/mac/audio_input_mac.h"
#include "media/audio/mac/audio_low_latency_input_mac.h"
@@ -36,23 +35,6 @@ static const int kDefaultLowLatencyBufferSize = 128;
// Default sample-rate on most Apple hardware.
static const int kFallbackSampleRate = 44100;
-static int ChooseBufferSize(int output_sample_rate) {
- int buffer_size = kDefaultLowLatencyBufferSize;
- const int user_buffer_size = GetUserBufferSize();
- if (user_buffer_size) {
- buffer_size = user_buffer_size;
- } else if (output_sample_rate > 48000) {
- // The default buffer size is too small for higher sample rates and may lead
- // to glitching. Adjust upwards by multiples of the default size.
- if (output_sample_rate <= 96000)
- buffer_size = 2 * kDefaultLowLatencyBufferSize;
- else if (output_sample_rate <= 192000)
- buffer_size = 4 * kDefaultLowLatencyBufferSize;
- }
-
- return buffer_size;
-}
-
static bool HasAudioHardware(AudioObjectPropertySelector selector) {
AudioDeviceID output_device_id = kAudioObjectUnknown;
const AudioObjectPropertyAddress property_address = {
@@ -722,6 +704,23 @@ void AudioManagerMac::HandleDeviceChanges() {
NotifyAllOutputDeviceChangeListeners();
}
+int AudioManagerMac::ChooseBufferSize(int output_sample_rate) {
+ int buffer_size = kDefaultLowLatencyBufferSize;
+ const int user_buffer_size = GetUserBufferSize();
+ if (user_buffer_size) {
+ buffer_size = user_buffer_size;
+ } else if (output_sample_rate > 48000) {
+ // The default buffer size is too small for higher sample rates and may lead
+ // to glitching. Adjust upwards by multiples of the default size.
+ if (output_sample_rate <= 96000)
+ buffer_size = 2 * kDefaultLowLatencyBufferSize;
+ else if (output_sample_rate <= 192000)
+ buffer_size = 4 * kDefaultLowLatencyBufferSize;
+ }
+
+ return buffer_size;
+}
+
AudioManager* CreateAudioManager() {
return new AudioManagerMac();
}
diff --git a/media/audio/mac/audio_manager_mac.h b/media/audio/mac/audio_manager_mac.h
index d162554..3ff1681 100644
--- a/media/audio/mac/audio_manager_mac.h
+++ b/media/audio/mac/audio_manager_mac.h
@@ -80,6 +80,8 @@ class MEDIA_EXPORT AudioManagerMac : public AudioManagerBase {
void CreateDeviceListener();
void DestroyDeviceListener();
+ int ChooseBufferSize(int output_sample_rate);
+
scoped_ptr<AudioDeviceListenerMac> output_device_listener_;
// Track the output sample-rate and the default output device
diff --git a/media/audio/mac/audio_synchronized_mac.cc b/media/audio/mac/audio_synchronized_mac.cc
index a2484ca..a9bc88e 100644
--- a/media/audio/mac/audio_synchronized_mac.cc
+++ b/media/audio/mac/audio_synchronized_mac.cc
@@ -11,7 +11,6 @@
#include "base/debug/trace_event.h"
#include "base/logging.h"
#include "base/mac/mac_logging.h"
-#include "media/audio/audio_util.h"
#include "media/audio/mac/audio_manager_mac.h"
#include "media/base/channel_mixer.h"
diff --git a/media/audio/mac/audio_unified_mac.cc b/media/audio/mac/audio_unified_mac.cc
index 67ec2fe..d1dc007 100644
--- a/media/audio/mac/audio_unified_mac.cc
+++ b/media/audio/mac/audio_unified_mac.cc
@@ -9,7 +9,6 @@
#include "base/basictypes.h"
#include "base/logging.h"
#include "base/mac/mac_logging.h"
-#include "media/audio/audio_util.h"
#include "media/audio/mac/audio_manager_mac.h"
namespace media {
diff --git a/media/audio/openbsd/audio_manager_openbsd.cc b/media/audio/openbsd/audio_manager_openbsd.cc
index a97ea8f..e6508b0 100644
--- a/media/audio/openbsd/audio_manager_openbsd.cc
+++ b/media/audio/openbsd/audio_manager_openbsd.cc
@@ -11,7 +11,6 @@
#include "base/stl_util.h"
#include "media/audio/audio_output_dispatcher.h"
#include "media/audio/audio_parameters.h"
-#include "media/audio/audio_util.h"
#include "media/audio/pulse/pulse_output.h"
#include "media/audio/pulse/pulse_stubs.h"
#include "media/base/channel_layout.h"
diff --git a/media/audio/pulse/audio_manager_pulse.cc b/media/audio/pulse/audio_manager_pulse.cc
index 5c09f14..4aac9c5 100644
--- a/media/audio/pulse/audio_manager_pulse.cc
+++ b/media/audio/pulse/audio_manager_pulse.cc
@@ -11,7 +11,6 @@
#include "base/nix/xdg_util.h"
#include "base/stl_util.h"
#include "media/audio/audio_parameters.h"
-#include "media/audio/audio_util.h"
#include "media/audio/linux/audio_manager_linux.h"
#include "media/audio/pulse/pulse_input.h"
#include "media/audio/pulse/pulse_output.h"
diff --git a/media/audio/simple_sources.cc b/media/audio/simple_sources.cc
index 7aa74d6..275413a 100644
--- a/media/audio/simple_sources.cc
+++ b/media/audio/simple_sources.cc
@@ -10,7 +10,6 @@
#include <algorithm>
#include "base/logging.h"
-#include "media/audio/audio_util.h"
namespace media {
diff --git a/media/audio/win/audio_device_listener_win.cc b/media/audio/win/audio_device_listener_win.cc
index 8734cf2..adbc9a8 100644
--- a/media/audio/win/audio_device_listener_win.cc
+++ b/media/audio/win/audio_device_listener_win.cc
@@ -11,7 +11,6 @@
#include "base/system_monitor/system_monitor.h"
#include "base/win/scoped_co_mem.h"
#include "base/win/windows_version.h"
-#include "media/audio/audio_util.h"
#include "media/audio/win/core_audio_util_win.h"
using base::win::ScopedCoMem;
diff --git a/media/audio/win/audio_low_latency_input_win.cc b/media/audio/win/audio_low_latency_input_win.cc
index a174ea2..b16ef13 100644
--- a/media/audio/win/audio_low_latency_input_win.cc
+++ b/media/audio/win/audio_low_latency_input_win.cc
@@ -7,7 +7,6 @@
#include "base/logging.h"
#include "base/memory/scoped_ptr.h"
#include "base/strings/utf_string_conversions.h"
-#include "media/audio/audio_util.h"
#include "media/audio/win/audio_manager_win.h"
#include "media/audio/win/avrt_wrapper_win.h"
diff --git a/media/audio/win/audio_low_latency_output_win_unittest.cc b/media/audio/win/audio_low_latency_output_win_unittest.cc
index 1f78fac..42fca4d 100644
--- a/media/audio/win/audio_low_latency_output_win_unittest.cc
+++ b/media/audio/win/audio_low_latency_output_win_unittest.cc
@@ -16,7 +16,6 @@
#include "base/win/scoped_com_initializer.h"
#include "media/audio/audio_io.h"
#include "media/audio/audio_manager.h"
-#include "media/audio/audio_util.h"
#include "media/audio/win/audio_low_latency_output_win.h"
#include "media/audio/win/core_audio_util_win.h"
#include "media/base/decoder_buffer.h"
diff --git a/media/audio/win/audio_manager_win.cc b/media/audio/win/audio_manager_win.cc
index 0352e66..71d9dd8 100644
--- a/media/audio/win/audio_manager_win.cc
+++ b/media/audio/win/audio_manager_win.cc
@@ -20,8 +20,8 @@
#include "base/process/launch.h"
#include "base/strings/string_number_conversions.h"
#include "base/strings/string_util.h"
+#include "base/win/windows_version.h"
#include "media/audio/audio_parameters.h"
-#include "media/audio/audio_util.h"
#include "media/audio/win/audio_device_listener_win.h"
#include "media/audio/win/audio_low_latency_input_win.h"
#include "media/audio/win/audio_low_latency_output_win.h"
@@ -109,6 +109,24 @@ static string16 GetDeviceAndDriverInfo(HDEVINFO device_info,
return device_and_driver_info;
}
+static int NumberOfWaveOutBuffers() {
+ // Use the user provided buffer count if provided.
+ int buffers = 0;
+ std::string buffers_str(CommandLine::ForCurrentProcess()->GetSwitchValueASCII(
+ switches::kWaveOutBuffers));
+ if (base::StringToInt(buffers_str, &buffers) && buffers > 0) {
+ return buffers;
+ }
+
+ // Use 4 buffers for Vista, 3 for everyone else:
+ // - The entire Windows audio stack was rewritten for Windows Vista and wave
+ // out performance was degraded compared to XP.
+ // - The regression was fixed in Windows 7 and most configurations will work
+ // with 2, but some (e.g., some Sound Blasters) still need 3.
+ // - Some XP configurations (even multi-processor ones) also need 3.
+ return (base::win::GetVersion() == base::win::VERSION_VISTA) ? 4 : 3;
+}
+
AudioManagerWin::AudioManagerWin() {
if (!CoreAudioUtil::IsSupported()) {
// Use the Wave API for device enumeration if XP or lower.
diff --git a/media/audio/win/audio_output_win_unittest.cc b/media/audio/win/audio_output_win_unittest.cc
index 7ce146b..e9040e7f 100644
--- a/media/audio/win/audio_output_win_unittest.cc
+++ b/media/audio/win/audio_output_win_unittest.cc
@@ -14,7 +14,6 @@
#include "base/win/windows_version.h"
#include "media/base/limits.h"
#include "media/audio/audio_io.h"
-#include "media/audio/audio_util.h"
#include "media/audio/audio_manager.h"
#include "media/audio/simple_sources.h"
#include "testing/gmock/include/gmock/gmock.h"
@@ -539,28 +538,22 @@ TEST(WinAudioTest, PCMWaveStreamPendingBytes) {
EXPECT_CALL(source, OnMoreData(NotNull(),
Field(&AudioBuffersState::pending_bytes, 0)))
.WillOnce(Invoke(MockAudioSource::ClearData));
- switch (NumberOfWaveOutBuffers()) {
- case 2:
- break; // Calls are the same as at end of 3-buffer scheme.
- case 3:
- EXPECT_CALL(source, OnMoreData(NotNull(),
- Field(&AudioBuffersState::pending_bytes,
- bytes_100_ms)))
- .WillOnce(Invoke(MockAudioSource::ClearData));
- EXPECT_CALL(source, OnMoreData(NotNull(),
- Field(&AudioBuffersState::pending_bytes,
- 2 * bytes_100_ms)))
- .WillOnce(Invoke(MockAudioSource::ClearData));
- EXPECT_CALL(source, OnMoreData(NotNull(),
- Field(&AudioBuffersState::pending_bytes,
- 2 * bytes_100_ms)))
- .Times(AnyNumber())
- .WillRepeatedly(Return(0));
- break;
- default:
- ASSERT_TRUE(false)
- << "Unexpected number of buffers: " << NumberOfWaveOutBuffers();
- }
+
+ // Note: If AudioManagerWin::NumberOfWaveOutBuffers() ever changes, or if this
+ // test is run on Vista, these expectations will fail.
+ EXPECT_CALL(source, OnMoreData(NotNull(),
+ Field(&AudioBuffersState::pending_bytes,
+ bytes_100_ms)))
+ .WillOnce(Invoke(MockAudioSource::ClearData));
+ EXPECT_CALL(source, OnMoreData(NotNull(),
+ Field(&AudioBuffersState::pending_bytes,
+ 2 * bytes_100_ms)))
+ .WillOnce(Invoke(MockAudioSource::ClearData));
+ EXPECT_CALL(source, OnMoreData(NotNull(),
+ Field(&AudioBuffersState::pending_bytes,
+ 2 * bytes_100_ms)))
+ .Times(AnyNumber())
+ .WillRepeatedly(Return(0));
EXPECT_CALL(source, OnMoreData(NotNull(),
Field(&AudioBuffersState::pending_bytes,
bytes_100_ms)))
diff --git a/media/audio/win/audio_unified_win_unittest.cc b/media/audio/win/audio_unified_win_unittest.cc
index 011c363..dabf4ee 100644
--- a/media/audio/win/audio_unified_win_unittest.cc
+++ b/media/audio/win/audio_unified_win_unittest.cc
@@ -12,7 +12,6 @@
#include "base/win/scoped_com_initializer.h"
#include "media/audio/audio_io.h"
#include "media/audio/audio_manager.h"
-#include "media/audio/audio_util.h"
#include "media/audio/win/audio_unified_win.h"
#include "media/audio/win/core_audio_util_win.h"
#include "media/base/channel_mixer.h"
diff --git a/media/audio/win/wavein_input_win.cc b/media/audio/win/wavein_input_win.cc
index 3c41477..0577125 100644
--- a/media/audio/win/wavein_input_win.cc
+++ b/media/audio/win/wavein_input_win.cc
@@ -8,7 +8,6 @@
#include "base/logging.h"
#include "media/audio/audio_io.h"
-#include "media/audio/audio_util.h"
#include "media/audio/win/audio_manager_win.h"
#include "media/audio/win/device_enumeration_win.h"
diff --git a/media/filters/audio_renderer_algorithm.cc b/media/filters/audio_renderer_algorithm.cc
index 572e2630..19db663 100644
--- a/media/filters/audio_renderer_algorithm.cc
+++ b/media/filters/audio_renderer_algorithm.cc
@@ -9,7 +9,6 @@
#include "base/logging.h"
#include "base/memory/scoped_ptr.h"
-#include "media/audio/audio_util.h"
#include "media/base/audio_buffer.h"
#include "media/base/audio_bus.h"
#include "media/filters/wsola_internals.h"
diff --git a/media/filters/audio_renderer_impl.cc b/media/filters/audio_renderer_impl.cc
index bcf3cb7..199a227 100644
--- a/media/filters/audio_renderer_impl.cc
+++ b/media/filters/audio_renderer_impl.cc
@@ -14,7 +14,6 @@
#include "base/logging.h"
#include "base/message_loop/message_loop_proxy.h"
#include "base/metrics/histogram.h"
-#include "media/audio/audio_util.h"
#include "media/base/audio_buffer.h"
#include "media/base/audio_splicer.h"
#include "media/base/bind_to_loop.h"
diff --git a/media/media.gyp b/media/media.gyp
index a0d655c..36a1bdd 100644
--- a/media/media.gyp
+++ b/media/media.gyp
@@ -104,8 +104,6 @@
'audio/audio_power_monitor.cc',
'audio/audio_power_monitor.h',
'audio/audio_source_diverter.h',
- 'audio/audio_util.cc',
- 'audio/audio_util.h',
'audio/clockless_audio_sink.cc',
'audio/clockless_audio_sink.h',
'audio/cras/audio_manager_cras.cc',
@@ -1475,7 +1473,7 @@
'template_deps': ['video/capture/android/imageformat_list.h'],
},
'includes': [ '../build/android/java_cpp_template.gypi' ],
- },
+ },
],
}],
['media_use_ffmpeg==1', {