00001 /***************************************************************************** 00002 * vlc_config.h: limits and configuration 00003 * Defines all compilation-time configuration constants and size limits 00004 ***************************************************************************** 00005 * Copyright (C) 1999-2003 the VideoLAN team 00006 * 00007 * Authors: Vincent Seguin <seguin@via.ecp.fr> 00008 * Samuel Hocevar <sam@via.ecp.fr> 00009 * 00010 * This program is free software; you can redistribute it and/or modify 00011 * it under the terms of the GNU General Public License as published by 00012 * the Free Software Foundation; either version 2 of the License, or 00013 * (at your option) any later version. 00014 * 00015 * This program is distributed in the hope that it will be useful, 00016 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00017 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00018 * GNU General Public License for more details. 00019 * 00020 * You should have received a copy of the GNU General Public License 00021 * along with this program; if not, write to the Free Software 00022 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA. 00023 *****************************************************************************/ 00024 00025 /** 00026 * \file 00027 * This file defines of values used in interface, vout, aout and vlc core functions. 00028 */ 00029 00030 /* Conventions regarding names of symbols and variables 00031 * ---------------------------------------------------- 00032 * 00033 * - Symbols should begin with a prefix indicating in which module they are 00034 * used, such as INTF_, VOUT_ or AOUT_. 00035 */ 00036 00037 /***************************************************************************** 00038 * General configuration 00039 *****************************************************************************/ 00040 00041 /* All timestamp below or equal to this define are invalid/unset 00042 * XXX the numerical value is 0 because of historical reason and will change.*/ 00043 #define VLC_TS_INVALID (0) 00044 00045 #define CLOCK_FREQ INT64_C(1000000) 00046 00047 /* When creating or destroying threads in blocking mode, delay to poll thread 00048 * status */ 00049 #define THREAD_SLEEP ((mtime_t)(0.010*CLOCK_FREQ)) 00050 00051 /***************************************************************************** 00052 * Interface configuration 00053 *****************************************************************************/ 00054 00055 /* Base delay in micro second for interface sleeps */ 00056 #define INTF_IDLE_SLEEP ((mtime_t)(0.050*CLOCK_FREQ)) 00057 00058 /* Step for changing gamma, and minimum and maximum values */ 00059 #define INTF_GAMMA_STEP .1 00060 #define INTF_GAMMA_LIMIT 3 00061 00062 /***************************************************************************** 00063 * Input thread configuration 00064 *****************************************************************************/ 00065 00066 #define DEFAULT_INPUT_ACTIVITY 1 00067 #define TRANSCODE_ACTIVITY 10 00068 00069 /* Used in ErrorThread */ 00070 #define INPUT_IDLE_SLEEP ((mtime_t)(0.100*CLOCK_FREQ)) 00071 00072 /* Time to wait in case of read error */ 00073 #define INPUT_ERROR_SLEEP ((mtime_t)(0.10*CLOCK_FREQ)) 00074 00075 /* Number of read() calls needed until we check the file size through 00076 * fstat() */ 00077 #define INPUT_FSTAT_NB_READS 10 00078 00079 /* 00080 * General limitations 00081 */ 00082 00083 /* Duration between the time we receive the data packet, and the time we will 00084 * mark it to be presented */ 00085 #define DEFAULT_PTS_DELAY (mtime_t)(.3*CLOCK_FREQ) 00086 00087 /* DVD and VCD devices */ 00088 #if !defined( WIN32 ) && !defined( UNDER_CE ) 00089 # define CD_DEVICE "/dev/cdrom" 00090 # define DVD_DEVICE "/dev/dvd" 00091 #else 00092 # define CD_DEVICE "D:" 00093 # define DVD_DEVICE NULL 00094 #endif 00095 #define VCD_DEVICE CD_DEVICE 00096 #define CDAUDIO_DEVICE CD_DEVICE 00097 00098 /***************************************************************************** 00099 * Audio configuration 00100 *****************************************************************************/ 00101 00102 /* Volume */ 00103 /* If you are coding an interface, please see src/audio_output/intf.c */ 00104 #define AOUT_VOLUME_DEFAULT 256 00105 #define AOUT_VOLUME_STEP 32 00106 #define AOUT_VOLUME_MAX 1024 00107 #define AOUT_VOLUME_MIN 0 00108 00109 /* Max number of pre-filters per input, and max number of post-filters */ 00110 #define AOUT_MAX_FILTERS 10 00111 00112 /* Max number of inputs */ 00113 #define AOUT_MAX_INPUTS 5 00114 00115 /* Buffers which arrive in advance of more than AOUT_MAX_ADVANCE_TIME 00116 * will be considered as bogus and be trashed */ 00117 #define AOUT_MAX_ADVANCE_TIME (mtime_t)(DEFAULT_PTS_DELAY * 5) 00118 00119 /* Buffers which arrive in advance of more than AOUT_MAX_PREPARE_TIME 00120 * will cause the calling thread to sleep */ 00121 #define AOUT_MAX_PREPARE_TIME (mtime_t)(.5*CLOCK_FREQ) 00122 00123 /* Buffers which arrive after pts - AOUT_MIN_PREPARE_TIME will be trashed 00124 * to avoid too heavy resampling */ 00125 #define AOUT_MIN_PREPARE_TIME (mtime_t)(.04*CLOCK_FREQ) 00126 00127 /* Max acceptable delay between the coded PTS and the actual presentation 00128 * time, without resampling */ 00129 #define AOUT_PTS_TOLERANCE (mtime_t)(.04*CLOCK_FREQ) 00130 00131 /* Max acceptable resampling (in %) */ 00132 #define AOUT_MAX_RESAMPLING 10 00133 00134 /***************************************************************************** 00135 * SPU configuration 00136 *****************************************************************************/ 00137 00138 /* Buffer must avoid arriving more than SPU_MAX_PREPARE_TIME in advanced to 00139 * the SPU */ 00140 #define SPU_MAX_PREPARE_TIME ((mtime_t)(0.5*CLOCK_FREQ)) 00141 00142 /***************************************************************************** 00143 * Video configuration 00144 *****************************************************************************/ 00145 00146 /* 00147 * Default settings for video output threads 00148 */ 00149 00150 /* Multiplier value for aspect ratio calculation (2^7 * 3^3 * 5^3) */ 00151 #define VOUT_ASPECT_FACTOR 432000 00152 00153 /* Maximum width of a scaled source picture - this should be relatively high, 00154 * since higher stream values will result in no display at all. */ 00155 #define VOUT_MAX_WIDTH 4096 00156 00157 /* Number of planes in a picture */ 00158 #define VOUT_MAX_PLANES 5 00159 00160 /* Video heap size - remember that a decompressed picture is big 00161 * (~1 Mbyte) before using huge values */ 00162 #define VOUT_MAX_PICTURES 16 00163 00164 /* Statistics are displayed every n loops (=~ pictures) */ 00165 #define VOUT_STATS_NB_LOOPS 100 00166 00167 /* 00168 * Time settings 00169 */ 00170 00171 /* Time to sleep when waiting for a buffer (from vout or the video fifo). 00172 * It should be approximately the time needed to perform a complete picture 00173 * loop. Since it only happens when the video heap is full, it does not need 00174 * to be too low, even if it blocks the decoder. */ 00175 #define VOUT_OUTMEM_SLEEP ((mtime_t)(0.020*CLOCK_FREQ)) 00176 00177 /* The default video output window title */ 00178 #define VOUT_TITLE "VLC" 00179 00180 /***************************************************************************** 00181 * Messages and console interfaces configuration 00182 *****************************************************************************/ 00183 00184 /* Maximal size of a message to be stored in the mesage queue, 00185 * it is needed when vasprintf is not available */ 00186 #define INTF_MAX_MSG_SIZE 512 00187 00188 /* Maximal size of the message queue - in case of overflow, all messages in the 00189 * queue are printed, but not sent to the threads */ 00190 #define VLC_MSG_QSIZE 256 00191 00192 /* Maximal depth of the object tree output by vlc_dumpstructure */ 00193 #define MAX_DUMPSTRUCTURE_DEPTH 100
1.5.6