[svn] / branches / dev-api-3 / xvidcore / src / xvid.h Repository:
ViewVC logotype

Diff of /branches/dev-api-3/xvidcore/src/xvid.h

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

trunk/xvidcore/src/xvid.h revision 199, Thu Jun 13 12:42:18 2002 UTC branches/dev-api-3/xvidcore/src/xvid.h revision 616, Wed Oct 30 18:06:41 2002 UTC
# Line 28  Line 28 
28  *               ToDo ? : when BFRAMES is defined, the API_VERSION should not  *               ToDo ? : when BFRAMES is defined, the API_VERSION should not
29  *                        be the same (3.0 ?)  *                        be the same (3.0 ?)
30  *  *
31  *  $Id: xvid.h,v 1.10 2002-06-13 12:42:18 edgomez Exp $  *  $Id: xvid.h,v 1.17.2.4 2002-10-30 18:06:41 Isibaar Exp $
32  *  *
33  *****************************************************************************/  *****************************************************************************/
34    
# Line 37  Line 37 
37  #define _XVID_H_  #define _XVID_H_
38    
39  #ifdef __cplusplus  #ifdef __cplusplus
40  *  $Id: xvid.h,v 1.10 2002-06-13 12:42:18 edgomez Exp $  extern "C" {
41  #endif  #endif
42    
43  /*****************************************************************************  /*****************************************************************************
# 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 "0002"
62    
63    
64  /* Error codes */  /* Error codes */
65  #define XVID_ERR_FAIL           -1  #define XVID_ERR_FAIL           -1
# Line 56  Line 69 
69    
70    
71  /* Colorspaces */  /* Colorspaces */
72  #define XVID_CSP_RGB24  0  #define XVID_CSP_RGB24  0               /* [b|g|r] */
73  #define XVID_CSP_YV12   1  #define XVID_CSP_YV12   1
74  #define XVID_CSP_YUY2   2  #define XVID_CSP_YUY2   2
75  #define XVID_CSP_UYVY   3  #define XVID_CSP_UYVY   3
# Line 66  Line 79 
79  #define XVID_CSP_USER   12  #define XVID_CSP_USER   12
80  #define XVID_CSP_EXTERN      1004  // per slice rendering  #define XVID_CSP_EXTERN      1004  // per slice rendering
81  #define XVID_CSP_YVYU   1002  #define XVID_CSP_YVYU   1002
82  #define XVID_CSP_RGB32  1000  #define XVID_CSP_RGB32  1000    /* [b|g|r|a] */
83    #define XVID_CSP_ABGR   1006    /* [a|b|g|r] */
84    #define XVID_CSP_RGBA   1005    /* [r|g|b|a] */
85    
86    
87    
88  #define XVID_CSP_NULL   9999  #define XVID_CSP_NULL   9999
89    
90  #define XVID_CSP_VFLIP  0x80000000      // flip mask  #define XVID_CSP_VFLIP  0x80000000      // flip mask
91    
92    
93  /*****************************************************************************  /*****************************************************************************
94     *  Initialization constants
95   ****************************************************************************/   ****************************************************************************/
96    
97  /* CPU flags for XVID_INIT_PARAM.cpu_flags */  /* CPU flags for XVID_INIT_PARAM.cpu_flags */
# Line 85  Line 104 
104  #define XVID_CPU_3DNOWEXT       0x00000020  #define XVID_CPU_3DNOWEXT       0x00000020
105    
106  #define XVID_CPU_TSC            0x00000040  #define XVID_CPU_TSC            0x00000040
107    
108  #define XVID_CPU_IA64           0x00000080  #define XVID_CPU_IA64           0x00000080
109    
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    
114    /*****************************************************************************
115   *  Initialization structures   *  Initialization structures
116     ****************************************************************************/
117    
118            typedef struct
119            {
120                  int cpu_flags;                  int cpu_flags;
121                  int api_version;                  int api_version;
122                  int core_build;                  int core_build;
# Line 148  Line 173 
173                  int stride_y, stride_u,stride_v;                  int stride_y, stride_u,stride_v;
174          } XVID_DEC_PICTURE;          } XVID_DEC_PICTURE;
175    
176    
177    /*****************************************************************************
178     * Decoder entry point
179     ****************************************************************************/
180    
181    /* decoder options */
182    #define XVID_DEC_DECODE         0
183    #define XVID_DEC_CREATE         1
184  #define XVID_DEC_DESTROY        2  #define XVID_DEC_DESTROY        2
185    
186          int xvid_decore(void *handle,          int xvid_decore(void *handle,
# Line 169  Line 202 
202  #define XVID_VALID_FLAGS                0x80000000  #define XVID_VALID_FLAGS                0x80000000
203    
204  #define XVID_CUSTOM_QMATRIX             0x00000004      /* use custom quant matrix */  #define XVID_CUSTOM_QMATRIX             0x00000004      /* use custom quant matrix */
205    #define XVID_H263QUANT                  0x00000010
206    #define XVID_MPEGQUANT                  0x00000020
207    #define XVID_HALFPEL                    0x00000040      /* use halfpel interpolation */
208    #define XVID_QUARTERPEL                 0x02000000
209    #define XVID_ADAPTIVEQUANT              0x00000080
210    #define XVID_LUMIMASKING                0x00000100
211  #define XVID_LATEINTRA                  0x00000200  #define XVID_LATEINTRA                  0x00000200
212    
213  #define XVID_INTERLACING                0x00000400      /* enable interlaced encoding */  #define XVID_INTERLACING                0x00000400      /* enable interlaced encoding */
# Line 194  Line 233 
233  /* Flags for XVID_ENC_FRAME.motion */  /* Flags for XVID_ENC_FRAME.motion */
234  #define PMV_ADVANCEDDIAMOND8    0x00004000  #define PMV_ADVANCEDDIAMOND8    0x00004000
235  #define PMV_ADVANCEDDIAMOND16   0x00008000  #define PMV_ADVANCEDDIAMOND16   0x00008000
236  #define PMV_EARLYSTOP16                 0x00080000  
237    #define PMV_HALFPELDIAMOND16    0x00010000
238    #define PMV_HALFPELREFINE16     0x00020000
239    #define PMV_QUARTERPELREFINE16  0x00040000
240    #define PMV_EXTSEARCH16                 0x00080000      /* extend PMV by more searches */
241  #define PMV_QUICKSTOP16                 0x00100000      /* like early, but without any more refinement */  #define PMV_QUICKSTOP16                 0x00100000      /* like early, but without any more refinement */
242  #define PMV_UNRESTRICTED16      0x00200000      /* unrestricted ME, not implemented */  #define PMV_UNRESTRICTED16      0x00200000      /* unrestricted ME, not implemented */
243  #define PMV_OVERLAPPING16       0x00400000      /* overlapping ME, not implemented */  #define PMV_OVERLAPPING16       0x00400000      /* overlapping ME, not implemented */
# Line 202  Line 245 
245    
246  #define PMV_HALFPELDIAMOND8     0x01000000  #define PMV_HALFPELDIAMOND8     0x01000000
247  #define PMV_HALFPELREFINE8              0x02000000  #define PMV_HALFPELREFINE8              0x02000000
248  #define PMV_EXTSEARCH8                  0x04000000      /* extend PMV by more searches */  #define PMV_QUARTERPELREFINE8   0x04000000
249  #define PMV_EARLYSTOP8                  0x08000000  #define PMV_EXTSEARCH8                  0x08000000      /* extend PMV by more searches */
250  #define PMV_QUICKSTOP8                  0x10000000      /* like early, but without any more refinement */  #define PMV_QUICKSTOP8                  0x10000000      /* like early, but without any more refinement */
251  #define PMV_UNRESTRICTED8       0x20000000      /* unrestricted ME, not implemented */  #define PMV_UNRESTRICTED8       0x20000000      /* unrestricted ME, not implemented */
252  #define PMV_OVERLAPPING8                0x40000000      /* overlapping ME, not implemented */  #define PMV_OVERLAPPING8                0x40000000      /* overlapping ME, not implemented */
# Line 234  Line 277 
277                  int bquant_ratio;               /* bframe quantizer multipier (percentage).                  int bquant_ratio;               /* bframe quantizer multipier (percentage).
278                                                                   * used only when bquant < 1                                                                   * used only when bquant < 1
279                                                                   * eg. 200 = x2 multiplier                                                                   * eg. 200 = x2 multiplier
280                                                                     * quant = ((past_quant + future_quant) * bquant_ratio)/200
281                                                                     */
282                    int frame_drop_ratio;   /* frame dropping: 0=drop none... 100=drop all */
283  #endif  #endif
284                    void *handle;                   /* [out] encoder instance handle */
285          }          }
286          XVID_ENC_PARAM;          XVID_ENC_PARAM;
287    
288          typedef struct          typedef struct
289          {          {
290                  int x;                  int x;
291                    int y;
292          }          }
293          VECTOR;          VECTOR;
294    
# Line 298  Line 346 
346          typedef struct          typedef struct
347          {          {
348                  int quant;                              /* [out] frame quantizer */                  int quant;                              /* [out] frame quantizer */
                 int input_consumed;             /* [out] */  
349                  int hlength;                    /* [out] header length (bytes) */                  int hlength;                    /* [out] header length (bytes) */
350                  int kblks, mblks, ublks;        /* [out] */                  int kblks, mblks, ublks;        /* [out] */
351    

Legend:
Removed from v.199  
changed lines
  Added in v.616

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