📄 mpeg4contrl.h
字号:
/********************************************************************************************
Copyright (C), 2007, Fuzhou Rockchip Co.,Ltd.
File:
Mpeg4Contrl.h
Description:
Mpeg4 Contrl.
Note:
None.
Author:
ljn
$Log: Mpeg4Contrl.h,v $
Revision 1.2 2007/11/21 10:13:22 Linjiangnan
*** empty log message ***
********************************************************************************************/
#ifndef _MPEG4CONTRL_H
#define _MPEG4CONTRL_H
#include "fs.h"
#include "AviFile.h"
#ifdef _IN_MPEG4CONTRL_H
#undef EXT
#define EXT
#else
#define EXT extern
#endif
#define VIDEO_ALIGN_ATTR( align ) __align(align)
#define IMEM_ADDR_AHB0 0x30040000
//#define MAX_FRAME_WIDTH 800
//#define MAX_FRAME_HEIGHT 480
#define YUV_BUFFER_SIZE ((MAX_FRAME_WIDTH*MAX_FRAME_HEIGHT*3)>>1)
#define YUV_BUFFER_NUM 8
#define MAX_FRAME_NUM 32
#define MB_MV_INFO_SIZE (MAX_FRAME_WIDTH>>4)*(MAX_FRAME_HEIGHT>>4)*32
#define BITSREAM_BUFFER_SIZE 4096
#define MAX_BITSREAM_BLOCK_NUM 16
#define VIDEO_DECODE_OK 0
#define VIDEO_DECODE_IDLE 1
#define VIDEO_YUV_DATA_NULL 0xff
#define SEND_YUV2LCD_FINISHED 1
#define SEND_YUV2LCD_READY 0
#define FFD_FFW_INTERVAL 10
#define VIDEO_OPERATION_PLAY 0
#define VIDEO_OPERATION_FFD_FFW 1
#define TIMER_ISR_NUM_PER_FRAME 5
#define FFD_FFW_DISPLAY_SPEED 25
#define MAX_DISCREPANCY_FRAME_NUM 50
#define XVIDCORE_DEC_OK 0
#define XVIDCORE_DEC_MEMORY_OK 0
#define XVIDCORE_DEC_IFRAME_OK 0
#define XVIDCORE_DEC_PFRAME_OK 0
#define XVIDCORE_DEC_BFRAME_OK 0
#define XVIDCORE_DEC_MB_OK 0
#define XVIDCORE_DEC_END 1
#define XVIDCORE_DEC_EXIT 2
#define XVIDCORE_DEC_MEMORY_ERR (-1)
#define XVIDCORE_DEC_HEADER_ERR (-2)
#define XVIDCORE_DEC_MEMORY_INIT (-3)
#define XVIDCORE_DEC_FORMAT_ERR (-4)
#define XVIDCORE_DEC_IFRAME_ERR (-5)
#define XVIDCORE_DEC_PFRAME_ERR (-6)
#define XVIDCORE_DEC_BFRAME_ERR (-7)
#define XVIDCORE_DEC_MB_ERR (-8)
#define XVIDCORE_DEC_VLD_ERR (-9)
#define XVIDCORE_DEC_RESYNC_MARKER (-10)
#define BIT_TEST(num, index) ((num>>index) & (1))
#define BIT_SET_VAL(num, index, val) num = ((num&(~(1<<index)))|(val<<index))
#define IS_VIDEO_DECODE_OK(status) ((status != XVIDCORE_DEC_MEMORY_ERR) && (status != XVIDCORE_DEC_HEADER_ERR) && (status != XVIDCORE_DEC_FORMAT_ERR))
#define IS_VIDEO_DECODE_END(status) (status != XVIDCORE_DEC_END)
EXT char *bitStreamBuf;//VIDEO_ALIGN_ATTR(8) char bitStreamBuf[4096*MAX_BITSREAM_BLOCK_NUM]; //
EXT char *yuvBuf;//VIDEO_ALIGN_ATTR(8) unsigned char yuvBuf[YUV_BUFFER_NUM*YUV_BUFFER_SIZE];//
EXT char *mbMvInfoBuf;
EXT char *aviVideoBufRemain;
EXT int filledBlockNum;
EXT unsigned short *frameList;
EXT unsigned int curFrame;
EXT unsigned int displayedYuvBuffer;
EXT int timerIsrTimes;
EXT unsigned int lcdUpdateTimer;
EXT unsigned int dispFrameNum;
EXT unsigned int aviTimerCounter;
EXT int dispInterval;
EXT BACKGRND *aviVideoScreen; //BACKGRND AviVideoScreen[YUV_BUFFER_NUM];
EXT DWDMALLP *aviVideoLLPList; //DWDMALLP AviVideoScreen[YUV_BUFFER_NUM][1000];
EXT BACKGRND *aviVideoScreenTemp; // add by hzf
EXT DWDMALLP *aviVideoLLPListTemp;
EXT int ffd_ffw_times;
EXT int fillBitStreamOff;
EXT int aviPlayState;
EXT int isAudioPlayEnd;
//EXT unsigned int curBuffer;
//EXT unsigned int frameNumInList;
//EXT unsigned long gotSize; //added by ljn for test
//EXT MY_FILE *aviFile;
EXT int AviFillBitStreamForDecoder(void *);
EXT void AviCreateVideoScreen(MainAVIHeader *avihdr);
EXT void AviShowVideoFrame(void);
EXT int AviIsLastFrame(void *);
EXT int AviVideoDecInit(void *);
EXT void AviFrameDispCtrl(void *);
EXT int AviVideoFileInit(void *PathName);
EXT int AviFFW(unsigned int step);
EXT int AviFFD(unsigned int step);
EXT void AviResume(void *);
EXT void AviDecodeEnd(void *);
EXT void AviGetTimeInfoMs(unsigned int *curTime, unsigned int *totalTime);
EXT int AviPlayPause(void);
EXT int IsAviReachEnd(void);
EXT int AviGetCurYUVInfo(char **pYuv, long *pWidth, long *pHeight);
EXT int AviVideoSeek(long msTime);
EXT int AviGetAudioData(char *buffer, DWORD size);
EXT short AviGetDecStatus(void);
//extern void BIT_SET_VAL(unsigned int num, unsigned char index, unsigned char val);
EXT int AviVideoSeek(long msTime);
EXT int AviGetResolution(long *pWidth, long *pHeight);
EXT int AviGetYuvAddr(char **pYuv);
EXT unsigned int AviGetCurTime(void);
EXT unsigned int AviGetTotalTime(void);
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -