--- xvid.h 2003/12/18 02:53:30 1.27.2.56 +++ xvid.h 2006/10/11 13:55:32 1.56 @@ -3,7 +3,7 @@ * XVID MPEG-4 VIDEO CODEC * - XviD Main header file - * - * Copyright(C) 2001-2003 Peter Ross + * Copyright(C) 2001-2004 Peter Ross * * This program is free software ; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -19,7 +19,7 @@ * along with this program ; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * - * $Id: xvid.h,v 1.27.2.56 2003/12/18 02:53:30 Isibaar Exp $ + * $Id: xvid.h,v 1.56 2006/10/11 13:55:32 Skal Exp $ * ****************************************************************************/ @@ -57,8 +57,8 @@ #define XVID_API_MAJOR(a) (((a)>>16) & 0xff) #define XVID_API_MINOR(a) (((a)>> 0) & 0xff) -#define XVID_VERSION XVID_MAKE_VERSION(1,0,-126) -#define XVID_API XVID_MAKE_API(4, 0) +#define XVID_VERSION XVID_MAKE_VERSION(1,2,-127) +#define XVID_API XVID_MAKE_API(4, 1) #define XVID_UNSTABLE @@ -73,8 +73,7 @@ * doesnt hurt but not increasing it could cause difficulty for decoders in the * future */ -#define XVID_BS_VERSION "0024" - +#define XVID_BS_VERSION 45 /***************************************************************************** * error codes @@ -96,7 +95,8 @@ /* colorspace values */ -#define XVID_CSP_USER (1<< 0) /* 4:2:0 planar (==I420, except for pointers/strides) */ +#define XVID_CSP_PLANAR (1<< 0) /* 4:2:0 planar (==I420, except for pointers/strides) */ +#define XVID_CSP_USER XVID_CSP_PLANAR #define XVID_CSP_I420 (1<< 1) /* 4:2:0 planar */ #define XVID_CSP_YV12 (1<< 2) /* 4:2:0 planar */ #define XVID_CSP_YUY2 (1<< 3) /* 4:2:2 packed */ @@ -105,6 +105,7 @@ #define XVID_CSP_BGRA (1<< 6) /* 32-bit bgra packed */ #define XVID_CSP_ABGR (1<< 7) /* 32-bit abgr packed */ #define XVID_CSP_RGBA (1<< 8) /* 32-bit rgba packed */ +#define XVID_CSP_ARGB (1<<15) /* 32-bit argb packed */ #define XVID_CSP_BGR (1<< 9) /* 24-bit bgr packed */ #define XVID_CSP_RGB555 (1<<10) /* 16-bit rgb555 packed */ #define XVID_CSP_RGB565 (1<<11) /* 16-bit rgb565 packed */ @@ -248,7 +249,13 @@ #define XVID_DISCONTINUITY (1<<1) /* indicates break in stream */ #define XVID_DEBLOCKY (1<<2) /* perform luma deblocking */ #define XVID_DEBLOCKUV (1<<3) /* perform chroma deblocking */ -#define XVID_FILMEFFECT (1<<4) /* adds film grain */ +#define XVID_FILMEFFECT (1<<4) /* adds film grain */ +#define XVID_DERINGUV (1<<5) /* perform chroma deringing, requires deblocking to work */ +#define XVID_DERINGY (1<<6) /* perform luma deringing, requires deblocking to work */ + +#define XVID_DEC_FAST (1<<29) /* disable postprocessing to decrease cpu usage *todo* */ +#define XVID_DEC_DROP (1<<30) /* drop bframes to decrease cpu usage *todo* */ +#define XVID_DEC_PREROLL (1<<31) /* decode as fast as you can, don't even show output *todo* */ typedef struct { int version; @@ -256,6 +263,8 @@ void *bitstream; /* [in] bitstream (read from)*/ int length; /* [in] bitstream length */ xvid_image_t output; /* [in] output image (written to) */ +/* ------- v1.1.x ------- */ + int brightness; /* [in] brightness offset (0=none) */ } xvid_dec_frame_t; @@ -352,6 +361,7 @@ #define XVID_REQORIGINAL (1<<0) /* plugin requires a copy of the original (uncompressed) image */ #define XVID_REQPSNR (1<<1) /* plugin requires psnr between the uncompressed and compressed image*/ #define XVID_REQDQUANTS (1<<2) /* plugin requires access to the dquant table */ +#define XVID_REQLAMBDA (1<<3) /* plugin requires access to the lambda table */ typedef struct @@ -417,6 +427,9 @@ int vol_flags; /* [in,out] */ int motion_flags; /* [in,out] */ + /* Lambda table for HVSPlugins */ + float * lambda; /* [in,out] six floats for each macroblock. read, multiply, write back */ + /* Deprecated, use the stats field instead. * Will disapear before 1.0 */ int length; /* [out] after: length of encoded frame */ @@ -472,6 +485,8 @@ extern xvid_plugin_func xvid_plugin_psnr; /* write psnr values to stdout */ extern xvid_plugin_func xvid_plugin_dump; /* dump before and after yuvpgms */ +extern xvid_plugin_func xvid_plugin_ssim; /*write ssim values to stdout*/ + /* single pass rate control * CBR and Constant quantizer modes */ @@ -499,7 +514,7 @@ typedef struct { int version; - int bitrate; /* [in] bits per second */ + int bitrate; /* [in] target bitrate (bits per second) */ char * filename; /* [in] first pass stats filename */ int keyframe_boost; /* [in] keyframe boost percentage: [0..100] */ @@ -516,8 +531,26 @@ * 0 for 1