summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authordalecurtis@google.com <dalecurtis@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2012-12-04 02:59:52 +0000
committerdalecurtis@google.com <dalecurtis@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2012-12-04 02:59:52 +0000
commit9dca064cd55041e8b8f7f52634b00aa73f9c1e4a (patch)
treec2eabcd5c0ca9a086fcc992af63358f2c443edc0
parent4e38f7d22d2fa610912e001f4f0f42fea8800cca (diff)
downloadchromium_src-9dca064cd55041e8b8f7f52634b00aa73f9c1e4a.zip
chromium_src-9dca064cd55041e8b8f7f52634b00aa73f9c1e4a.tar.gz
chromium_src-9dca064cd55041e8b8f7f52634b00aa73f9c1e4a.tar.bz2
Boost WaveOut thread priority for background audio.
XP seems to be lowering the priority of the thread responding to audio callbacks when backgrounded, causing glitching. BUG=161307 TEST=background playback on XP works without issue. Review URL: https://codereview.chromium.org/11316284 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@170870 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r--media/audio/win/waveout_output_win.cc7
1 files changed, 7 insertions, 0 deletions
diff --git a/media/audio/win/waveout_output_win.cc b/media/audio/win/waveout_output_win.cc
index f18b2fa..48f41e1 100644
--- a/media/audio/win/waveout_output_win.cc
+++ b/media/audio/win/waveout_output_win.cc
@@ -11,6 +11,8 @@
#include "base/basictypes.h"
#include "base/debug/trace_event.h"
#include "base/logging.h"
+#include "base/message_loop_proxy.h"
+#include "base/threading/platform_thread.h"
#include "media/audio/audio_io.h"
#include "media/audio/audio_util.h"
#include "media/audio/win/audio_manager_win.h"
@@ -108,6 +110,11 @@ PCMWaveOutAudioOutputStream::PCMWaveOutAudioOutputStream(
}
format_.SubFormat = KSDATAFORMAT_SUBTYPE_PCM;
format_.Samples.wValidBitsPerSample = params.bits_per_sample();
+
+ // Boost thread priority. Required for glitch free background audio.
+ DCHECK(manager_->GetMessageLoop()->BelongsToCurrentThread());
+ base::PlatformThread::SetThreadPriority(
+ GetCurrentThread(), base::kThreadPriority_RealtimeAudio);
}
PCMWaveOutAudioOutputStream::~PCMWaveOutAudioOutputStream() {