diff options
author | Darren Salt <linux@youmustbejoking.demon.co.uk> | 2006-03-25 01:17:44 +0000 |
---|---|---|
committer | Darren Salt <linux@youmustbejoking.demon.co.uk> | 2006-03-25 01:17:44 +0000 |
commit | aafaef28c00d73538c728e38aac3e79f0784dd8e (patch) | |
tree | 75bb7d5d591b45c7f7345a50184b40a9ef11ba86 /src/xine-engine | |
parent | 5309192ae2dcf78a4b1a6aacfda485b40f49f8ca (diff) | |
download | xine-lib-aafaef28c00d73538c728e38aac3e79f0784dd8e.tar.gz xine-lib-aafaef28c00d73538c728e38aac3e79f0784dd8e.tar.bz2 |
vo_loop(): take playback speed into account when calculating how long to sleep.
For speeds < 100%, vo_loop() won't sleep for long enough. Not a problem.
For speeds > 100%, it may sleep for too long; consequently, frames may be
dropped.
(Reinhard Nissl)
CVS patchset: 7947
CVS date: 2006/03/25 01:17:44
Diffstat (limited to 'src/xine-engine')
-rw-r--r-- | src/xine-engine/video_out.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/src/xine-engine/video_out.c b/src/xine-engine/video_out.c index 603bd5b39..2bfdd91ad 100644 --- a/src/xine-engine/video_out.c +++ b/src/xine-engine/video_out.c @@ -17,7 +17,7 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA * - * $Id: video_out.c,v 1.223 2006/01/27 07:46:15 tmattern Exp $ + * $Id: video_out.c,v 1.224 2006/03/25 01:17:44 dsalt Exp $ * * frame allocation / queuing / scheduling / output functions */ @@ -63,7 +63,7 @@ * in the same format as requested (avoid unnecessary free/alloc in * vo driver). up to 25% less cpu load using deinterlace with film mode. */ -#define EXPERIMENTAL_FRAME_QUEUE_OPTIMIZATION 1 +#define EXPERIMENTAL_FRAME_QUEUE_OPTIMIZATION 0 static vo_frame_t * crop_frame( xine_video_port_t *this_gen, vo_frame_t *img ); @@ -1196,7 +1196,7 @@ static void *video_out_loop (void *this_gen) { paused_loop (this, vpts); if (next_frame_vpts) { - usec_to_sleep = (next_frame_vpts - vpts) * 100 / 9; + usec_to_sleep = (next_frame_vpts - vpts) * 100 * XINE_FINE_SPEED_NORMAL / (9 * this->clock->speed); } else { /* we don't know when the next frame is due, only wait a little */ usec_to_sleep = 1000; |