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

📄 h264dec.h

📁 自己在wince的环境下做的一移动数字电视驱动
💻 H
字号:

#ifndef	_H264DEC_H_
#define	_H264DEC_H_

#include "../Common/TCCUtil.h"
#include "../Common/MailBox.h"
#include "../Common/Shared.h"
#include "../Common/Virtual.h"
#include "../Common/VideoCore.h"

#define MAX_NUM_OF_VIDEO_ELEMENT		4 

class CH264DEC
{
public:
	int m_bvcoreopen;
	int m_bspspps;
	unsigned int gActualWidth,gActualHeight;
	unsigned int gWidth, gHeight;	

	int TCC_CODEC_H264_DECODE(unsigned char *pInput, unsigned long InputLength);
	unsigned int H264GetVideoBuffer(void);
	int TCC_CODEC_H264Dec_Open(unsigned int DEC_MEM_START);
	void TCC_CODEC_H264Dec_Close();
	unsigned char gbuffindex;
	int m_IsAVC;
	
private:
	volatile unsigned char *pucH264EncodedData;
	volatile unsigned int pMCMailBoxMessage[8];
	volatile unsigned char *pRBSPBuffer;
	volatile unsigned char *pMEM0BASE;
	volatile sSHAREDMEM *pSHARED;	

	
	int TCC_CODEC_H264DEC_GetSizePic(unsigned int *pWidth, unsigned int *pHeight);
	int TCC_CODEC_H264DEC_GetFrameType(void);
	void TCC_CODEC_H264DEC_ReferenceFrameBufferInit(void);
	int TCC_CODEC_H264DEC_GetVideoInfo(unsigned char *pSps, unsigned int nSizeSps, unsigned char *pPps, unsigned int nSizePps, unsigned char *pRBSPBuffer, int nParam6);		
	void h264API_SetFrameBuffer(unsigned char *pAddr, int index);
	int TCC_CODEC_H264DEC_DecodeOneFrame(unsigned char *pInstanceBuffer, unsigned char* pInputBuffer,int nSizeInput, int nErrorPframeSkipOption);
	int TCC_CODEC_H264DEC_RemoveEmulationCode(unsigned char *bsStartAddr_1st, unsigned int	bsLength_1st, unsigned char *bsStartAddr_2nd, unsigned int bsLength_2nd, unsigned char *ptrOutbuffer);	
	int TCC_LOCAL_H264DEC_LOCALFN_SetSliceData(unsigned char *pInput, unsigned long InSize, unsigned char *pOutput);
	int TCC_LOCAL_H264DEC_LOCALFN_MP4SetSliceData(unsigned char *pInput, unsigned long InSize, unsigned char *pOutput);
	int TCC_LOCAL_H264DEC_LOCALFN_1SegSetSliceData(unsigned char *pInput, unsigned long InSize, unsigned char *pOutput);
	void TCC_CODEC_H264DEC_Init(unsigned char *pbuffer_SpsPps,  unsigned int nSizeInputBuffer, int pSDRAMAddr, int nErrorPframeSkipOption);
	unsigned int TCC_CODEC_H264DEC_LOCALFN_MailBoxSendMessage(unsigned int *pData, unsigned int nNum);
	unsigned int TCC_CODEC_H264DEC_LOCALFN_WaitMailBoxRecvMessage(unsigned int *pData);
	int TCC_CODEC_H264DEC_LOCALFN_MailBoxInit();
	int TCC_CODEC_H264DEC_LOCALFN_LoadTables_Ignition_ARM946();

	unsigned int m_outputBase; // Video Output Physical Memory base = Output Buffer ( 1 frame buffer * MAX_NUM_OF_VIDEO_ELEMENT)
	unsigned int m_outputSize; // Video Output size
	unsigned int m_inputBase; // Video Input Physical Memory base = Input Buffer
	unsigned int m_inputSize; // Video Input Size
	unsigned int m_dataBase; // Video Data Physical Memory base = Subcore Binary + Instance Buffer
	unsigned int m_dataSize; // Video Data Size
	unsigned int m_h264OutputSize; // Video Output 1 frame size = m_outputBase /MAX_NUM_OF_VIDEO_ELEMENT

public:
	CH264DEC();
	virtual ~CH264DEC();
};

#endif

⌨️ 快捷键说明

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