--- xvid.h 2002/11/07 10:28:15 1.17.2.9 +++ xvid.h 2002/12/14 06:07:03 1.17.2.15 @@ -28,7 +28,7 @@ * ToDo ? : when BFRAMES is defined, the API_VERSION should not * be the same (3.0 ?) * -* $Id: xvid.h,v 1.17.2.9 2002/11/07 10:28:15 suxen_drol Exp $ +* $Id: xvid.h,v 1.17.2.15 2002/12/14 06:07:03 suxen_drol Exp $ * *****************************************************************************/ @@ -110,6 +110,18 @@ #define XVID_CPU_CHKONLY 0x40000000 /* check cpu only; dont init globals */ #define XVID_CPU_FORCE 0x80000000 + typedef struct + { + int colorspace; + void * y; + void * u; + void * v; + int y_stride; + int uv_stride; + } XVID_IMAGE; /* from yv12 */ + +#define XVID_INIT_INIT 0 +#define XVID_INIT_CONVERT 1 /***************************************************************************** * Initialization structures @@ -123,6 +135,15 @@ } XVID_INIT_PARAM; + typedef struct + { + XVID_IMAGE input; + XVID_IMAGE output; + int width; + int height; + int interlacing; + } XVID_INIT_CONVERTINFO; + /***************************************************************************** * Initialization entry point ****************************************************************************/ @@ -138,6 +159,9 @@ ****************************************************************************/ /* Flags for XVID_DEC_FRAME.general */ +#define XVID_DEC_LOWDELAY 0x00000001 /* decode lowdelay mode (ie. video-for-windows) */ +#define XVID_DEC_DEBLOCKY 0x00000002 /* luma deblocking */ +#define XVID_DEC_DEBLOCKUV 0x00000002 /* chroma deblocking */ #define XVID_QUICK_DECODE 0x00000010 /***************************************************************************** @@ -155,6 +179,7 @@ #define XVID_DEC_VOP 0 #define XVID_DEC_VOL 1 +#define XVID_DEC_NOTHING 2 /* nothing was decoded */ typedef struct { @@ -223,6 +248,7 @@ #define XVID_GLOBAL_PACKED 0x00000001 /* packed bitstream */ #define XVID_GLOBAL_DX50BVOP 0x00000002 /* dx50 bvop compatibility */ #define XVID_GLOBAL_DEBUG 0x00000004 /* print debug info on each frame */ +#define XVID_GLOBAL_REDUCED 0x04000000 /* reduced resolution vop enable */ /* Flags for XVID_ENC_FRAME.general */ #define XVID_VALID_FLAGS 0x80000000 @@ -257,6 +283,8 @@ #define XVID_GMC 0x20000000 #define XVID_ME_COLOUR 0x40000000 +#define XVID_REDUCED 0x04000000 /* reduced resolution vop */ + /* Flags for XVID_ENC_FRAME.motion */ #define PMV_ADVANCEDDIAMOND8 0x00004000 #define PMV_ADVANCEDDIAMOND16 0x00008000 @@ -306,6 +334,7 @@ * eg. 200 = x2 multiplier * quant = ((past_quant + future_quant) * bquant_ratio)/200 */ + int bquant_offset; /* bquant += bquant_offset */ int frame_drop_ratio; /* frame dropping: 0=drop none... 100=drop all */ void *handle; /* [out] encoder instance handle */ } @@ -373,7 +402,6 @@ int quant; /* [out] frame quantizer */ int hlength; /* [out] header length (bytes) */ int kblks, mblks, ublks; /* [out] */ - } XVID_ENC_STATS;