mirror of
https://github.com/mpv-player/mpv
synced 2025-05-01 15:50:33 +00:00
win32: add option to set VO MMCSS profile
This was requested.
This commit is contained in:
parent
9db50c6760
commit
159eb3f962
@ -3550,6 +3550,10 @@ Miscellaneous
|
||||
other options such as e.g. user agent are not available with all protocols,
|
||||
and printing errors for unknown options would end up being too noisy.)
|
||||
|
||||
``--vo-mmcss-profile=<name>``
|
||||
(Windows only.)
|
||||
Set the MMCSS profile for the video renderer thread (default: ``Playback``).
|
||||
|
||||
``--priority=<prio>``
|
||||
(Windows only.)
|
||||
Set process priority for mpv according to the predefined priorities
|
||||
|
@ -977,6 +977,7 @@ cat > $TMPC << EOF
|
||||
#define HAVE_C11_TLS 1
|
||||
#define HAVE_EGL_ANGLE 0
|
||||
#define HAVE_GPL3 1
|
||||
#define HAVE_WIN32 0
|
||||
|
||||
#ifdef __OpenBSD__
|
||||
#define DEFAULT_CDROM_DEVICE "/dev/rcd0c"
|
||||
|
@ -456,6 +456,10 @@ const m_option_t mp_opts[] = {
|
||||
({"auto", 0}, {"no", -1}, {"yes", 1})),
|
||||
OPT_FLAG("x11-bypass-compositor", vo.x11_bypass_compositor, 0),
|
||||
#endif
|
||||
#if HAVE_WIN32
|
||||
OPT_STRING("vo-mmcss-profile", vo.mmcss_profile, M_OPT_FIXED),
|
||||
#endif
|
||||
|
||||
OPT_STRING("heartbeat-cmd", heartbeat_cmd, 0),
|
||||
OPT_FLOAT("heartbeat-interval", heartbeat_interval, CONF_MIN, 0),
|
||||
|
||||
@ -701,6 +705,7 @@ const struct MPOpts mp_default_opts = {
|
||||
.WinID = -1,
|
||||
.window_scale = 1.0,
|
||||
.x11_bypass_compositor = 1,
|
||||
.mmcss_profile = "Playback",
|
||||
},
|
||||
.allow_win_drag = 1,
|
||||
.wintitle = "${?media-title:${media-title}}${!media-title:No file} - mpv",
|
||||
|
@ -43,6 +43,8 @@ typedef struct mp_vo_opts {
|
||||
float monitor_pixel_aspect;
|
||||
int force_window_position;
|
||||
|
||||
char *mmcss_profile;
|
||||
|
||||
// vo_wayland, vo_drm
|
||||
struct sws_opts *sws_opts;
|
||||
// vo_opengl, vo_opengl_cb
|
||||
|
@ -1327,7 +1327,11 @@ int vo_w32_init(struct vo *vo)
|
||||
// While the UI runs in its own thread, the thread in which this function
|
||||
// runs in will be the renderer thread. Apply magic MMCSS cargo-cult,
|
||||
// which might stop Windows from throttling clock rate and so on.
|
||||
w32->avrt_handle = AvSetMmThreadCharacteristicsW(L"Playback", &(DWORD){0});
|
||||
if (vo->opts->mmcss_profile[0]) {
|
||||
wchar_t *profile = mp_from_utf8(NULL, vo->opts->mmcss_profile);
|
||||
w32->avrt_handle = AvSetMmThreadCharacteristicsW(profile, &(DWORD){0});
|
||||
talloc_free(profile);
|
||||
}
|
||||
|
||||
return 1;
|
||||
fail:
|
||||
|
Loading…
Reference in New Issue
Block a user