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.17.2.2 2002-10-06 07:05:50 suxen_drol Exp $ |
* $Id: xvid.h,v 1.17.2.8 2002-11-04 10:53:49 syskin Exp $ |
32 |
* |
* |
33 |
*****************************************************************************/ |
*****************************************************************************/ |
34 |
|
|
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 |
225 |
#define XVID_ME_PMVFAST 0x00080000 |
#define XVID_ME_PMVFAST 0x00080000 |
226 |
#define XVID_ME_EPZS 0x00100000 |
#define XVID_ME_EPZS 0x00100000 |
227 |
|
|
|
|
|
228 |
#define XVID_GREYSCALE 0x01000000 /* enable greyscale only mode (even for */ |
#define XVID_GREYSCALE 0x01000000 /* enable greyscale only mode (even for */ |
229 |
#define XVID_GRAYSCALE 0x01000000 /* color input material chroma is ignored) */ |
#define XVID_GRAYSCALE 0x01000000 /* color input material chroma is ignored) */ |
230 |
|
|
231 |
|
#define XVID_GMC 0x20000000 |
232 |
|
#define XVID_ME_COLOUR 0x40000000 |
233 |
|
|
234 |
/* Flags for XVID_ENC_FRAME.motion */ |
/* Flags for XVID_ENC_FRAME.motion */ |
235 |
#define PMV_ADVANCEDDIAMOND8 0x00004000 |
#define PMV_ADVANCEDDIAMOND8 0x00004000 |
254 |
#define PMV_USESQUARES8 0x80000000 |
#define PMV_USESQUARES8 0x80000000 |
255 |
|
|
256 |
|
|
257 |
|
|
258 |
/***************************************************************************** |
/***************************************************************************** |
259 |
* Encoder structures |
* Encoder structures |
260 |
****************************************************************************/ |
****************************************************************************/ |
273 |
#ifdef _SMP |
#ifdef _SMP |
274 |
int num_threads; /* number of threads */ |
int num_threads; /* number of threads */ |
275 |
#endif |
#endif |
|
#ifdef BFRAMES |
|
276 |
int global; /* global/debug options */ |
int global; /* global/debug options */ |
277 |
int max_bframes; /* max sequential bframes (0=disable bframes) */ |
int max_bframes; /* max sequential bframes (0=disable bframes) */ |
278 |
int bquant_ratio; /* bframe quantizer multipier (percentage). |
int bquant_ratio; /* bframe quantizer multipier (percentage). |
281 |
* quant = ((past_quant + future_quant) * bquant_ratio)/200 |
* quant = ((past_quant + future_quant) * bquant_ratio)/200 |
282 |
*/ |
*/ |
283 |
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 |
|
284 |
void *handle; /* [out] encoder instance handle */ |
void *handle; /* [out] encoder instance handle */ |
285 |
} |
} |
286 |
XVID_ENC_PARAM; |
XVID_ENC_PARAM; |
335 |
*/ |
*/ |
336 |
HINTINFO hint; /* [in/out] mv hint information */ |
HINTINFO hint; /* [in/out] mv hint information */ |
337 |
|
|
|
#ifdef BFRAMES |
|
338 |
int bquant; /* [in] bframe quantizer */ |
int bquant; /* [in] bframe quantizer */ |
|
#endif |
|
339 |
|
|
340 |
} |
} |
341 |
XVID_ENC_FRAME; |
XVID_ENC_FRAME; |