--- xvid.h 2002/11/04 10:53:49 1.17.2.8 +++ xvid.h 2002/11/19 13:21:25 1.17.2.12 @@ -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.8 2002/11/04 10:53:49 syskin Exp $ +* $Id: xvid.h,v 1.17.2.12 2002/11/19 13:21:25 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 ****************************************************************************/ @@ -153,6 +174,32 @@ XVID_DEC_PARAM; +#define XVID_DEC_VOP 0 +#define XVID_DEC_VOL 1 + + typedef struct + { + int notify; /* [out] output 'mode' */ + union + { + struct /* XVID_DEC_VOP */ + { + int time_base; /* [out] time base */ + int time_increment; /* [out] time increment */ + } vop; + struct /* XVID_DEC_VOL */ + { + int general; /* [out] flags: eg. frames are interlaced */ + int width; /* [out] width */ + int height; /* [out] height */ + int aspect_ratio; /* [out] aspect ratio */ + int par_width; /* [out] aspect ratio width */ + int par_height; /* [out] aspect ratio height */ + } vol; + } data; + } XVID_DEC_STATS; + + typedef struct { int general; @@ -280,6 +327,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 */ } @@ -325,6 +373,7 @@ int length; /* [out] bitstream length (bytes) */ void *image; /* [in] image ptr */ + int stride; int colorspace; /* [in] source colorspace */ unsigned char *quant_intra_matrix; // [in] custom intra qmatrix */ @@ -346,7 +395,6 @@ int quant; /* [out] frame quantizer */ int hlength; /* [out] header length (bytes) */ int kblks, mblks, ublks; /* [out] */ - } XVID_ENC_STATS;