summaryrefslogtreecommitdiff
path: root/src/xine-engine
diff options
context:
space:
mode:
authorDarren Salt <linux@youmustbejoking.demon.co.uk>2006-03-25 01:17:44 +0000
committerDarren Salt <linux@youmustbejoking.demon.co.uk>2006-03-25 01:17:44 +0000
commitaafaef28c00d73538c728e38aac3e79f0784dd8e (patch)
tree75bb7d5d591b45c7f7345a50184b40a9ef11ba86 /src/xine-engine
parent5309192ae2dcf78a4b1a6aacfda485b40f49f8ca (diff)
downloadxine-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.c6
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;