⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mpegfile.h

📁 瑞星微公司RK27XX系列芯片的SDK开发包
💻 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 + -