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

📄 global.h

📁 一个优化的H.263解码器,性能达到商用级
💻 H
字号:

#ifndef _GLOBAL_H__
#define _GLOBAL_H__
#pragma message("global.h included!")
#include <stdio.h>

#ifndef GLOBAL
#pragma message("GLOBAL undefined!")
#define EXTERN extern
#else
#define EXTERN
#endif

/* Some macros */
#define mmax(a, b)        ((a) > (b) ? (a) : (b))
#define mmin(a, b)        ((a) < (b) ? (a) : (b))
#define mnint(a)        ((a) < 0 ? (int)(a - 0.5) : (int)(a + 0.5))
#define sign(a)         ((a) < 0 ? -1 : 1)

#define T_YUV      0
#define T_RGB      7
typedef struct ld_struct
{
  /* bit input */
  int infile;
  unsigned char *input;
  unsigned char rdbfr[2051];
  unsigned char *rdptr;
  unsigned char inbfr[16];
  int incnt;
  int bitcnt;
  /* block data */
  short block[12][64];
}LD_STRUCT;

/* For reference picture selection Mode  (Annex N) */
#define RING_SIZE 8
/* Back Channel Message Structure */
/* used with Annex N with Videomux channel */
//EXTERN struct De_bcm 
typedef struct De_bcm 
{
  int present;           /* set to 1 if bcm is present */
  int BT;                /* Back-channel message type (2 bits) */
  int URF;               /* Unreliable flag (1 bit) */
  int TR;                /* Temporal reference (10 bits) */
  int ELNUMI;            /* Enhancement layer number indication (1 bit) */
  int ELNUM;             /* Enhancement layer number (4 bits) */
  int BCPM;              /* Indicates that BSBI is present (1 bit) */
  int BSPI;              /* Back-channel sub bitstream indicator (2 bits) */
  int BEPB1;             /* Back-channel emulation prevention bit 1 (1 bit set to 1 */
  int GN_MBA;            /* GOB number / Macroblock address (variable length) */
  int BEPB2;             /* Back-channel emulation prevention bit 2 (1 bit set to 1 */
  int RTR;               /* Requested temporal reference (10 bits) */
  int BSTUF;             /* stuffing (variable length) */
} DE_BCM;
///copy from getbits.c start ////////////////
///copy from getbits.c end //////////////////////

/// copy from getblk.c start ////////////////////
/**/
typedef struct
{
  char run, level, len;
} De_DCTtab;

typedef struct
{
	int val, len;
} De_VLCtabI;

typedef struct
{
	int val, run, sign;
} De_RunCoef;

typedef struct
{
	int code, level, last, run, sign, extended_level;
} De_CodeCoeff;
#endif

⌨️ 快捷键说明

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