[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.2.4, Sat May 17 13:37:49 2003 UTC revision 1.12.2.1, Sun Nov 30 16:38:31 2008 UTC
# Line 1  Line 1 
1    /*****************************************************************************
2     *
3     *  XVID MPEG-4 VIDEO CODEC
4     *  - VFW configuration header  -
5     *
6     *  Copyright(C) 2002-2003 Anonymous <xvid-devel@xvid.org>
7     *
8     *  This program is free software ; you can redistribute it and/or modify
9     *  it under the terms of the GNU General Public License as published by
10     *  the Free Software Foundation ; either version 2 of the License, or
11     *  (at your option) any later version.
12     *
13     *  This program is distributed in the hope that it will be useful,
14     *  but WITHOUT ANY WARRANTY ; without even the implied warranty of
15     *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16     *  GNU General Public License for more details.
17     *
18     *  You should have received a copy of the GNU General Public License
19     *  along with this program ; if not, write to the Free Software
20     *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
21     *
22     * $Id$
23     *
24     ****************************************************************************/
25  #ifndef _CONFIG_H_  #ifndef _CONFIG_H_
26  #define _CONFIG_H_  #define _CONFIG_H_
27    
28  #include <windows.h>  #include <windows.h>
29  #include "vfwext.h"  #include "vfwext.h"
30    #include <xvid.h>
31    
32  extern HINSTANCE g_hInst;  extern HINSTANCE g_hInst;
33    
# Line 18  Line 43 
43  /* min/max bitrate when not specified by profile */  /* min/max bitrate when not specified by profile */
44  #define DEFAULT_MIN_KBPS    16  #define DEFAULT_MIN_KBPS    16
45  #define DEFAULT_MAX_KBPS    10000  #define DEFAULT_MAX_KBPS    10000
46    #define DEFAULT_QUANT           400
47    
48  /* registry stuff */  /* registry stuff */
49  #define XVID_REG_KEY    HKEY_CURRENT_USER  #define XVID_REG_KEY    HKEY_CURRENT_USER
# Line 28  Line 53 
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
# Line 60  Line 85 
85  {  {
86      int frame;      int frame;
87    
88            int type;
89      int mode;      int mode;
90      int weight;      int weight;
91      int quant;      int quant;
92      /* overrides: when ==MODIFIER_USE_DEFAULT use default/global setting */  
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 **********/
129          int mode;                                       // Vidomi directly accesses these vars          int mode;                                       /* Vidomi directly accesses these vars */
130          int bitrate;                            //          int bitrate;
131          int desired_size;                       // please try to avoid modifications here          int desired_size;                       /* please try to avoid modifications here */
132          char stats[MAX_PATH];           //          char stats[MAX_PATH];
133  /*******************************/  /*******************************/
134            int use_2pass_bitrate;          /* use bitrate for 2pass2 (instead of desired size) */
135            int desired_quant;                      /* for one-pass constant quant */
136    
137      /* profile  */      /* profile  */
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];
148          int lum_masking;          int lum_masking;
149          int interlacing;          int interlacing;
150            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;
158          int closed_gov;          int display_aspect_ratio;                               /* aspect ratio */
159            int ar_x, ar_y;                                                 /* picture aspect ratio */
160            int par_x, par_y;                                               /* custom pixel aspect ratio */
161            int ar_mode;                                                    /* picture/pixel AR */
162    
163      /* zones */      /* zones */
164      int num_zones;      int num_zones;
# Line 108  Line 170 
170          int rc_averaging_period;          int rc_averaging_period;
171          int rc_buffer;          int rc_buffer;
172    
173            /* 2pass1 */
174            int discard1pass;
175    
176      /* 2pass2 */      /* 2pass2 */
177          int keyframe_boost;          int keyframe_boost;
178          int kftreshold;          int kfthreshold;
179          int kfreduction;          int kfreduction;
         int discard1pass;  
180          int curve_compression_high;          int curve_compression_high;
181          int curve_compression_low;          int curve_compression_low;
182          int use_alt_curve;          int overflow_control_strength;
         int alt_curve_use_auto;  
         int alt_curve_auto_str;  
         int alt_curve_use_auto_bonus_bias;  
         int alt_curve_bonus_bias;  
         int alt_curve_type;  
         int alt_curve_high_dist;  
         int alt_curve_low_dist;  
         int alt_curve_min_rel_qual;  
183          int twopass_max_overflow_improvement;          int twopass_max_overflow_improvement;
184          int twopass_max_overflow_degradation;          int twopass_max_overflow_degradation;
         int bitrate_payback_delay;  
         int bitrate_payback_method;  
   
     /* motion */  
185    
186          int motion_search;          /* bitrate calculator */
187          int vhq_mode;          int target_size;
188          int chromame;          int subtitle_size;
189      int max_key_interval;          int container_type;
190          int min_key_interval;          int hours;
191          int frame_drop_ratio;          int minutes;
192            int seconds;
193            int fps;
194            int audio_mode;
195            int audio_type;
196            int audio_rate;
197            int audio_size;
198    
199      /* quant */    /* user defined quality settings */
200          int min_iquant;    quality_t quality_user;
         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;
204      int fourcc_used;      int fourcc_used;
205      int vop_debug;      int vop_debug;
206      int debug;      int debug;
207            int display_status;
208            int full1pass;
209    
210          DWORD cpu;          DWORD cpu;
211    
# Line 189  Line 243 
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    
250    
251    static const int PARS[][2] = {
252            {1, 1},
253            {12, 11},
254            {10, 11},
255            {16, 11},
256            {40, 33},
257            {0, 0},
258    };
259    
260    
 #define PROFILE_AS                      (PROFILE_ADAPTQUANT|PROFILE_BVOP|PROFILE_MPEGQUANT|PROFILE_INTERLACE|PROFILE_QPEL|PROFILE_GMC)  
 #define PROFILE_ARTS            (PROFILE_ADAPTQUANT|PROFILE_REDUCED)  
261    
262    
263  typedef struct  typedef struct
# Line 209  Line 274 
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);
292    void sort_zones(zone_t * zones, int zone_num, int * sel);
293    
 BOOL CALLBACK main_proc(HWND, UINT, WPARAM, LPARAM);  
 BOOL CALLBACK about_proc(HWND, UINT, WPARAM, LPARAM);  
294    
295    INT_PTR CALLBACK main_proc(HWND, UINT, WPARAM, LPARAM);
296    INT_PTR CALLBACK about_proc(HWND, UINT, WPARAM, LPARAM);
297    
298  #endif /* _CONFIG_H_ */  #endif /* _CONFIG_H_ */

Legend:
Removed from v.1.1.2.4  
changed lines
  Added in v.1.12.2.1

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