📄 mpegfile.h
字号:
/********************************************************************************************
Copyright (C), 2007, Fuzhou Rockchip Co.,Ltd.
File:
MpegFile.h
Description:
Mpeg File demmux.
Note:
None.
Author:
ljn
$Log: MpegFile.h,v $
Revision 1.3 2008/06/19 04:42:32 Administrator
代码整理!
Revision 1.2 2008/05/24 09:36:51 HZF
MPEG-1/2的支持
Revision 1.1 2008/05/20 12:02:22 HZF
mpg文件播放提交
********************************************************************************************/
#ifndef MPEGFILE_H
#define MPEGFILE_H
#ifdef _IN_MPEGFILE_H
#undef EXT
#define EXT
#else
#define EXT extern
#endif
#define ON_RKFS
#ifdef ON_RKFS
#define MpegFopen FS_fopen
#define MpegFClose FS_fclose
#define MpegFILE FS_FILE
#define MpegFseek FS_fseek
#define MpegFread FS_fread
#define MpegFtell FS_ftell
#define MpegFastFseek FSFileSeekEx
#else
#define MpegFread fread
#define MpegFseek fseek
#define MpegFopen fopen
#define MpegFtell ftell
#define MpegFILE FILE
#endif
#ifndef DWORD
typedef unsigned long int DWORD;
#endif
typedef DWORD FOURCC;
#ifndef LONG
typedef unsigned long int LONG;
#endif
#ifndef BYTE
typedef unsigned char BYTE;
#endif
#ifndef WORD
typedef short int WORD;
#endif
#ifndef uint32
typedef unsigned int uint32;
#endif
#define MPEG_SKIP_FLAG_NONE 0
#define MPEG_SKIP_FLAG_FFD 1
#define MPEG_SKIP_FLAG_FFW 2
#define MPEG_SKIP_FLAG_END 3
#define MPEG_STATE_PLAYING 0
#define MPEG_STATE_FFD 1
#define MPEG_STATE_FFW 2
#define MPEG_STATE_PAUSE 3
#define MPEG_STATE_STOP 4
#define MPEG_STATE_INITIALIZING 5
#define MPEG_FILE_PARSING_OK 0
#define MPEG_FILE_FORMAT_ERR -1
#define MPEG_FILE_INDX_ERR -2
#define MPEG_FILE_NO_MOVI_CHUNK -3
#define MPEG_FILE_RESOLUTION_ERR -4
#define MPEG_FILE_VIDEO_CODEC_ERR -5
#define MPEG_FILE_AUDIO_CODEC_ERR -6
#define MPEG_FILE_OPEN_ERR -7
#define MPEG_AUDIO_TYPE_MP2 0x1c0
#define MPEG_AUDIO_TYPE_AC3_0 0x80
#define MPEG_AUDIO_TYPE_AC3_1 0xc0
typedef struct
{
DWORD offset;
DWORD dts;
}MpegKeyFrame;
/* Mpeg Demux struct */
typedef struct
{
MpegFILE *videoStr;
MpegFILE *audioStr;
DWORD startTime;
DWORD duration; /* in ms */
DWORD curTime;
DWORD seekTime;
DWORD auCurTime;
DWORD auCodec;
DWORD width;
DWORD height;
/* */
DWORD filesize;
DWORD skipFlag; /* skip flag for fill video buffer */
double frameRate;
} MpegDemux;
EXT MpegDemux mpeg;
EXT unsigned int mpegPlayState;
EXT int MpegFileParsing(MpegDemux *mpeg);
EXT int MpegVideoGetDataToSDRAM(MpegDemux *mpeg, char *buffer, DWORD *size);
EXT int MpegFileOpen(MpegDemux *mpeg, char *path);
EXT void MpegFileClose(MpegDemux *mpeg);
EXT int MpegSynAudio2Video(MpegDemux *mpeg);
EXT int MpegSeek(MpegDemux *mpeg, unsigned int time);
EXT int MpegAudioGetDataToSDRAM(MpegDemux *mpeg, char *buffer, DWORD size);
EXT int MpegAudioCtrl(int cmd);
EXT int MpegAudioFSeek(MY_FILE *in, long int off , int b);
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -