summaryrefslogtreecommitdiffstats
path: root/content
diff options
context:
space:
mode:
authorcrogers@google.com <crogers@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2013-03-25 22:55:42 +0000
committercrogers@google.com <crogers@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2013-03-25 22:55:42 +0000
commit27b76e0b91015b230b32237a1d2f71a83c23f6ba (patch)
treee43d35a4ccb434eec6db51bf6f58204d0c4387c3 /content
parentd8e27a80ff001fbd0a3703f2fdf488ebecb77d33 (diff)
downloadchromium_src-27b76e0b91015b230b32237a1d2f71a83c23f6ba.zip
chromium_src-27b76e0b91015b230b32237a1d2f71a83c23f6ba.tar.gz
chromium_src-27b76e0b91015b230b32237a1d2f71a83c23f6ba.tar.bz2
In some rare cases it has been found that Windows returns a sample-rate of 0, even though it's capable of
rendering audio with WASAPI. For the Web Audio API, Let's make sure to return a sane fallback sample-rate. BUG=222718 TEST=none Review URL: https://codereview.chromium.org/12937017 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@190506 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'content')
-rw-r--r--content/renderer/renderer_webkitplatformsupport_impl.cc18
1 files changed, 17 insertions, 1 deletions
diff --git a/content/renderer/renderer_webkitplatformsupport_impl.cc b/content/renderer/renderer_webkitplatformsupport_impl.cc
index aaf076a..33f9707 100644
--- a/content/renderer/renderer_webkitplatformsupport_impl.cc
+++ b/content/renderer/renderer_webkitplatformsupport_impl.cc
@@ -633,7 +633,23 @@ bool RendererWebKitPlatformSupportImpl::isThreadedCompositingEnabled() {
double RendererWebKitPlatformSupportImpl::audioHardwareSampleRate() {
RenderThreadImpl* thread = RenderThreadImpl::current();
- return thread->GetAudioHardwareConfig()->GetOutputSampleRate();
+ int sample_rate = thread->GetAudioHardwareConfig()->GetOutputSampleRate();
+
+ // In some rare cases it has been found that Windows returns
+ // a sample-rate of 0.
+ // Let's make sure to return a sane fallback sample-rate.
+ // http://crbug.com/222718
+ static const int kMinSampleRate = 22050;
+ static const int kMaxSampleRate = 192000;
+#if defined(OS_MACOSX)
+ static const int kFallbackSampleRate = 44100;
+#else
+ static const int kFallbackSampleRate = 48000;
+#endif
+ if (sample_rate < kMinSampleRate || sample_rate > kMaxSampleRate)
+ sample_rate = kFallbackSampleRate;
+
+ return sample_rate;
}
size_t RendererWebKitPlatformSupportImpl::audioHardwareBufferSize() {