| // Copyright (c) 2011 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. |
| // |
| // The avrt namespace encapsulates the details needed to support MMCSS. |
| // |
| // The Multimedia Class Scheduler service (MMCSS) enables multimedia |
| // applications to ensure that their time-sensitive processing receives |
| // prioritized access to CPU resources. This service enables multimedia |
| // applications to utilize as much of the CPU as possible without denying |
| // CPU resources to lower-priority applications. |
| // MMCSS requires Windows Vista or higher and that the Avrt DLL is loaded. |
| // |
| // TODO(henrika): refactor and merge into existing thread implementation |
| // for Windows to ensure that MMCSS can be enabled for all threads. |
| // |
| #ifndef MEDIA_AUDIO_WIN_AVRT_WRAPPER_WIN_H_ |
| #define MEDIA_AUDIO_WIN_AVRT_WRAPPER_WIN_H_ |
| |
| #include <windows.h> |
| #include <avrt.h> |
| |
| #include "base/basictypes.h" |
| |
| namespace avrt { |
| |
| // Loads the Avrt.dll which is available on Windows Vista and later. |
| bool Initialize(); |
| |
| // Function wrappers for the underlying MMCSS functions. |
| bool AvRevertMmThreadCharacteristics(HANDLE avrt_handle); |
| HANDLE AvSetMmThreadCharacteristics(const wchar_t* task_name, |
| DWORD* task_index); |
| bool AvSetMmThreadPriority(HANDLE avrt_handle, AVRT_PRIORITY priority); |
| |
| } // namespace avrt |
| |
| #endif // MEDIA_AUDIO_WIN_AVRT_WRAPPER_WIN_H_ |
| |