Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1941)

Unified Diff: content/renderer/media/audio_hardware.cc

Issue 9395057: Fix muted audio when playback rate != 1.0 or 0.0 (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Rebase to ToT and issue 9442005 Created 8 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: content/renderer/media/audio_hardware.cc
diff --git a/content/renderer/media/audio_hardware.cc b/content/renderer/media/audio_hardware.cc
index 1f49fdb991103682a94fe09a49f9693b51dff643..b65085714d52ec8c93bb75496edd43e738f83f56 100644
--- a/content/renderer/media/audio_hardware.cc
+++ b/content/renderer/media/audio_hardware.cc
@@ -49,28 +49,17 @@ size_t GetOutputBufferSize() {
}
size_t GetHighLatencyOutputBufferSize(int sample_rate) {
- // 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;
+ // kNominalBufferSize has been tested on Windows, Mac OS X, and Linux
+ // using the low-latency audio codepath (SyncSocket implementation
Chris Rogers 2012/02/23 23:39:54 Sorry for causing all the confusion with the doubl
vrk (LEFT CHROMIUM) 2012/02/27 18:19:13 Oh good catch! I opted for 2. Thanks!
+ // with the AUDIO_PCM_LINEAR flag.
+ const size_t kNominalBufferSize = 2048;
+
+ if (sample_rate <= 48000)
+ return kNominalBufferSize;
+ else if (sample_rate <= 96000)
+ return kNominalBufferSize * 2;
+
+ return kNominalBufferSize * 4;
}
uint32 GetInputChannelCount() {
« no previous file with comments | « no previous file | content/renderer/media/audio_renderer_impl.cc » ('j') | media/filters/audio_renderer_algorithm_base.cc » ('J')

Powered by Google App Engine
This is Rietveld 408576698