[MPlayer-cvslog] r28220 - trunk/mplayer.c

reimar subversion at mplayerhq.hu
Thu Jan 1 11:24:20 CET 2009


Author: reimar
Date: Thu Jan  1 11:24:19 2009
New Revision: 28220

Log:
Avoid a uselessly high number of wakeups when playing audio-only files.

Modified:
   trunk/mplayer.c

Modified: trunk/mplayer.c
==============================================================================
--- trunk/mplayer.c	Thu Jan  1 10:47:21 2009	(r28219)
+++ trunk/mplayer.c	Thu Jan  1 11:24:19 2009	(r28220)
@@ -2015,6 +2015,7 @@ static int fill_audio_out_buffers(void)
     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 @@ static int fill_audio_out_buffers(void)
 	// 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) {



More information about the MPlayer-cvslog mailing list