📄 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\Sys_Load.h" #include ".\MP4_Codec\MP4_Codec.h"/************************************************************************** * F U N C T I O N R E L A T I V E O P T I O N S * **************************************************************************//************************************************************************** * C O N S T A N T S * **************************************************************************/#define SPver0101 0xFF080101 //0x010108FF //SP4 ver#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)#define MP4_Init 0x0000#define MP4_Loop 0x0001#define MP4_End 0x0002#define NO_SD_DETECTextern unsigned int pKFOffset1[Max_KF_of_File+2]; //add by wwextern unsigned int pKFOffset2[Max_KF_of_File+2]; //add by wwextern unsigned int g_ulWidth,g_ulHeight;/************************************************************************** * D A T A T Y P E S * **************************************************************************/typedef struct _KEY_FRAME_INFO{ unsigned int ulKFOffsetAddress; unsigned int ulVideoIndexTableOffset; unsigned int ulAudioOffset; unsigned int ulAudioSize; unsigned int ulMP4FrameRate; unsigned int ulTotalFrame; unsigned int pulVideoData[30]; } KEY_FRAME_INFO, *PKEY_FRAME_INFO;typedef struct _KF_NODE *PKF_NODE;typedef struct _KF_NODE{ unsigned int 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(unsigned int *KF_address, unsigned int *start_address,unsigned int *end_address,unsigned int *VOPAddress,unsigned int total_frame);void vidSP4_FindIdx2(unsigned int *KF_address, unsigned int *start_address,unsigned int *end_address,unsigned int *VOPAddress,unsigned int total_frame);unsigned int vidSP4_CheckBufferSpace(int fp, unsigned int ulKF_Start_index, unsigned int *FileKFOffset, unsigned int *pulKFcount, unsigned int *pulDataSize);int vidSP4_LoadData(int fp, unsigned int ulBufferAddress, unsigned int ulDataSize, unsigned int ulcount);void vidSP4_FillKFInfo(unsigned int ulKF_Start_index, unsigned int *FileKFOffset, KF_NODE *pKFNode, unsigned int ulBufferAddress, unsigned int ulKFcount);int vidSP4_Preload(int fp, unsigned int ulLoadAddress,unsigned int StartOfFrame);void vidSP4_InitKFList(KF_NODE *pKFNode);unsigned int vidSP4_RequestBuffer(unsigned int ulBufferAddress, unsigned int ulDataSize);int vidSP4Play(int fp, unsigned int ulBufferAddress);void vidSP4Stop(void);void vidSP4Pause(void);void vidSP4Resume(void);void vidSP4_Change_Buffer(void);unsigned int vidSP4_GetpKFOffset(int fp,unsigned int ulStartFrame,unsigned int ulEndFrame,unsigned char ucSwithOnOFF, unsigned int offset);#endif //ANISPG290_MP4DRV_H_18467_41__INCLUDED_
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -