[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.6, Mon Jun 9 01:25:19 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 twopass_max_overflow_improvement;
119            int twopass_max_overflow_degradation;
120            int bitrate_payback_delay;
121            int bitrate_payback_method;
122    
123        /* motion */
124            int motion_search;
125            int vhq_mode;
126            int chromame;
127        int max_key_interval;
128            int min_key_interval;
129            int frame_drop_ratio;
130    
131        /* 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    
140        /* debug */
141            int num_threads;
142        int fourcc_used;
143        int vop_debug;
144        int debug;
145    
146            DWORD cpu;
147    
148        /* internal */
149        int ci_valid;
150        VFWEXT_CONFIGURE_INFO_T ci;
151    
152            BOOL save;
153    } CONFIG;
154    
155    typedef struct PROPSHEETINFO
156    {
157            int idd;
158            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    
176    #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    void config_reg_get(CONFIG * config);
211    void config_reg_set(CONFIG * config);
212    
213    BOOL CALLBACK main_proc(HWND, UINT, WPARAM, LPARAM);
214    BOOL CALLBACK about_proc(HWND, UINT, WPARAM, LPARAM);
215    
216    
217    #endif /* _CONFIG_H_ */

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

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