📄 vid_sp4_play.h
字号:
/****************************************************************************** * * The information contained herein is the exclusive property of * Sunplus Technology Co. And shall not be distributed, reproduced, * or disclosed in whole in part without prior written permission. * * (C) COPYRIGHT 2005 SUNPLUS TECHNOLOGY CO. * ALL RIGHTS RESERVED * * The entire notice above must be reproduced on all authorized copies. * *****************************************************************************//****************************************************************************** * Filename: vid_sp4_play.h * Author: * Tel: * Date: 2006-07-18 * Description: sp4 define * Reference: * Version history: *----------------------------------------------------------------------------- * Version YYYY-MM-DD-INDEX Modified By Description * 1.0.0 2006-07-18 rex.wu Create * *****************************************************************************/// SUNPLUS S+core IDE generated include file.#ifndef ANISPG290_MP4DRV_H_18467_41__INCLUDED_#define ANISPG290_MP4DRV_H_18467_41__INCLUDED_#include ".\System\SystemHeader.h" #include ".\Function\VideoCodec\HW\mp4_DecodeEncodeAPI.h"//#include ".\Function\VideoCodec\AUD\audio_mp3.h"#include ".\Function\FunctionHeader.h"/************************************************************************** * F U N C T I O N R E L A T I V E O P T I O N S * **************************************************************************/#define IO_TEST/************************************************************************** * C O N S T A N T S * **************************************************************************/#define SPMP 0x504D5053 //Header flag "SPMP"#define idx0 0x30786469 //Index flag "idx0"#define idx1 0x31786469 //Index flag "idx1"#define SPver0101 0xFF080101 //0x010108FF //SP4 ver#define PictureFlag1 0x62643030 //00db#define PictureFlag2 0x63643030 //00dc#define BUFFER_START_ADDRESS 0xA0800000#ifdef BLENDING_MODE#define BUFFER_START_ADDRESS_TV 0xA0A00000#else#define BUFFER_START_ADDRESS_TV 0xA0E00000#endif#define MP4_Buffer_Size 0x200000 //2MB buffer size#define MP4_Buffer_Mask (MP4_Buffer_Size - 1)#define Data_Length 0xA000 //40K data length for loading#define BUFFER_GUARD_BAND 0x400 //1K byte guard band#define Max_KF_Amount 32 //Max possible KF (chunk) in the buufer#define GUARD_BAND 0x20#ifdef SD_CARD_DEVICE#define Max_KF_of_File 43200 //Total KF offset of the file#endif#ifdef CDROM_DEVICE#define Max_KF_of_File 43200 //Total KF offset of the file#endif//ADD by WW#define SET_FRAME_START_END_ON 1#define MPEG4_B_POINT 1//End//SP4 video state definition#define MASK_MP4_STOP 0x00000000#define MASK_MP4_PLAY 0x00010000#define MASK_MP4_PAUSE 0x00020000#define MASK_MP4_FORWARD 0x00040000#define MASK_MP4_BACKWARD 0x00080000#define MASK_MP4_AUDIO_TRACK 0x00000001 //If there is audio data in the file or not#define MASK_MP4_AUDIO_NEED 0x00000002#define MASK_MP4_AUDIO_READY 0x00000004#define MASK_MP4_VIDEO_NEED 0x00000010 #define MASK_MP4_AUDIO_NEXT_KF (MASK_MP4_AUDIO_TRACK | MASK_MP4_AUDIO_NEED)//by ww//#define VIEW_FRAM_RATE//#define TEST_FOR_ALIGN#define NO_SD_DETECTextern U32 pKFOffset1[Max_KF_of_File+2]; //add by wwextern U32 pKFOffset2[Max_KF_of_File+2]; //add by wwextern U32 g_ulWidth,g_ulHeight;//by ww end/************************************************************************** * D A T A T Y P E S * **************************************************************************/typedef struct _KEY_FRAME_INFO{ U32 ulKFOffsetAddress; U32 ulVideoIndexTableOffset; U32 ulAudioOffset; U32 ulAudioSize; U32 ulMP4FrameRate; U32 ulTotalFrame; U32 pulVideoData[30]; } KEY_FRAME_INFO, *PKEY_FRAME_INFO;typedef struct _KF_NODE KF_NODE, *PKF_NODE;typedef struct _KF_NODE{ U32 ulReady; // 0: empty; 1: data available PKF_NODE pKFNode_Prev; PKF_NODE pKFNode_Next; KEY_FRAME_INFO KFData;};// KF_NODE, *PKF_NODE;/************************************************************************** * E X T E R N A L R E F E R E N C E * **************************************************************************/ /************************************************************************** * F U N C T I O N D E C L A R A T I O N S * **************************************************************************/int vidSP4_InitTimer(unsigned int ulFrameRate);void vidSP4_FindIdx(U32 *KF_address, U32 *start_address,U32 *end_address,U32 *VOPAddress,U32 total_frame);void vidSP4_FindIdx2(U32 *KF_address, U32 *start_address,U32 *end_address,U32 *VOPAddress,U32 total_frame);U32 vidSP4_CheckBufferSpace(int fp, U32 ulKF_Start_index, U32 *FileKFOffset, U32 *pulKFcount, U32 *pulDataSize);int vidSP4_LoadData(int fp, U32 ulBufferAddress, U32 ulDataSize, U32 ulcount);void vidSP4_FillKFInfo(U32 ulKF_Start_index, U32 *FileKFOffset, KF_NODE *pKFNode, U32 ulBufferAddress, U32 ulKFcount);int vidSP4_Preload(int fp, U32 ulLoadAddress,U32 StartOfFrame);void vidSP4_InitKFList(KF_NODE *pKFNode);U32 vidSP4_RequestBuffer(U32 ulBufferAddress, U32 ulDataSize);int vidSP4Play(int fp, U32 ulBufferAddress);void vidSP4Stop(void);void vidSP4Pause(void);void vidSP4Resume(void);void vidSP4_Change_Buffer(void);U32 vidSP4_GetpKFOffset(int fp,U32 ulStartFrame,U32 ulEndFrame,U8 ucSwithOnOFF, U32 offset);#endif //ANISPG290_MP4DRV_H_18467_41__INCLUDED_
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -