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

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

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

revision 983, Sat Apr 12 06:58:50 2003 UTC revision 1054, Mon Jun 9 13:55:56 2003 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: config.h,v 1.1.2.7 2003-06-09 13:55:56 edgomez Exp $
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"
30    
31  extern HINSTANCE g_hInst;  extern HINSTANCE g_hInst;
32    
# Line 14  Line 39 
39  /* one kilobit */  /* one kilobit */
40  #define CONFIG_KBPS 1000  #define CONFIG_KBPS 1000
41    
42    /* min/max bitrate when not specified by profile */
43    #define DEFAULT_MIN_KBPS    16
44    #define DEFAULT_MAX_KBPS    10000
45    
46    
47  /* registry stuff */  /* registry stuff */
48  #define XVID_REG_KEY    HKEY_CURRENT_USER  #define XVID_REG_KEY    HKEY_CURRENT_USER
49  #define XVID_REG_PARENT "Software\\GNU"  #define XVID_REG_PARENT "Software\\GNU"
# Line 28  Line 58 
58  #define CONFIG_2PASS_FILE "\\video.pass"  #define CONFIG_2PASS_FILE "\\video.pass"
59    
60  /* codec modes */  /* codec modes */
61  #define RC_MODE_CBR                             0  #define RC_MODE_1PASS          0
62  #define RC_MODE_VBR_QUAL                1       /* deprecated */  #define RC_MODE_2PASS1         1
63  #define RC_MODE_FIXED                   2  #define RC_MODE_2PASS2         2
64  #define RC_MODE_2PASS1                  3  #define RC_MODE_NULL           3
65  #define RC_MODE_2PASS2_EXT              4  
66  #define RC_MODE_2PASS2_INT              5  #define RC_ZONE_WEIGHT         0
67  #define RC_MODE_NULL                    6  #define RC_ZONE_QUANT          1
68    
69  /* vhq modes */  /* vhq modes */
70  #define VHQ_OFF                                 0  #define VHQ_OFF                                 0
# Line 49  Line 79 
79  #define QUANT_MODE_CUSTOM               2  #define QUANT_MODE_CUSTOM               2
80    
81    
82    #define MAX_ZONES    64
83    typedef struct
84    {
85        int frame;
86    
87        int mode;
88        int weight;
89        int quant;
90        /* overrides: when ==MODIFIER_USE_DEFAULT use default/global setting */
91        unsigned int greyscale;
92        unsigned int chroma_opt;
93        unsigned int bvop_threshold;
94    } zone_t;
95    
96    
97  typedef struct  typedef struct
98  {  {
99  /********** ATTENTION **********/  /********** ATTENTION **********/
100          int mode;                                       // Vidomi directly accesses these vars          int mode;                                       /* Vidomi directly accesses these vars */
101          int rc_bitrate;                         //          int bitrate;
102          int desired_size;                       // please try to avoid modifications here          int desired_size;                       /* please try to avoid modifications here */
103          char stats[MAX_PATH];           //          char stats[MAX_PATH];
104  /*******************************/  /*******************************/
105    
106        /* profile  */
107      char profile_name[MAX_PATH];      char profile_name[MAX_PATH];
108          int profile;          int profile;            /* used internally; *not* written to registry */
109    
         int quality;  
         int     quant;  
         int rc_reaction_delay_factor;  
         int rc_averaging_period;  
         int rc_buffer;  
   
         int motion_search;  
110          int quant_type;          int quant_type;
111          int fourcc_used;          BYTE qmatrix_intra[64];
112          int vhq_mode;          BYTE qmatrix_inter[64];
         int max_key_interval;  
         int min_key_interval;  
113          int lum_masking;          int lum_masking;
114          int interlacing;          int interlacing;
115          int qpel;          int qpel;
116          int gmc;          int gmc;
117          int chromame;          int reduced_resolution;
         int greyscale;  
118      int use_bvop;      int use_bvop;
119          int max_bframes;          int max_bframes;
120          int bquant_ratio;          int bquant_ratio;
121          int bquant_offset;          int bquant_offset;
     int bvop_threshold;  
122          int packed;          int packed;
123          int closed_gov;          int closed_gov;
         int debug;  
         int reduced_resolution;  
124    
125          int min_iquant;      /* zones */
126          int max_iquant;      int num_zones;
127          int min_pquant;      zone_t zones[MAX_ZONES];
128          int max_pquant;      int cur_zone;        /* used internally; *not* written to registry */
129          BYTE qmatrix_intra[64];  
130          BYTE qmatrix_inter[64];      /* single pass */
131            int rc_reaction_delay_factor;
132            int rc_averaging_period;
133            int rc_buffer;
134    
135        /* 2pass2 */
136          int keyframe_boost;          int keyframe_boost;
137          int kftreshold;          int kftreshold;
138          int kfreduction;          int kfreduction;
139          int discard1pass;          int discard1pass;
140          int curve_compression_high;          int curve_compression_high;
141          int curve_compression_low;          int curve_compression_low;
         int use_alt_curve;  
         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;  
         int twopass_max_bitrate;  
142          int twopass_max_overflow_improvement;          int twopass_max_overflow_improvement;
143          int twopass_max_overflow_degradation;          int twopass_max_overflow_degradation;
144          int bitrate_payback_delay;          int bitrate_payback_delay;
145          int bitrate_payback_method;          int bitrate_payback_method;
         int hinted_me;  
   
         int num_threads;  
         int chroma_opt;  
146    
147        /* motion */
148            int motion_search;
149            int vhq_mode;
150            int chromame;
151        int max_key_interval;
152            int min_key_interval;
153          int frame_drop_ratio;          int frame_drop_ratio;
154    
155          /* decoder */      /* quant */
156            int min_iquant;
157            int max_iquant;
158            int min_pquant;
159            int max_pquant;
160            int min_bquant;
161            int max_bquant;
162        int trellis_quant;
163    
164  //      int deblock_y;      /* debug */
165  //      int deblock_uv;          int num_threads;
166        int fourcc_used;
167        int vop_debug;
168        int debug;
169    
170          DWORD cpu;          DWORD cpu;
171          float fquant;  
172        /* internal */
173        int ci_valid;
174        VFWEXT_CONFIGURE_INFO_T ci;
175    
176          BOOL save;          BOOL save;
177  } CONFIG;  } CONFIG;
178    
# Line 154  Line 197 
197  } REG_STR;  } REG_STR;
198    
199    
200    #define PROFILE_ADAPTQUANT  0x00000001
201    #define PROFILE_BVOP            0x00000002
202    #define PROFILE_MPEGQUANT       0x00000004
203    #define PROFILE_INTERLACE       0x00000008
204    #define PROFILE_QPEL            0x00000010
205    #define PROFILE_GMC                     0x00000020
206    #define PROFILE_REDUCED         0x00000040      /* dynamic resolution conversion */
207    
208    #define PROFILE_AS                      (PROFILE_ADAPTQUANT|PROFILE_BVOP|PROFILE_MPEGQUANT|PROFILE_INTERLACE|PROFILE_QPEL|PROFILE_GMC)
209    #define PROFILE_ARTS            (PROFILE_ADAPTQUANT|PROFILE_REDUCED)
210    
211    
212    typedef struct
213    {
214            char * name;
215        int id;         /* mpeg-4 profile id; iso/iec 14496-2:2001 table G-1 */
216            int width;
217            int height;
218            int fps;
219            int max_objects;
220            int total_vmv_buffer_sz;    /* macroblock memory; when BVOPS=false, vmv = 2*vcv; when BVOPS=true,  vmv = 3*vcv*/
221            int max_vmv_buffer_sz;      /* max macroblocks per vop */
222            int vcv_decoder_rate;   /* macroblocks decoded per second */
223            int max_acpred_mbs;     /* percentage */
224            int max_vbv_size;                       /*    max vbv size (bits) 16368 bits */
225            int max_video_packet_length; /* bits */
226            int max_bitrate;                        /* kbits/s */
227            unsigned int flags;
228    } profile_t;
229    
230    
231    extern const profile_t profiles[];
232    
233    
234  void config_reg_get(CONFIG * config);  void config_reg_get(CONFIG * config);
235  void config_reg_set(CONFIG * config);  void config_reg_set(CONFIG * config);
236    

Legend:
Removed from v.983  
changed lines
  Added in v.1054

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