mirror of https://github.com/mpv-player/mpv
df1922babe
Uses WASAPI in shared mode by default, add :exclusive flag to choose exclusive mode (duh). WASAPI works somewhat different in shared mode: the OS suggests the sample format to use, and the GetBuffer call is done slightly differently. The shared mode driver does not consume audio as fast as it notifies the thread; we need to check how much we're allowed to write. Not doing this correctly results in spamming the console with AUDCLNT_E_BUFFER_TOO_LARGE errors. When guessing formats for exclusive mode, try several sample size and sample rate combinations instead of just falling back to s16le@44100hz. If none of the rates are accepted, tries remixing >6 channels to 5.1 channels. Failing that, tries remixing to stereo. Failing everything, including the CD Red Book format, what else is left to test? Calculate buffer_block_size based on the configured channels and bytes per sample; MSDN docs say nBlockAlign is not guaranteed to be set for anything but integer PCM formats. |
||
---|---|---|
.. | ||
decode | ||
filter | ||
out | ||
audio.c | ||
audio.h | ||
chmap.c | ||
chmap.h | ||
chmap_sel.c | ||
chmap_sel.h | ||
fmt-conversion.c | ||
fmt-conversion.h | ||
format.c | ||
format.h | ||
mixer.c | ||
mixer.h | ||
reorder_ch.c | ||
reorder_ch.h |