📄 dvb_movie.h
字号:
#ifndef __DVB_MOV_H__
#define __DVB_MOV_H__
#include "dvb_sys.h"
#define DVB_MAX_AVI_AUDIO_TRACK (8)
#define DVB_MAX_AVI_VIDEO_TRACK (1)
typedef enum
{
EN_MOV_DATA_SRC_MEM,
EN_MOV_DATA_SRC_FS
}EN_MOV_DATA_SRC;
typedef enum
{
EN_DVB_MOVIE_TYPE_DAT,
EN_DVB_MOVIE_TYPE_MPG,
EN_DVB_MOVIE_TYPE_VOB,
EN_DVB_MOVIE_TYPE_AVI,
EN_DVB_MOVIE_TYPE_MP4,
}EN_DVB_MOVIE_TYPE;
typedef enum
{
EN_MOV_STATUS_SUCCESS,
EN_MOV_STATUS_DECODE_FAIL,
EN_MOV_STATUS_OPEN_FILE_FAIL,
EN_MOV_STATUS_NOT_FIT_SIZE,
EN_MOV_STATUS_NOT_SUPPORT_FILE,
EN_MOV_STATUS_INVALID_AVI
} EN_MOV_PLAY_STATUS;
typedef enum
{
EN_MOVIE_STATUS_UN_INIT,
EN_MOVIE_STATUS_STOP,
EN_MOVIE_STATUS_PLAY,
EN_MOVIE_STATUS_PAUSE,
EN_MOVIE_STATUS_ERROR,
} EN_MOVIE_STATUS;
typedef enum
{
EN_MOVIE_PLAYBACK_FAST2X,
EN_MOVIE_PLAYBACK_FAST4X,
EN_MOVIE_PLAYBACK_FAST8X,
EN_MOVIE_PLAYBACK_FAST16X,
EN_MOVIE_PLAYBACK_FAST32X,
} EN_MOVIE_PLAYBACK_FAST;
typedef enum
{
EN_MOVIE_PLAYBACK_SLOW2X,
EN_MOVIE_PLAYBACK_SLOW4X,
EN_MOVIE_PLAYBACK_SLOW8X,
EN_MOVIE_PLAYBACK_SLOW16X,
EN_MOVIE_PLAYBACK_SLOW32X,
} EN_MOVIE_PLAYBACK_SLOW;
typedef enum
{
EN_DVB_MOVIE_ESFMT_UNKNOWN = 0,
EN_DVB_MOVIE_ESFMT_MP12,
EN_DVB_MOVIE_ESFMT_MP3,
EN_DVB_MOVIE_ESFMT_AC3,
EN_DVB_MOVIE_ESFMT_DTS,
EN_DVB_MOVIE_ESFMT_PCM,
EN_DVB_MOVIE_ESFMT_MPEG1 = 150,
EN_DVB_MOVIE_ESFMT_MPEG2,
EN_DVB_MOVIE_ESFMT_MJPG,
EN_DVB_MOVIE_ESFMT_DIVX4 = 412,
EN_DVB_MOVIE_ESFMT_DIVX5 = 500,
EN_DVB_MOVIE_ESFMT_MPEG4 = 801,
EN_DVB_MOVIE_ESFMT_XVID = 802,
EN_DVB_MOVIE_ESFMT_3IVX = 803,
EN_DVB_MOVIE_ESFMT_MS_MPEG4 = 804,
} EN_DVB_MOVIE_ESFMT;
#ifdef DIVX_DRM_ENABLE
typedef enum
{
EN_DVB_MOVIE_DRM_NO_ERROR,
EN_DVB_MOVIE_DRM_AUTHOR_ERROR,
EN_DVB_MOVIE_DRM_RENTAL_EXPIRED,
} EN_DVB_MOVIE_DRM_STATUS;
#endif //DIVX_DRM_ENABLE
typedef struct
{
u8 u8VideoTrack;
u8 u8AudioTrack;
u16 u16Width;
u16 u16Height;
u32 u32TotalTime;
struct
{
EN_DVB_MOVIE_ESFMT ESFormat;
} astVideoTrack[DVB_MAX_AVI_VIDEO_TRACK];
struct
{
EN_DVB_MOVIE_ESFMT ESFormat;
u8 u8ChannelNo;
bool8 b8Supported;
u32 u32SampleRate;
} astAudioTrack[DVB_MAX_AVI_AUDIO_TRACK];
#ifdef DIVX_DRM_ENABLE
struct
{
u8 u8UseLimit;
u8 u8UseCount;
EN_DVB_MOVIE_DRM_STATUS enDrmStatus;
} DrmInfo;
#endif //DIVX_DRM_ENABLE
} DVB_MOVIE_INFO;
void DVB_Movie_SetFiletype(EN_DVB_MOVIE_TYPE enFiletype);
EN_DEVICE_TYPE DVB_Movie_GetDeviceType(void);
void DVB_Movie_SetDeviceType(EN_DEVICE_TYPE enDeviceType);
EN_MOV_PLAY_STATUS DVB_Movie_PlayFromFs(u32 u32FileIndex);
bool8 DVB_Movie_AVStop(void);
bool8 DVB_Movie_AVPause(bool8 b8Pause);
EN_MOVIE_STATUS DVB_Movie_DecodeGetStatus(void);
// file system about
u32 DVB_Movie_GetFileCount(void);
u32 DVB_Movie_GetDirCount(void);
bool8 DVB_Movie_DelFile(u32 u32FileIndex);
u16* DVB_Movie_GetFileName(u32 u32FileIndex, u8 *pu8FileName);
u16* DVB_Movie_GetDirName(u32 u32FileIndex, u8 *pu8DirName);
bool8 DVB_Movie_GetStatus(void);
EN_DRV_RESULT DVB_Movie_ReadFsData(u8* pu8Puffer, u32 u32Offset, u32 u32ReadLen);
bool8 DVB_Movie_DecodeInit(void);
bool8 DVB_Movie_DecodeTerm(void);
bool8 DVB_Movie_Play(void);
bool8 DVB_Movie_FastForward(EN_MOVIE_PLAYBACK_FAST enFast);
bool8 DVB_Movie_BackForward(EN_MOVIE_PLAYBACK_FAST enFast);
bool8 DVB_Movie_SlowForward(EN_MOVIE_PLAYBACK_SLOW enSlow);
bool8 DVB_Movie_Step(void);
bool8 DVB_Movie_GetCurrentTime(u8 *pu8Hour, u8 *pu8Min, u8 *pu8Sec);
bool8 DVB_Movie_GetMovieInfo(DVB_MOVIE_INFO *pstMovieInfo);
u8 DVB_Movie_GetAudioStremNum(void);
bool8 DVB_Movie_SetAudioStream(u8 u8AudioStreamID);
// DVB_Movie_ReadInfoFromFs is used to get movie info without playing the file
bool8 DVB_Movie_ReadInfoFromFs(u32 u32FileIndex, DVB_MOVIE_INFO *pstMovieInfo);
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -