#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
/* 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)
/* 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)
* 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>
*
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;
* 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>
*
}
}
}
-
+
/* If we found better than the last picture, destroy it */
if( p_last_picture && p_picture != p_last_picture )
{
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 */
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