diff options
author | crogers@google.com <crogers@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-03-25 22:55:42 +0000 |
---|---|---|
committer | crogers@google.com <crogers@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-03-25 22:55:42 +0000 |
commit | 27b76e0b91015b230b32237a1d2f71a83c23f6ba (patch) | |
tree | e43d35a4ccb434eec6db51bf6f58204d0c4387c3 /content | |
parent | d8e27a80ff001fbd0a3703f2fdf488ebecb77d33 (diff) | |
download | chromium_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.cc | 18 |
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() { |