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

Diff of /xvidcore/src/xvid.h

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

revision 1.17.2.2, Sun Oct 6 07:05:50 2002 UTC revision 1.17.2.14, Thu Dec 12 10:37:44 2002 UTC
# Line 47  Line 47 
47  /* API Version : 2.1 */  /* API Version : 2.1 */
48  #define API_VERSION ((2 << 16) | (1))  #define API_VERSION ((2 << 16) | (1))
49    
50    /* Bitstream Version
51     * this will be writen into the bitstream to allow easy detection of xvid
52     * encoder bugs in the decoder, without this it might not possible to
53     * automatically distinquish between a file which has been encoded with an
54     * old & buggy XVID from a file which has been encoded with a bugfree version
55     * see the infamous interlacing bug ...
56     *
57     * this MUST be increased if an encoder bug is fixed, increasing it too often
58     * doesnt hurt but not increasing it could cause difficulty for decoders in the
59     * future
60     */
61    #define XVID_BS_VERSION "0003"
62    
63    
64  /* Error codes */  /* Error codes */
65  #define XVID_ERR_FAIL           -1  #define XVID_ERR_FAIL           -1
# Line 97  Line 110 
110  #define XVID_CPU_CHKONLY        0x40000000              /* check cpu only; dont init globals */  #define XVID_CPU_CHKONLY        0x40000000              /* check cpu only; dont init globals */
111  #define XVID_CPU_FORCE          0x80000000  #define XVID_CPU_FORCE          0x80000000
112    
113            typedef struct
114            {
115                    int colorspace;
116                    void * y;
117                    void * u;
118                    void * v;
119                    int y_stride;
120                    int uv_stride;
121            } XVID_IMAGE;           /* from yv12 */
122    
123    #define XVID_INIT_INIT          0
124    #define XVID_INIT_CONVERT       1
125    
126  /*****************************************************************************  /*****************************************************************************
127   *  Initialization structures   *  Initialization structures
# Line 110  Line 135 
135          }          }
136          XVID_INIT_PARAM;          XVID_INIT_PARAM;
137    
138            typedef struct
139            {
140                    XVID_IMAGE input;
141                    XVID_IMAGE output;
142                    int width;
143                    int height;
144                    int interlacing;
145            } XVID_INIT_CONVERTINFO;
146    
147  /*****************************************************************************  /*****************************************************************************
148   *  Initialization entry point   *  Initialization entry point
149   ****************************************************************************/   ****************************************************************************/
# Line 125  Line 159 
159   ****************************************************************************/   ****************************************************************************/
160    
161  /* Flags for XVID_DEC_FRAME.general */  /* Flags for XVID_DEC_FRAME.general */
162    #define XVID_DEC_LOWDELAY               0x00000001      /* decode lowdelay mode (ie. video-for-windows) */
163  #define XVID_QUICK_DECODE               0x00000010  #define XVID_QUICK_DECODE               0x00000010
164    
165  /*****************************************************************************  /*****************************************************************************
# Line 140  Line 175 
175          XVID_DEC_PARAM;          XVID_DEC_PARAM;
176    
177    
178    #define XVID_DEC_VOP    0
179    #define XVID_DEC_VOL    1
180    #define XVID_DEC_NOTHING        2       /* nothing was decoded */
181    
182            typedef struct
183            {
184                    int notify;                     /* [out]        output 'mode' */
185                    union
186                    {
187                            struct  /* XVID_DEC_VOP */
188                            {
189                                    int time_base;          /* [out]        time base */
190                                    int time_increment;     /* [out]        time increment */
191                            } vop;
192                            struct  /* XVID_DEC_VOL */
193                            {
194                                    int general;            /* [out]        flags: eg. frames are interlaced */
195                                    int width;                      /* [out]        width */
196                                    int height;                     /* [out]        height */
197                                    int aspect_ratio;       /* [out]        aspect ratio */
198                                    int par_width;          /* [out]        aspect ratio width */
199                                    int par_height;         /* [out]        aspect ratio height */
200                            } vol;
201                    } data;
202            } XVID_DEC_STATS;
203    
204    
205          typedef struct          typedef struct
206          {          {
207                  int general;                  int general;
# Line 184  Line 246 
246  #define XVID_GLOBAL_PACKED              0x00000001      /* packed bitstream */  #define XVID_GLOBAL_PACKED              0x00000001      /* packed bitstream */
247  #define XVID_GLOBAL_DX50BVOP    0x00000002      /* dx50 bvop compatibility */  #define XVID_GLOBAL_DX50BVOP    0x00000002      /* dx50 bvop compatibility */
248  #define XVID_GLOBAL_DEBUG               0x00000004      /* print debug info on each frame */  #define XVID_GLOBAL_DEBUG               0x00000004      /* print debug info on each frame */
249    #define XVID_GLOBAL_REDUCED             0x04000000      /* reduced resolution vop enable */
250    
251  /* Flags for XVID_ENC_FRAME.general */  /* Flags for XVID_ENC_FRAME.general */
252  #define XVID_VALID_FLAGS                0x80000000  #define XVID_VALID_FLAGS                0x80000000
# Line 212  Line 275 
275  #define XVID_ME_PMVFAST                 0x00080000  #define XVID_ME_PMVFAST                 0x00080000
276  #define XVID_ME_EPZS                    0x00100000  #define XVID_ME_EPZS                    0x00100000
277    
   
278  #define XVID_GREYSCALE                  0x01000000      /* enable greyscale only mode (even for */  #define XVID_GREYSCALE                  0x01000000      /* enable greyscale only mode (even for */
279  #define XVID_GRAYSCALE                  0x01000000  /* color input material chroma is ignored) */  #define XVID_GRAYSCALE                  0x01000000  /* color input material chroma is ignored) */
280    
281    #define XVID_GMC                                0x20000000
282    #define XVID_ME_COLOUR                  0x40000000
283    
284    #define XVID_REDUCED                    0x04000000      /* reduced resolution vop */
285    
286  /* Flags for XVID_ENC_FRAME.motion */  /* Flags for XVID_ENC_FRAME.motion */
287  #define PMV_ADVANCEDDIAMOND8    0x00004000  #define PMV_ADVANCEDDIAMOND8    0x00004000
# Line 240  Line 306 
306  #define PMV_USESQUARES8                 0x80000000  #define PMV_USESQUARES8                 0x80000000
307    
308    
309    
310  /*****************************************************************************  /*****************************************************************************
311   * Encoder structures   * Encoder structures
312   ****************************************************************************/   ****************************************************************************/
# Line 258  Line 325 
325  #ifdef _SMP  #ifdef _SMP
326                  int num_threads;                /* number of threads */                  int num_threads;                /* number of threads */
327  #endif  #endif
 #ifdef BFRAMES  
328                  int global;                             /* global/debug options */                  int global;                             /* global/debug options */
329                  int max_bframes;                /* max sequential bframes (0=disable bframes) */                  int max_bframes;                /* max sequential bframes (0=disable bframes) */
330                  int bquant_ratio;               /* bframe quantizer multipier (percentage).                  int bquant_ratio;               /* bframe quantizer multipier (percentage).
# Line 266  Line 332 
332                                                                   * eg. 200 = x2 multiplier                                                                   * eg. 200 = x2 multiplier
333                                                                   * quant = ((past_quant + future_quant) * bquant_ratio)/200                                                                   * quant = ((past_quant + future_quant) * bquant_ratio)/200
334                                                                   */                                                                   */
335                    int bquant_offset;              /* bquant += bquant_offset */
336                  int frame_drop_ratio;   /* frame dropping: 0=drop none... 100=drop all */                  int frame_drop_ratio;   /* frame dropping: 0=drop none... 100=drop all */
 #endif  
337                  void *handle;                   /* [out] encoder instance handle */                  void *handle;                   /* [out] encoder instance handle */
338          }          }
339          XVID_ENC_PARAM;          XVID_ENC_PARAM;
# Line 312  Line 378 
378                  int length;                             /* [out] bitstream length (bytes) */                  int length;                             /* [out] bitstream length (bytes) */
379    
380                  void *image;                    /* [in] image ptr */                  void *image;                    /* [in] image ptr */
381                    int stride;
382                  int colorspace;                 /* [in] source colorspace */                  int colorspace;                 /* [in] source colorspace */
383    
384                  unsigned char *quant_intra_matrix;      // [in] custom intra qmatrix */                  unsigned char *quant_intra_matrix;      // [in] custom intra qmatrix */
# Line 322  Line 389 
389                                                                   */                                                                   */
390                  HINTINFO hint;                  /* [in/out] mv hint information */                  HINTINFO hint;                  /* [in/out] mv hint information */
391    
 #ifdef BFRAMES  
392                  int bquant;                             /* [in] bframe quantizer */                  int bquant;                             /* [in] bframe quantizer */
 #endif  
393    
394          }          }
395          XVID_ENC_FRAME;          XVID_ENC_FRAME;
# Line 335  Line 400 
400                  int quant;                              /* [out] frame quantizer */                  int quant;                              /* [out] frame quantizer */
401                  int hlength;                    /* [out] header length (bytes) */                  int hlength;                    /* [out] header length (bytes) */
402                  int kblks, mblks, ublks;        /* [out] */                  int kblks, mblks, ublks;        /* [out] */
   
403          }          }
404          XVID_ENC_STATS;          XVID_ENC_STATS;
405    

Legend:
Removed from v.1.17.2.2  
changed lines
  Added in v.1.17.2.14

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