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

📄 global.h

📁 基于Linux的ffmepg decoder
💻 H
字号:
#ifndef _GLOBAL_H_#define _GLOBAL_H_//#include "xvid.h"#include "portab.h"/* --- macroblock modes --- */#define MODE_INTER		0#define MODE_INTER_Q		1#define MODE_INTER4V		2#define MODE_INTRA		3#define MODE_INTRA_Q		4#define MODE_STUFFING		7#define MODE_NOT_CODED	16/* --- bframe specific --- */#define MODE_DIRECT			0#define MODE_INTERPOLATE		1#define MODE_BACKWARD		2#define MODE_FORWARD			3#define MODE_DIRECT_NONE_MV	4typedef struct{	uint32_t bufa;	uint32_t bufb;	uint32_t buf;	int32_t pos;	int32_t start_pos;	uint32_t *tail;	uint32_t *start;	uint32_t length;	uint32_t * start_phy;	uint32_t * tail_phy;}Bitstream;union VECTOR1{	uint32_t u32num;	struct	{		int16_t s16y;		int16_t s16x;	} vec;			// current mb Motion Vector for UV};#define MBPRED_SIZE  15typedef struct{//	int32_t x;				// current mb x//	int32_t y;				// current mb y//	int32_t mbpos;			// current mb position//	uint32_t toggle;		// indicate which table will be used;	int32_t mb_jump;		// mb jump offset from the prevous//	VECTOR MVuv;			// current mb Motion Vector for UV	union VECTOR1 MVuv;//	int quant;					// absolute quant//	int cbp;	int mode;//	VECTOR mvs[4];	union VECTOR1 mvs[4];/*	short int pred_values[6][MBPRED_SIZE];	int acpred_directions[6];	int mode;	int quant;					// absolute quant	int field_dct;	int field_pred;	int field_for_top;	int field_for_bot;	// encoder specific	int32_t sad8[4];			// SAD values for inter4v-VECTORs	int32_t sad16;				// SAD value for inter-VECTOR	int dquant;	// bframe stuff	VECTOR b_mvs[4];	VECTOR b_pmvs[4];	// bframe direct mode	VECTOR directmv[4];	VECTOR deltamv;	int mb_type;	int dbquant;	// stuff for block based ME (needed for Qpel ME)	// backup of last integer ME vectors/sad		VECTOR i_mv16;	VECTOR i_mvs[4];	int32_t i_sad8[4];	// SAD values for inter4v-VECTORs	int32_t i_sad16;	// SAD value for inter-VECTOR*/}MACROBLOCK;typedef struct{	int32_t x;				// current mb x	uint32_t y;			// current mb y	int32_t mbpos;			// current mb position	uint32_t toggle;		// indicate which table will be used;	int quant;					// absolute quant	int cbp;}MACROBLOCK_b;static __inline int8_tget_dc_scaler(uint32_t quant,			  uint32_t lum){	if (quant < 5)		return 8;	if (quant < 25 && !lum)		return (quant + 13) / 2;	if (quant < 9)		return 2 * quant;	if (quant < 25)		return quant + 8;	if (lum)		return 2 * quant - 16;	else		return quant - 6;}// useful macros#define MIN(X, Y) ((X)<(Y)?(X):(Y))#define MAX(X, Y) ((X)>(Y)?(X):(Y))#define ABS(X)    (((X)>0)?(X):-(X))#define SIGN(X)   (((X)>0)?1:-1)#endif /* _GLOBAL_H_ */

⌨️ 快捷键说明

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