Commit fb3612d9 authored by Christophe Massiot's avatar Christophe Massiot

* Added sanity checks for PTS in the future.

parent 9fba7a4b
......@@ -51,7 +51,7 @@
#ifdef SYS_BEOS
# define CONFIG_DIR "config/settings/VideoLAN Client"
#elif SYS_DARWIN
# define CONFIG_DIR "Library/Preferences/VLC"
# define CONFIG_DIR "Library/Preferences/VLC"
#elif defined( WIN32 ) || defined( UNDER_CE )
# define CONFIG_DIR "vlc"
#else
......@@ -144,6 +144,10 @@
/* Max number of inputs */
#define AOUT_MAX_INPUTS 5
/* Buffers which arrive in advance of more than AOUT_MAX_ADVANCE_TIME
* will be considered as bogus and be trashed */
#define AOUT_MAX_ADVANCE_TIME (mtime_t)(DEFAULT_PTS_DELAY * 3)
/* Buffers which arrive in advance of more than AOUT_MAX_PREPARE_TIME
* will cause the calling thread to sleep */
#define AOUT_MAX_PREPARE_TIME (mtime_t)(.5*CLOCK_FREQ)
......@@ -222,7 +226,7 @@
/* Pictures which are VOUT_BOGUS_DELAY or more in advance probably have
* a bogus PTS and won't be displayed */
#define VOUT_BOGUS_DELAY ((int)(0.800*CLOCK_FREQ))
#define VOUT_BOGUS_DELAY ((mtime_t)(DEFAULT_PTS_DELAY * 3))
/* Delay (in microseconds) before an idle screen is displayed */
#define VOUT_IDLE_DELAY (5*CLOCK_FREQ)
......
......@@ -2,7 +2,7 @@
* dec.c : audio output API towards decoders
*****************************************************************************
* Copyright (C) 2002 VideoLAN
* $Id: dec.c,v 1.7 2003/02/23 01:25:26 massiot Exp $
* $Id: dec.c,v 1.8 2003/02/26 18:15:33 massiot Exp $
*
* Authors: Christophe Massiot <massiot@via.ecp.fr>
*
......@@ -285,6 +285,14 @@ int aout_DecPlay( aout_instance_t * p_aout, aout_input_t * p_input,
return -1;
}
if ( p_buffer->start_date > mdate() + AOUT_MAX_ADVANCE_TIME )
{
msg_Warn( p_aout, "received buffer in the future ("I64Fd")",
p_buffer->start_date - mdate());
aout_BufferFree( p_buffer );
return -1;
}
p_buffer->end_date = p_buffer->start_date
+ (mtime_t)(p_buffer->i_nb_samples * 1000000)
/ p_input->input.i_rate;
......
......@@ -5,7 +5,7 @@
* thread, and destroy a previously oppened video output thread.
*****************************************************************************
* Copyright (C) 2000-2001 VideoLAN
* $Id: video_output.c,v 1.212 2003/02/09 23:42:06 sigmunau Exp $
* $Id: video_output.c,v 1.213 2003/02/26 18:15:33 massiot Exp $
*
* Authors: Vincent Seguin <seguin@via.ecp.fr>
*
......@@ -651,7 +651,7 @@ static void RunThread( vout_thread_t *p_vout)
}
}
}
/* If we found better than the last picture, destroy it */
if( p_last_picture && p_picture != p_last_picture )
{
......@@ -698,8 +698,7 @@ static void RunThread( vout_thread_t *p_vout)
continue;
}
#if 0
/* Removed because it causes problems for some people --Meuuh */
if( display_date > current_date + VOUT_BOGUS_DELAY )
{
/* Picture is waaay too early: it will be destroyed */
......@@ -716,13 +715,13 @@ static void RunThread( vout_thread_t *p_vout)
p_picture->i_status = DESTROYED_PICTURE;
p_vout->i_heap_size--;
}
intf_WarnMsg( 1, "vout warning: early picture skipped "
"("I64Fd")", display_date - current_date );
msg_Warn( p_vout, "vout warning: early picture skipped "
"("I64Fd")", display_date - current_date );
vlc_mutex_unlock( &p_vout->picture_lock );
continue;
}
#endif
if( display_date > current_date + VOUT_DISPLAY_DELAY )
{
/* A picture is ready to be rendered, but its rendering date
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment