Mercurial > mplayer.hg
changeset 28185:a3ec147048ce
Avoid a uselessly high number of wakeups when playing audio-only files.
author | reimar |
---|---|
date | Thu, 01 Jan 2009 10:24:19 +0000 |
parents | 0fb5551413f7 |
children | 79aef31ed618 |
files | mplayer.c |
diffstat | 1 files changed, 4 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/mplayer.c Thu Jan 01 09:47:21 2009 +0000 +++ b/mplayer.c Thu Jan 01 10:24:19 2009 +0000 @@ -2015,6 +2015,7 @@ current_module="play_audio"; while (1) { + int sleep_time; // 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 // in get_space() @@ -2026,7 +2027,9 @@ // handle audio-only case: // this is where mplayer sleeps during audio-only playback // 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) {