[svn] / branches / dev-api-4 / xvidcore / vfw / src / config.h Repository:
ViewVC logotype

Annotation of /branches/dev-api-4/xvidcore/vfw/src/config.h

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1052 - (view) (download)

1 : suxen_drol 889 #ifndef _CONFIG_H_
2 :     #define _CONFIG_H_
3 :    
4 :     #include <windows.h>
5 : suxen_drol 1017 #include "vfwext.h"
6 : suxen_drol 889
7 : suxen_drol 983 extern HINSTANCE g_hInst;
8 : suxen_drol 889
9 :    
10 :     /* small hack */
11 :     #ifndef IDC_HAND
12 :     #define IDC_HAND MAKEINTRESOURCE(32649)
13 :     #endif
14 :    
15 :     /* one kilobit */
16 :     #define CONFIG_KBPS 1000
17 :    
18 : suxen_drol 1017 /* min/max bitrate when not specified by profile */
19 :     #define DEFAULT_MIN_KBPS 16
20 :     #define DEFAULT_MAX_KBPS 10000
21 :    
22 :    
23 : suxen_drol 889 /* registry stuff */
24 :     #define XVID_REG_KEY HKEY_CURRENT_USER
25 :     #define XVID_REG_PARENT "Software\\GNU"
26 :     #define XVID_REG_CHILD "XviD"
27 :     #define XVID_REG_CLASS "config"
28 :    
29 :     #define XVID_BUILD __TIME__ ", " __DATE__
30 :     #define XVID_WEBSITE "http://www.xvid.org/"
31 :     #define XVID_SPECIAL_BUILD "(Vanilla CVS Build)"
32 :    
33 :     /* constants */
34 : suxen_drol 983 #define CONFIG_2PASS_FILE "\\video.pass"
35 : suxen_drol 889
36 :     /* codec modes */
37 : suxen_drol 1017 #define RC_MODE_1PASS 0
38 :     #define RC_MODE_2PASS1 1
39 :     #define RC_MODE_2PASS2 2
40 :     #define RC_MODE_NULL 3
41 : suxen_drol 889
42 : suxen_drol 1017 #define RC_ZONE_WEIGHT 0
43 :     #define RC_ZONE_QUANT 1
44 :    
45 : suxen_drol 889 /* vhq modes */
46 :     #define VHQ_OFF 0
47 :     #define VHQ_MODE_DECISION 1
48 :     #define VHQ_LIMITED_SEARCH 2
49 :     #define VHQ_MEDIUM_SEARCH 3
50 :     #define VHQ_WIDE_SEARCH 4
51 :    
52 : suxen_drol 983 /* quantizer modes */
53 :     #define QUANT_MODE_H263 0
54 :     #define QUANT_MODE_MPEG 1
55 :     #define QUANT_MODE_CUSTOM 2
56 : suxen_drol 889
57 :    
58 : suxen_drol 1017 #define MAX_ZONES 64
59 : suxen_drol 889 typedef struct
60 :     {
61 : suxen_drol 1017 int frame;
62 :    
63 :     int mode;
64 :     int weight;
65 :     int quant;
66 :     /* overrides: when ==MODIFIER_USE_DEFAULT use default/global setting */
67 :     unsigned int greyscale;
68 :     unsigned int chroma_opt;
69 :     unsigned int bvop_threshold;
70 :     } zone_t;
71 :    
72 :    
73 :     typedef struct
74 :     {
75 : suxen_drol 889 /********** ATTENTION **********/
76 :     int mode; // Vidomi directly accesses these vars
77 : suxen_drol 1017 int bitrate; //
78 : suxen_drol 889 int desired_size; // please try to avoid modifications here
79 : suxen_drol 983 char stats[MAX_PATH]; //
80 : suxen_drol 889 /*******************************/
81 :    
82 : suxen_drol 1017 /* profile */
83 : suxen_drol 983 char profile_name[MAX_PATH];
84 : suxen_drol 1017 int profile; /* used internally; *not* written to registry */
85 : suxen_drol 983
86 : suxen_drol 1017 int quant_type;
87 :     BYTE qmatrix_intra[64];
88 :     BYTE qmatrix_inter[64];
89 : suxen_drol 889 int lum_masking;
90 :     int interlacing;
91 :     int qpel;
92 :     int gmc;
93 : suxen_drol 1017 int reduced_resolution;
94 : suxen_drol 983 int use_bvop;
95 : suxen_drol 889 int max_bframes;
96 :     int bquant_ratio;
97 :     int bquant_offset;
98 :     int packed;
99 : suxen_drol 983 int closed_gov;
100 : suxen_drol 889
101 : suxen_drol 1017 /* zones */
102 :     int num_zones;
103 :     zone_t zones[MAX_ZONES];
104 :     int cur_zone; /* used internally; *not* written to registry */
105 : suxen_drol 889
106 : suxen_drol 1017 /* single pass */
107 :     int rc_reaction_delay_factor;
108 :     int rc_averaging_period;
109 :     int rc_buffer;
110 :    
111 :     /* 2pass2 */
112 : suxen_drol 889 int keyframe_boost;
113 :     int kftreshold;
114 :     int kfreduction;
115 :     int discard1pass;
116 :     int curve_compression_high;
117 :     int curve_compression_low;
118 :     int twopass_max_overflow_improvement;
119 :     int twopass_max_overflow_degradation;
120 :     int bitrate_payback_delay;
121 :     int bitrate_payback_method;
122 :    
123 : suxen_drol 1017 /* motion */
124 :     int motion_search;
125 :     int vhq_mode;
126 :     int chromame;
127 :     int max_key_interval;
128 :     int min_key_interval;
129 : suxen_drol 889 int frame_drop_ratio;
130 :    
131 : suxen_drol 1017 /* quant */
132 :     int min_iquant;
133 :     int max_iquant;
134 :     int min_pquant;
135 :     int max_pquant;
136 :     int min_bquant;
137 :     int max_bquant;
138 :     int trellis_quant;
139 : suxen_drol 889
140 : suxen_drol 1017 /* debug */
141 :     int num_threads;
142 :     int fourcc_used;
143 : suxen_drol 1032 int vop_debug;
144 : suxen_drol 1017 int debug;
145 : suxen_drol 889
146 :     DWORD cpu;
147 : suxen_drol 1017
148 :     /* internal */
149 :     int ci_valid;
150 :     VFWEXT_CONFIGURE_INFO_T ci;
151 :    
152 : suxen_drol 889 BOOL save;
153 :     } CONFIG;
154 :    
155 :     typedef struct PROPSHEETINFO
156 :     {
157 : suxen_drol 983 int idd;
158 : suxen_drol 889 CONFIG * config;
159 :     } PROPSHEETINFO;
160 :    
161 :     typedef struct REG_INT
162 :     {
163 :     char* reg_value;
164 :     int* config_int;
165 :     int def;
166 :     } REG_INT;
167 :    
168 :     typedef struct REG_STR
169 :     {
170 :     char* reg_value;
171 :     char* config_str;
172 :     char* def;
173 :     } REG_STR;
174 :    
175 : suxen_drol 983
176 : suxen_drol 1017 #define PROFILE_ADAPTQUANT 0x00000001
177 :     #define PROFILE_BVOP 0x00000002
178 :     #define PROFILE_MPEGQUANT 0x00000004
179 :     #define PROFILE_INTERLACE 0x00000008
180 :     #define PROFILE_QPEL 0x00000010
181 :     #define PROFILE_GMC 0x00000020
182 :     #define PROFILE_REDUCED 0x00000040 /* dynamic resolution conversion */
183 :    
184 :     #define PROFILE_AS (PROFILE_ADAPTQUANT|PROFILE_BVOP|PROFILE_MPEGQUANT|PROFILE_INTERLACE|PROFILE_QPEL|PROFILE_GMC)
185 :     #define PROFILE_ARTS (PROFILE_ADAPTQUANT|PROFILE_REDUCED)
186 :    
187 :    
188 :     typedef struct
189 :     {
190 :     char * name;
191 :     int id; /* mpeg-4 profile id; iso/iec 14496-2:2001 table G-1 */
192 :     int width;
193 :     int height;
194 :     int fps;
195 :     int max_objects;
196 :     int total_vmv_buffer_sz; /* macroblock memory; when BVOPS=false, vmv = 2*vcv; when BVOPS=true, vmv = 3*vcv*/
197 :     int max_vmv_buffer_sz; /* max macroblocks per vop */
198 :     int vcv_decoder_rate; /* macroblocks decoded per second */
199 :     int max_acpred_mbs; /* percentage */
200 :     int max_vbv_size; /* max vbv size (bits) 16368 bits */
201 :     int max_video_packet_length; /* bits */
202 :     int max_bitrate; /* kbits/s */
203 :     unsigned int flags;
204 :     } profile_t;
205 :    
206 :    
207 :     extern const profile_t profiles[];
208 :    
209 :    
210 : suxen_drol 983 void config_reg_get(CONFIG * config);
211 :     void config_reg_set(CONFIG * config);
212 :    
213 : suxen_drol 889 BOOL CALLBACK main_proc(HWND, UINT, WPARAM, LPARAM);
214 :     BOOL CALLBACK about_proc(HWND, UINT, WPARAM, LPARAM);
215 :    
216 : suxen_drol 983
217 : suxen_drol 889 #endif /* _CONFIG_H_ */

No admin address has been configured
ViewVC Help
Powered by ViewVC 1.0.4