19 |
* along with this program ; if not, write to the Free Software |
* along with this program ; if not, write to the Free Software |
20 |
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
21 |
* |
* |
22 |
* $Id: config.h,v 1.3 2004-07-11 08:54:37 syskin Exp $ |
* $Id: config.h,v 1.12 2008-11-27 16:33:32 Isibaar Exp $ |
23 |
* |
* |
24 |
****************************************************************************/ |
****************************************************************************/ |
25 |
#ifndef _CONFIG_H_ |
#ifndef _CONFIG_H_ |
53 |
|
|
54 |
#define XVID_BUILD __TIME__ ", " __DATE__ |
#define XVID_BUILD __TIME__ ", " __DATE__ |
55 |
#define XVID_WEBSITE "http://www.xvid.org/" |
#define XVID_WEBSITE "http://www.xvid.org/" |
56 |
#define XVID_SPECIAL_BUILD "(Vanilla CVS Build)" |
#define XVID_SPECIAL_BUILD "Vanilla CVS Build" |
57 |
|
|
58 |
/* constants */ |
/* constants */ |
59 |
#define CONFIG_2PASS_FILE "\\video.pass" |
#define CONFIG_2PASS_FILE ".\\video.pass" |
60 |
|
|
61 |
/* codec modes */ |
/* codec modes */ |
62 |
#define RC_MODE_1PASS 0 |
#define RC_MODE_1PASS 0 |
93 |
unsigned int greyscale; |
unsigned int greyscale; |
94 |
unsigned int chroma_opt; |
unsigned int chroma_opt; |
95 |
unsigned int bvop_threshold; |
unsigned int bvop_threshold; |
96 |
|
unsigned int cartoon_mode; |
97 |
} zone_t; |
} zone_t; |
98 |
|
|
99 |
|
|
100 |
|
/* this structure represents a quality preset. it encapsulates |
101 |
|
options from the motion and quantizer config pages. */ |
102 |
|
#define QUALITY_GENERAL_STRING "General purpose" |
103 |
|
#define QUALITY_USER_STRING "(User defined)" |
104 |
|
typedef struct { |
105 |
|
char * name; |
106 |
|
/* motion */ |
107 |
|
int motion_search; |
108 |
|
int vhq_mode; |
109 |
|
int vhq_bframe; |
110 |
|
int chromame; |
111 |
|
int turbo; |
112 |
|
int max_key_interval; |
113 |
|
int frame_drop_ratio; |
114 |
|
|
115 |
|
/* quant */ |
116 |
|
int min_iquant; |
117 |
|
int max_iquant; |
118 |
|
int min_pquant; |
119 |
|
int max_pquant; |
120 |
|
int min_bquant; |
121 |
|
int max_bquant; |
122 |
|
int trellis_quant; |
123 |
|
} quality_t; |
124 |
|
|
125 |
|
|
126 |
typedef struct |
typedef struct |
127 |
{ |
{ |
128 |
/********** ATTENTION **********/ |
/********** ATTENTION **********/ |
138 |
char profile_name[MAX_PATH]; |
char profile_name[MAX_PATH]; |
139 |
int profile; /* used internally; *not* written to registry */ |
int profile; /* used internally; *not* written to registry */ |
140 |
|
|
141 |
|
/* quality preset */ |
142 |
|
char quality_name[MAX_PATH]; |
143 |
|
int quality; /* used internally; *not* written to registry */ |
144 |
|
|
145 |
int quant_type; |
int quant_type; |
146 |
BYTE qmatrix_intra[64]; |
BYTE qmatrix_intra[64]; |
147 |
BYTE qmatrix_inter[64]; |
BYTE qmatrix_inter[64]; |
150 |
int tff; |
int tff; |
151 |
int qpel; |
int qpel; |
152 |
int gmc; |
int gmc; |
|
int reduced_resolution; |
|
153 |
int use_bvop; |
int use_bvop; |
154 |
int max_bframes; |
int max_bframes; |
155 |
int bquant_ratio; |
int bquant_ratio; |
156 |
int bquant_offset; |
int bquant_offset; |
157 |
int packed; |
int packed; |
|
int closed_gov; |
|
158 |
int display_aspect_ratio; /* aspect ratio */ |
int display_aspect_ratio; /* aspect ratio */ |
159 |
int ar_x, ar_y; /* picture aspect ratio */ |
int ar_x, ar_y; /* picture aspect ratio */ |
160 |
int par_x, par_y; /* custom pixel aspect ratio */ |
int par_x, par_y; /* custom pixel aspect ratio */ |
196 |
int audio_rate; |
int audio_rate; |
197 |
int audio_size; |
int audio_size; |
198 |
|
|
199 |
/* motion */ |
/* user defined quality settings */ |
200 |
int motion_search; |
quality_t quality_user; |
|
int vhq_mode; |
|
|
int chromame; |
|
|
int cartoon_mode; |
|
|
int turbo; |
|
|
int max_key_interval; |
|
|
int frame_drop_ratio; |
|
|
|
|
|
/* quant */ |
|
|
int min_iquant; |
|
|
int max_iquant; |
|
|
int min_pquant; |
|
|
int max_pquant; |
|
|
int min_bquant; |
|
|
int max_bquant; |
|
|
int trellis_quant; |
|
201 |
|
|
202 |
/* debug */ |
/* debug */ |
203 |
int num_threads; |
int num_threads; |
243 |
#define PROFILE_INTERLACE 0x00000008 |
#define PROFILE_INTERLACE 0x00000008 |
244 |
#define PROFILE_QPEL 0x00000010 |
#define PROFILE_QPEL 0x00000010 |
245 |
#define PROFILE_GMC 0x00000020 |
#define PROFILE_GMC 0x00000020 |
246 |
#define PROFILE_REDUCED 0x00000040 /* dynamic resolution conversion */ |
#define PROFILE_4MV 0x00000040 |
247 |
|
#define PROFILE_PACKED 0x00000080 |
248 |
|
#define PROFILE_EXTRA 0x00000100 |
249 |
|
|
|
#define PROFILE_AS (PROFILE_ADAPTQUANT|PROFILE_BVOP|PROFILE_MPEGQUANT|PROFILE_INTERLACE|PROFILE_QPEL|PROFILE_GMC) |
|
|
#define PROFILE_ARTS (PROFILE_ADAPTQUANT|PROFILE_REDUCED) |
|
250 |
|
|
251 |
static const int PARS[][2] = { |
static const int PARS[][2] = { |
252 |
{1, 1}, |
{1, 1}, |
274 |
int max_acpred_mbs; /* percentage */ |
int max_acpred_mbs; /* percentage */ |
275 |
int max_vbv_size; /* max vbv size (bits) 16368 bits */ |
int max_vbv_size; /* max vbv size (bits) 16368 bits */ |
276 |
int max_video_packet_length; /* bits */ |
int max_video_packet_length; /* bits */ |
277 |
int max_bitrate; /* kbits/s */ |
int max_bitrate; /* bits per second */ |
278 |
|
int vbv_peakrate; /* max bits over anyone second period; 0=don't care */ |
279 |
|
int xvid_max_bframes; /* xvid: max consecutive bframes */ |
280 |
unsigned int flags; |
unsigned int flags; |
281 |
} profile_t; |
} profile_t; |
282 |
|
|
283 |
|
|
284 |
extern const profile_t profiles[]; |
extern const profile_t profiles[]; |
285 |
|
|
286 |
|
extern const quality_t quality_table[]; |
287 |
|
extern const int quality_table_num; /* number of elements in quality table */ |
288 |
|
|
289 |
|
|
290 |
void config_reg_get(CONFIG * config); |
void config_reg_get(CONFIG * config); |
291 |
void config_reg_set(CONFIG * config); |
void config_reg_set(CONFIG * config); |