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

📄 myfifo.h

📁 MP4编码源码
💻 H
字号:
/****************************************************************************/
/* 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 + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -