/* When creating or destroying threads in blocking mode, delay to poll thread
* status */
-#define THREAD_SLEEP ((int)(0.010*CLOCK_FREQ))
+#define THREAD_SLEEP ((mtime_t)(0.010*CLOCK_FREQ))
/* When a thread waits on a condition in debug mode, delay to wait before
* outputting an error message (in second) */
#define THREAD_COND_TIMEOUT 5
+/* The configuration file and directory */
+#ifdef SYS_BEOS
+# define CONFIG_DIR "config/settings"
+#elif defined( WIN32 )
+# define CONFIG_DIR "vlc"
+#else
+# define CONFIG_DIR ".vlc"
+#endif
+#define CONFIG_FILE "vlcrc"
+
/*****************************************************************************
* Interface configuration
*****************************************************************************/
/* Base delay in micro second for interface sleeps */
-#define INTF_IDLE_SLEEP ((int)(0.050*CLOCK_FREQ))
+#define INTF_IDLE_SLEEP ((mtime_t)(0.050*CLOCK_FREQ))
/* Step for changing gamma, and minimum and maximum values */
#define INTF_GAMMA_STEP .1
*****************************************************************************/
/* XXX?? */
-#define INPUT_IDLE_SLEEP ((int)(0.100*CLOCK_FREQ))
+#define INPUT_IDLE_SLEEP ((mtime_t)(0.100*CLOCK_FREQ))
/*
* General limitations
* mark it to be presented */
#define DEFAULT_PTS_DELAY (mtime_t)(.2*CLOCK_FREQ)
+/* DVD and VCD devices */
+#ifndef WIN32
+# define DVD_DEVICE "/dev/dvd"
+# define VCD_DEVICE "/dev/cdrom"
+#else
+# define DVD_DEVICE "D"
+# define VCD_DEVICE "D"
+#endif
+
/*****************************************************************************
* Audio configuration
*****************************************************************************/
/* Volume */
#define VOLUME_DEFAULT 256
-#define VOLUME_STEP 128
+#define VOLUME_STEP 32
#define VOLUME_MAX 1024
+#define VOLUME_MIN 0
+
+/* Max number of pre-filters per input, and max number of post-filters */
+#define AOUT_MAX_FILTERS 10
+
+/* Max number of inputs */
+#define AOUT_MAX_INPUTS 5
-/* Number of audio output frames contained in an audio output fifo.
- * (AOUT_FIFO_SIZE + 1) must be a power of 2, in order to optimise the
- * %(AOUT_FIFO_SIZE + 1) operation with an &AOUT_FIFO_SIZE.
- * With 255 we have at least 255*384/2/48000=1 second of sound */
-#define AOUT_FIFO_SIZE 255
+/* 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)
-/* Maximum number of audio fifos. The value of AOUT_MAX_FIFOS should be a power
- * of two, in order to optimize the '/AOUT_MAX_FIFOS' and '*AOUT_MAX_FIFOS'
- * operations with '>>' and '<<' (gcc changes this at compilation-time) */
-#define AOUT_MAX_FIFOS 2
+/* Buffers which arrive after pts - AOUT_MIN_PREPARE_TIME will be trashed
+ * to avoid too heavy resampling */
+#define AOUT_MIN_PREPARE_TIME (mtime_t)(.04*CLOCK_FREQ)
-/* Duration (in microseconds) of an audio output buffer should be :
- * - short, in order to be able to play a new song very quickly (especially a
- * song from the interface)
- * - long, in order to perform the buffer calculations as few as possible */
-#define AOUT_BUFFER_DURATION 50000
+/* Max acceptable delay between the coded PTS and the actual presentation
+ * time, without resampling */
+#define AOUT_PTS_TOLERANCE (mtime_t)(.02*CLOCK_FREQ)
/*****************************************************************************
* Video configuration
* late, the thread will perform an idle loop. This time should be
* at least VOUT_IDLE_SLEEP plus the time required to render a few
* images, to avoid trashing of decoded images */
-#define VOUT_DISPLAY_DELAY ((int)(0.500*CLOCK_FREQ))
+#define VOUT_DISPLAY_DELAY ((int)(0.200*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))
/* Delay (in microseconds) before an idle screen is displayed */
#define VOUT_IDLE_DELAY (5*CLOCK_FREQ)
#define VOUT_FPS_SAMPLES 20
/* Better be in advance when awakening than late... */
-#define VOUT_MWAIT_TOLERANCE ((int)(0.020*CLOCK_FREQ))
+#define VOUT_MWAIT_TOLERANCE ((mtime_t)(0.020*CLOCK_FREQ))
/* Time to sleep when waiting for a buffer (from vout or the video fifo).
* It should be approximately the time needed to perform a complete picture
* loop. Since it only happens when the video heap is full, it does not need
* to be too low, even if it blocks the decoder. */
-#define VOUT_OUTMEM_SLEEP ((int)(0.020*CLOCK_FREQ))
+#define VOUT_OUTMEM_SLEEP ((mtime_t)(0.020*CLOCK_FREQ))
/* The default video output window title */
#define VOUT_TITLE "VideoLAN Client " VERSION
* Video parser configuration
*****************************************************************************/
-#define VPAR_IDLE_SLEEP ((int)(0.010*CLOCK_FREQ))
+#define VPAR_IDLE_SLEEP ((mtime_t)(0.010*CLOCK_FREQ))
/* Optimization level, from 0 to 2 - 1 is generally a good compromise. Remember
* that raising this level dramatically lengthens the compilation time. */
* Video decoder configuration
*****************************************************************************/
-#define VDEC_IDLE_SLEEP ((int)(0.100*CLOCK_FREQ))
+#define VDEC_IDLE_SLEEP ((mtime_t)(0.100*CLOCK_FREQ))
/* Maximum range of values out of the IDCT + motion compensation. */
#define VDEC_CROPRANGE 2048
/* Maximal size of the message queue - in case of overflow, all messages in the
* queue are printed, but not sent to the threads */
-#define INTF_MSG_QSIZE 256
+#define VLC_MSG_QSIZE 256
+
+/* Maximal depth of the object tree output by vlc_dumpstructure */
+#define MAX_DUMPSTRUCTURE_DEPTH 100