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

📄 global.h

📁 基于Linux的ffmepg decoder
💻 H
字号:
#ifndef _GLOBAL_H_
#define _GLOBAL_H_

#ifndef NULL
#define NULL 0 //ivan for kernel mode
#endif

#include "xvid.h"
#include "portab.h"
#include "ftmcp100.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	4


typedef struct
{
	uint32_t *tail;
	uint32_t *start;
	uint32_t length;
}
Bitstream;


#define MBPRED_SIZE  16


typedef struct
{
	// decoder/encoder 
	int mode;
	int quant;					// absolute quant

	// encoder specific

	int mv16x_0;
	int mv16y_0;
	int mv16x_1;
	int mv16y_1;
	int mv16x_2;
	int mv16y_2;
	int mv16x_3;
	int mv16y_3;

//	int32_t sad8[4];      // SAD values for inter4v-VECTORs
//  int32_t sad16;        // SAD value for inter-VECTOR
}
MACROBLOCK;

// 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)

#if defined(CORE_VERSION_1)
typedef struct
  {
    uint32_t *SMaddr;
    uint32_t *LMaddr;
    uint32_t BlkWidth;
    uint32_t Control;
    uint32_t CCA;
    uint32_t Status;
    uint32_t Cnt;
  }
  MDMA;
#elif defined(CORE_VERSION_2)
typedef struct
  {
    uint32_t *SMaddr;
    uint32_t *LMaddr;
    uint32_t BlkWidth;
    uint32_t Control;
    uint32_t CCA;
    uint32_t Status;
    uint32_t CCA2;
    uint32_t GRPC;
    uint32_t GRPS;
  }
  MDMA;
#else
  #error "Please define the hardware core version (either CORE_VERSION_1 or CORE_VERSION_2)"
#endif
/*
typedef struct
{
  uint32_t Control;
  uint32_t Format;
  uint32_t Status;
  uint32_t Reserved0;
  uint32_t Ybase;
  uint32_t Reserved1;
  uint32_t Reserved2;
  uint32_t Reserved3;      
  uint32_t Ubase;
  uint32_t Reserved4;
  uint32_t Reserved5;
  uint32_t Reserved6;      
  uint32_t Vbase;
  uint32_t Reserved7;
  uint32_t Reserved8;
  uint32_t Reserved9;      
} CAP;
*/
#endif /* _GLOBAL_H_ */

⌨️ 快捷键说明

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