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

📄 dvb_movie.h

📁 DVB软件,基于CT216软件的开发源程序.
💻 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 + -