mirror of
https://github.com/mpv-player/mpv
synced 2025-03-21 10:51:51 +00:00
Avoid a uselessly high number of wakeups when playing audio-only files.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@28220 b3059339-0415-0410-9bf9-f77b7e298cf2
This commit is contained in:
parent
756e662b68
commit
c9ba917877
@ -2015,6 +2015,7 @@ static int fill_audio_out_buffers(void)
|
|||||||
current_module="play_audio";
|
current_module="play_audio";
|
||||||
|
|
||||||
while (1) {
|
while (1) {
|
||||||
|
int sleep_time;
|
||||||
// all the current uses of ao_data.pts seem to be in aos that handle
|
// all the current uses of ao_data.pts seem to be in aos that handle
|
||||||
// sync completely wrong; there should be no need to use ao_data.pts
|
// sync completely wrong; there should be no need to use ao_data.pts
|
||||||
// in get_space()
|
// in get_space()
|
||||||
@ -2026,7 +2027,9 @@ static int fill_audio_out_buffers(void)
|
|||||||
// handle audio-only case:
|
// handle audio-only case:
|
||||||
// this is where mplayer sleeps during audio-only playback
|
// this is where mplayer sleeps during audio-only playback
|
||||||
// to avoid 100% CPU use
|
// to avoid 100% CPU use
|
||||||
usec_sleep(10000); // Wait a tick before retry
|
sleep_time = (ao_data.outburst - bytes_to_write) * 1000 / ao_data.samplerate;
|
||||||
|
if (sleep_time < 10) sleep_time = 10; // limit to 100 wakeups per second
|
||||||
|
usec_sleep(sleep_time * 1000);
|
||||||
}
|
}
|
||||||
|
|
||||||
while (bytes_to_write) {
|
while (bytes_to_write) {
|
||||||
|
Loading…
Reference in New Issue
Block a user