⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 xvid.h

📁 mpeg4 video codec mpeg4 video codec
💻 H
📖 第 1 页 / 共 3 页
字号:
/* ------- v1.1.x ------- */	int brightness;		 /* [in]	 brightness offset (0=none) */} xvid_dec_frame_t;/* XVID_DEC_DECODE param2 :: optional */typedef struct{	int version;	int type;                   /* [out] output data type */	union {		struct { /* type>0 {XVID_TYPE_IVOP,XVID_TYPE_PVOP,XVID_TYPE_BVOP,XVID_TYPE_SVOP} */			int general;        /* [out] flags */			int time_base;      /* [out] time base */			int time_increment; /* [out] time increment */			/* XXX: external deblocking stuff */			int * qscale;	    /* [out] pointer to quantizer table */			int qscale_stride;  /* [out] quantizer scale stride */		} vop;		struct {	/* XVID_TYPE_VOL */			int general;        /* [out] flags */			int width;          /* [out] width */			int height;         /* [out] height */			int par;            /* [out] pixel aspect ratio (refer to XVID_PAR_xxx above) */			int par_width;      /* [out] aspect ratio width  [1..255] */			int par_height;     /* [out] aspect ratio height [1..255] */		} vol;	} data;} xvid_dec_stats_t;#define XVID_ZONE_QUANT  (1<<0)#define XVID_ZONE_WEIGHT (1<<1)typedef struct{	int frame;	int mode;	int increment;	int base;} xvid_enc_zone_t;/*---------------------------------------------------------------------------- * xvid_enc_stats_t structure * * Used in: *  - xvid_plg_data_t structure *  - optional parameter in xvid_encore() function * * .coding_type = XVID_TYPE_NOTHING if the stats are not given *--------------------------------------------------------------------------*/typedef struct {	int version;	/* encoding parameters */	int type;      /* [out] coding type */	int quant;     /* [out] frame quantizer */	int vol_flags; /* [out] vol flags (see above) */	int vop_flags; /* [out] vop flags (see above) */	/* bitrate */	int length;    /* [out] frame length */	int hlength;   /* [out] header length (bytes) */	int kblks;     /* [out] number of blocks compressed as Intra */	int mblks;     /* [out] number of blocks compressed as Inter */	int ublks;     /* [out] number of blocks marked as not_coded */	int sse_y;     /* [out] Y plane's sse */	int sse_u;     /* [out] U plane's sse */	int sse_v;     /* [out] V plane's sse */} xvid_enc_stats_t;/*****************************************************************************  xvid plugin system -- internals  xvidcore will call XVID_PLG_INFO and XVID_PLG_CREATE during XVID_ENC_CREATE  before encoding each frame xvidcore will call XVID_PLG_BEFORE  after encoding each frame xvidcore will call XVID_PLG_AFTER  xvidcore will call XVID_PLG_DESTROY during XVID_ENC_DESTROY ****************************************************************************/#define XVID_PLG_CREATE  (1<<0)#define XVID_PLG_DESTROY (1<<1)#define XVID_PLG_INFO    (1<<2)#define XVID_PLG_BEFORE  (1<<3)#define XVID_PLG_FRAME   (1<<4)#define XVID_PLG_AFTER   (1<<5)/* xvid_plg_info_t.flags */#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 */typedef struct{	int version;	int flags;   /* [in:opt] plugin flags */} xvid_plg_info_t;typedef struct{	int version;	int num_zones;           /* [out] */	xvid_enc_zone_t * zones; /* [out] */	int width;               /* [out] */	int height;              /* [out] */	int mb_width;            /* [out] */	int mb_height;           /* [out] */	int fincr;               /* [out] */	int fbase;               /* [out] */	void * param;            /* [out] */} xvid_plg_create_t;typedef struct{	int version;	int num_frames; /* [out] total frame encoded */} xvid_plg_destroy_t;typedef struct{	int version;	xvid_enc_zone_t * zone; /* [out] current zone */	int width;              /* [out] */	int height;             /* [out] */	int mb_width;           /* [out] */	int mb_height;          /* [out] */	int fincr;              /* [out] */	int fbase;              /* [out] */	int min_quant[3];       /* [out] */	int max_quant[3];       /* [out] */	xvid_image_t reference; /* [out] -> [out] */	xvid_image_t current;   /* [out] -> [in,out] */	xvid_image_t original;  /* [out] after: points the original (uncompressed) copy of the current frame */	int frame_num;          /* [out] frame number */	int type;               /* [in,out] */	int quant;              /* [in,out] */	int * dquant;           /* [in,out]	pointer to diff quantizer table */	int dquant_stride;      /* [in,out]	diff quantizer stride */	int vop_flags;          /* [in,out] */	int vol_flags;          /* [in,out] */	int motion_flags;       /* [in,out] *//* Deprecated, use the stats field instead. * Will disapear before 1.0 */	int length;             /* [out] after: length of encoded frame */	int kblks;              /* [out] number of blocks compressed as Intra */	int mblks;              /* [out] number of blocks compressed as Inter */	int ublks;              /* [out] number of blocks marked not_coded */	int sse_y;              /* [out] Y plane's sse */	int sse_u;              /* [out] U plane's sse */	int sse_v;              /* [out] V plane's sse *//* End of duplicated data, kept only for binary compatibility */	int bquant_ratio;       /* [in] */	int bquant_offset;      /* [in] */	xvid_enc_stats_t stats; /* [out] frame statistics */} xvid_plg_data_t;/*****************************************************************************  xvid plugin system -- external  the application passes xvid an array of "xvid_plugin_t" at XVID_ENC_CREATE. the array  indicates the plugin function pointer and plugin-specific data.  xvidcore handles the rest. example:  xvid_enc_create_t create;  xvid_enc_plugin_t plugins[2];  plugins[0].func = xvid_psnr_func;  plugins[0].param = NULL;  plugins[1].func = xvid_cbr_func;  plugins[1].param = &cbr_data;  create.num_plugins = 2;  create.plugins = plugins; ****************************************************************************/typedef int (xvid_plugin_func)(void * handle, int opt, void * param1, void * param2);typedef struct{	xvid_plugin_func * func;	void * param;} xvid_enc_plugin_t;extern xvid_plugin_func xvid_plugin_single;   /* single-pass rate control */extern xvid_plugin_func xvid_plugin_2pass1;   /* two-pass rate control: first pass */extern xvid_plugin_func xvid_plugin_2pass2;   /* two-pass rate control: second pass */extern xvid_plugin_func xvid_plugin_lumimasking;  /* lumimasking */extern xvid_plugin_func xvid_plugin_psnr;	/* write psnr values to stdout */extern xvid_plugin_func xvid_plugin_dump;	/* dump before and after yuvpgms *//* single pass rate control * CBR and Constant quantizer modes */typedef struct{	int version;	int bitrate;               /* [in] bits per second */	int reaction_delay_factor; /* [in] */	int averaging_period;      /* [in] */	int buffer;                /* [in] */} xvid_plugin_single_t;typedef struct {	int version;	char * filename;} xvid_plugin_2pass1_t;#define XVID_PAYBACK_BIAS 0 /* payback with bias */#define XVID_PAYBACK_PROP 1 /* payback proportionally */typedef struct {	int version;	int bitrate;                  /* [in] target bitrate (bits per second) */	char * filename;              /* [in] first pass stats filename */	int keyframe_boost;           /* [in] keyframe boost percentage: [0..100] */	int curve_compression_high;   /* [in] percentage of compression performed on the high part of the curve (above average) */	int curve_compression_low;    /* [in] percentage of compression performed on the low  part of the curve (below average) */	int overflow_control_strength;/* [in] Payback delay expressed in number of frames */	int max_overflow_improvement; /* [in] percentage of allowed range for a frame that gets bigger because of overflow bonus */	int max_overflow_degradation; /* [in] percentage of allowed range for a frame that gets smaller because of overflow penalty */	int kfreduction;              /* [in] maximum bitrate reduction applied to an iframe under the kfthreshold distance limit */	int kfthreshold;              /* [in] if an iframe is closer to the next iframe than this distance, a quantity of bits								   *      is substracted from its bit allocation. The reduction is computed as multiples of								   *      kfreduction/kthreshold. It reaches kfreduction when the distance == kfthreshold,								   *      0 for 1<distance<kfthreshold */	int container_frame_overhead; /* [in] How many bytes the controller has to compensate per frame due to container format overhead */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -