myfifo.h

来自「MP4编码源码」· C头文件 代码 · 共 88 行

H
88
字号
/****************************************************************************/
/* MODULE:                                                                								*/
/*  Myfifo.c 						                          								*/
/****************************************************************************/
/*
 *   TCC Version 0.0
 *   Copyright (c) telechips, Inc.
 *   ALL RIGHTS RESERVED
*/
/****************************************************************************/

#ifndef _MY_FIFO_H_2003_11_22
#define _MY_FIFO_H_2003_11_22

typedef struct _FIFOELEMENT
{
	unsigned int uiIsUsing;
	unsigned int uiMaxBufSize;	
	unsigned int uiRealBufSize;
	unsigned int* pBuf;
}FIFOELEMENT, *PFIFOELEMENT, **PPFIFOELEMENT;

typedef struct _MYFIFO
{
	unsigned int uiReadIdx;
	unsigned int uiWriteIdx;
	unsigned int uiMaxNumOfElement;
	PPFIFOELEMENT ppFIFO;
	PPFIFOELEMENT ppFifoBufArray;
}MYFIFO, *PMYFIFO;

#define QuerryActualFiFoSize(uiMaxNumOfElement, uiSizeOfElement) (20 + 2*(uiMaxNumOfElement*4) + (uiMaxNumOfElement) * (16+(uiSizeOfElement)))	// sizeof(MYFIFO) + (uiMaxNumOfElement)*(sizeof(FIFOBUF) + uiSizeOfElement)

#ifdef __cplusplus
#define EXTERN extern "C"
#else
#define EXTERN extern
#endif

EXTERN int CreateFIFO(void* handle, unsigned int uiNumOfElement, unsigned int uiSizeOfElement);
//EXTERN int GetFifoElement(void* handle, PPFIFOELEMENT ppBuf);
//EXTERN int PushFifo(void* handle, PFIFOELEMENT pBuf);
//EXTERN int PopFifo(void* handle, PPFIFOELEMENT ppBuf);

#define MAX_MP4_SPDECODER_BUFFER_LENGTH		(121*1024)

//Updated yohoj on V2.74 [2005/03/15]
#ifdef _TFT_LCD_TP020A_ //Moonriver_TFT_2005_03_11
// RGB
#define IMG_WIDTH								(160)
#define IMG_HEIGHT								(128)
#else
// RGB
#define IMG_WIDTH								(176)
#define IMG_HEIGHT								(220)
#endif
// YUV
//#define IMG_WIDTH								(176 + 32)
//#define IMG_HEIGHT								(144 + 32)

#define IMG_YUV_WIDTH								(176)
#define IMG_YUV_HEIGHT								(144)

#define MAX_NUM_OF_DPB_ELEMENT				(16) // 4 //(2)

// For RGB
#define MAX_SIZE_OF_DPB_ELEMENT				(IMG_WIDTH*IMG_HEIGHT*2 + 8)
// For YUV
//#define MAX_SIZE_OF_DPB_ELEMENT				((IMG_WIDTH*IMG_HEIGHT) + ((IMG_WIDTH*IMG_HEIGHT) >> 1))
#define TERMINATE_MP4_SP_DECODER				101


extern int pGetFifoElement(void* handle, PPFIFOELEMENT ppBuf);
extern int pPushFifo(void* handle, PFIFOELEMENT pBuf);
extern int pPopFifo(void* handle, PPFIFOELEMENT ppBuf);

typedef int (* pfGetFifoElement)(void* handle, PPFIFOELEMENT ppBuf);
typedef int (* pfPushFifo)(void* handle, PFIFOELEMENT pBuf);
typedef int (* pfPopFifo)(void* handle, PPFIFOELEMENT ppBuf);
typedef int (* pfShowFifo)(void* handle, PPFIFOELEMENT ppBuf);
typedef void (*pfFlushFifo)(void* handle);
extern pfGetFifoElement GetFifoElement;
extern pfPushFifo PushFifo;
extern pfPopFifo PopFifo;
extern pfShowFifo ShowFifo;
extern pfFlushFifo FlushFifo;
#endif

⌨️ 快捷键说明

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