📄 h264dec.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 + -