📄 common.h
字号:
#pragma once
/*define global const variable*/
//Video FORCC
#define VIDEO_FORCC_H264 MAKEFOURCC('H', '2', '6', '4')
#define VIDEO_FORCC_h264 MAKEFOURCC('h', '2', '6', '4')
//Audio tag
#define AUDIO_TAG_AAC 0xFF
#define AUDIO_TAG_AACPLUS 0xFB // unknown
#define ERR_NONE 0
#define ERR_FAILED -1
#define ERR_INVALID -2
#define ERR_PARAMETER -3
#define ERR_INIT -4
#define ERR_PLAY -5
#define ERR_STOP -6
#define ERR_PAUSE -7
#define WM_DISPLAY_TIME WM_USER + 104
//define play state
typedef enum
{
NONE = 0,
READY,
BUFFERING,
PLAY,
PAUSE,
FORWARD,
REWIND,
}PlayState;
//define thread state
typedef enum
{
THREAD_NONE,
THREAD_RUNNING,
THREAD_PAUSE,
THREAD_STOP,
}ThreadState;
typedef struct
{
WORD NumberOfStreams; /* Number of data streams */
/* video property */
DWORD VideoTag; /*video codec forcc*/
DWORD Width; /* Width of video frame in pixels */
DWORD Height; /* Height of video frame in pixels */
DWORD VideoNumberOfFrames; /* Number of video frame stored */
double FramePerSec; /* Number of video frame stored */
/* audio property */
WORD AudioTag; /*Audio codec type*/
WORD Channels;
DWORD SamplesPerSec;
DWORD AudioNumberOfFrames; /* Number of audio frame stored */
DWORD AudioLengthOfFrames; /* Length of all audio frames stored */
SHORT AudioExtraDataSize; /* Size of Audio extra data */
BYTE AudioExtraData[2]; /* Audio extra data for aac decode */
/* file information*/
DWORD FileSize; /*bytes*/
DWORD TotalPlayTime; /*seconds*/
}AVIHDR, FAR *LPAVIHDR;
typedef int (*TWriteFrameCB)(BYTE *lpData, DWORD &dwTime);
struct IMediaPlayer
{
virtual int OnReadFrame(BYTE **lpData, DWORD &nTime)=0;
virtual int OnReadAudio(BYTE **lpData, DWORD &nTime)=0;
};
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -