[cvs] / xvidcore / vfw / src / config.h Repository:
ViewVC logotype

Diff of /xvidcore/vfw/src/config.h

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.1, Sat Feb 22 08:24:01 2003 UTC revision 1.1.2.3, Wed May 14 11:44:28 2003 UTC
# Line 0  Line 1 
1    #ifndef _CONFIG_H_
2    #define _CONFIG_H_
3    
4    #include <windows.h>
5    #include "vfwext.h"
6    
7    extern HINSTANCE g_hInst;
8    
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    /* min/max bitrate when not specified by profile */
19    #define DEFAULT_MIN_KBPS    16
20    #define DEFAULT_MAX_KBPS    10000
21    
22    
23    /* 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    #define CONFIG_2PASS_FILE "\\video.pass"
35    
36    /* codec modes */
37    #define RC_MODE_1PASS          0
38    #define RC_MODE_2PASS1         1
39    #define RC_MODE_2PASS2         2
40    #define RC_MODE_NULL           3
41    
42    #define RC_ZONE_WEIGHT         0
43    #define RC_ZONE_QUANT          1
44    
45    /* 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    /* quantizer modes */
53    #define QUANT_MODE_H263                 0
54    #define QUANT_MODE_MPEG                 1
55    #define QUANT_MODE_CUSTOM               2
56    
57    
58    #define MAX_ZONES    64
59    typedef struct
60    {
61        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    /********** ATTENTION **********/
76            int mode;                                       // Vidomi directly accesses these vars
77            int bitrate;                            //
78            int desired_size;                       // please try to avoid modifications here
79            char stats[MAX_PATH];           //
80    /*******************************/
81    
82        /* profile  */
83        char profile_name[MAX_PATH];
84            int profile;            /* used internally; *not* written to registry */
85    
86        int quant_type;
87            BYTE qmatrix_intra[64];
88            BYTE qmatrix_inter[64];
89            int lum_masking;
90            int interlacing;
91            int qpel;
92            int gmc;
93            int reduced_resolution;
94        int use_bvop;
95            int max_bframes;
96            int bquant_ratio;
97            int bquant_offset;
98            int packed;
99            int closed_gov;
100    
101        /* zones */
102        int num_zones;
103        zone_t zones[MAX_ZONES];
104        int cur_zone;        /* used internally; *not* written to registry */
105    
106        /* single pass */
107            int rc_reaction_delay_factor;
108            int rc_averaging_period;
109            int rc_buffer;
110    
111        /* 2pass2 */
112            int keyframe_boost;
113            int kftreshold;
114            int kfreduction;
115            int discard1pass;
116            int curve_compression_high;
117            int curve_compression_low;
118            int use_alt_curve;
119            int alt_curve_use_auto;
120            int alt_curve_auto_str;
121            int alt_curve_use_auto_bonus_bias;
122            int alt_curve_bonus_bias;
123            int alt_curve_type;
124            int alt_curve_high_dist;
125            int alt_curve_low_dist;
126            int alt_curve_min_rel_qual;
127            int twopass_max_overflow_improvement;
128            int twopass_max_overflow_degradation;
129            int bitrate_payback_delay;
130            int bitrate_payback_method;
131    
132        /* motion */
133    
134            int motion_search;
135            int vhq_mode;
136            int chromame;
137        int max_key_interval;
138            int min_key_interval;
139            int frame_drop_ratio;
140    
141        /* quant */
142            int min_iquant;
143            int max_iquant;
144            int min_pquant;
145            int max_pquant;
146            int min_bquant;
147            int max_bquant;
148        int trellis_quant;
149    
150        /* debug */
151            int num_threads;
152        int fourcc_used;
153        int debug;
154    
155            DWORD cpu;
156    
157        /* internal */
158        int ci_valid;
159        VFWEXT_CONFIGURE_INFO_T ci;
160    
161            BOOL save;
162    } CONFIG;
163    
164    typedef struct PROPSHEETINFO
165    {
166            int idd;
167            CONFIG * config;
168    } PROPSHEETINFO;
169    
170    typedef struct REG_INT
171    {
172            char* reg_value;
173            int* config_int;
174            int def;
175    } REG_INT;
176    
177    typedef struct REG_STR
178    {
179            char* reg_value;
180            char* config_str;
181            char* def;
182    } REG_STR;
183    
184    
185    #define PROFILE_ADAPTQUANT  0x00000001
186    #define PROFILE_BVOP            0x00000002
187    #define PROFILE_MPEGQUANT       0x00000004
188    #define PROFILE_INTERLACE       0x00000008
189    #define PROFILE_QPEL            0x00000010
190    #define PROFILE_GMC                     0x00000020
191    #define PROFILE_REDUCED         0x00000040      /* dynamic resolution conversion */
192    
193    #define PROFILE_AS                      (PROFILE_ADAPTQUANT|PROFILE_BVOP|PROFILE_MPEGQUANT|PROFILE_INTERLACE|PROFILE_QPEL|PROFILE_GMC)
194    #define PROFILE_ARTS            (PROFILE_ADAPTQUANT|PROFILE_REDUCED)
195    
196    
197    typedef struct
198    {
199            char * name;
200        int id;         /* mpeg-4 profile id; iso/iec 14496-2:2001 table G-1 */
201            int width;
202            int height;
203            int fps;
204            int max_objects;
205            int total_vmv_buffer_sz;    /* macroblock memory; when BVOPS=false, vmv = 2*vcv; when BVOPS=true,  vmv = 3*vcv*/
206            int max_vmv_buffer_sz;      /* max macroblocks per vop */
207            int vcv_decoder_rate;   /* macroblocks decoded per second */
208            int max_acpred_mbs;     /* percentage */
209            int max_vbv_size;                       /*    max vbv size (bits) 16368 bits */
210            int max_video_packet_length; /* bits */
211            int max_bitrate;                        /* kbits/s */
212            unsigned int flags;
213    } profile_t;
214    
215    
216    extern const profile_t profiles[];
217    
218    
219    void config_reg_get(CONFIG * config);
220    void config_reg_set(CONFIG * config);
221    
222    BOOL CALLBACK main_proc(HWND, UINT, WPARAM, LPARAM);
223    BOOL CALLBACK about_proc(HWND, UINT, WPARAM, LPARAM);
224    
225    
226    #endif /* _CONFIG_H_ */

Legend:
Removed from v.1.1  
changed lines
  Added in v.1.1.2.3

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