avd.h

来自「代码有点长,需细心阅读,仅供影音视听类产品的开发人员参考」· C头文件 代码 · 共 170 行

H
170
字号
#ifndef	__AVD_H
#define	__AVD_H

#include "global.h"
/*
**	MPEG1 AV Decoder States.
*/
enum
{
	STATE_IDLE = 0x00,
	STATE_PLAY = 0x10,
	STATE_PLAYONESLIDE,
	STATE_PLAYROMSLIDE,
	STATE_PLAYSLIDE,
	STATE_PLAYMP3,
	STATE_FAST,
	STATE_FREEZE,
	STATE_PAUSE,
	STATE_PREVIEW,
	STATE_PREVIEW_READY,
	STATE_READCD,
	STATE_SEARCH,
	STATE_SLOWMOTION,
	STATE_SINGLESTEP,
	STATE_READTOC
};

/*
** VARIABLE
** AVD_state
**
** MPEG A/V Decoder State
*/
EXTERN BYTE AVD_state;

#define	SetAVDState(x)		(AVD_state=(x))

#define	IsAVDS_PLAY()		(AVD_state==STATE_PLAY)
#define	IsAVDS_READTOC()	(AVD_state==STATE_READTOC)
#define	IsAVDS_PLAYMP3()	(AVD_state==STATE_PLAYMP3)


/*
** VARIABLE
** AVD_state_flags
**
** MPEG A/V Decoder State Generated Flags.
*/
EXTERN UINT16 AVD_state_flags;

#define	AVD_DATA		0x8000			/* AVD is processing data */
#define	AVD_LINEAR_PLAY	0x4000	/* linear playback something  */
//#define AVD_SEARCHW   0x0800
#define	AVD_SLOW		0x0800
#define	AVD_STEP		0x0400
#define	AVD_FREEZE		0x0200		/* playback has been freezed  */
#define	AVD_PAUSE		0x0100			/* playback has been paused */
#define	AVD_SEEK_I		0x0080		/* in seeking a I picture */
#define	AVD_DECODED		0x0040		/* ever-decoded ??    */
#define	AVD_REALTIME	0x0020		/* realtime playback??    */
#define	AVD_SLIDE		0x0010			/* playing current-decoding */
#define	AVD_PREVIEW		0x0008		/* 9x9 preview??    */
#define	AVD_PLAY		0x0004			/* play       */
#define	AVD_PLAY_I		0x0002		/* play I only      */
#define	AVD_PLAY_IP		0x0001		/* play IP only     */

#define	IsAVDPlayI()			(AVD_state_flags & AVD_PLAY_I)
#define	IsAVDPlayIP()			(AVD_state_flags & AVD_PLAY_IP)
#define	IsAVDPlayIPB()			((AVD_state_flags & (AVD_PLAY_I|AVD_PLAY_IP))==0)
#define	IsAVDPlayIOnly()		(AVD_state_flags & (AVD_PLAY_I|AVD_PREVIEW))
#define	IsAVDRealTime()			(AVD_state_flags & AVD_REALTIME)
#define	IsAVDPreview()			(AVD_state_flags & AVD_PREVIEW)
#define	IsAVDSlide()			(AVD_state_flags & AVD_SLIDE)
#define	IsAVDLinearPlay()		(AVD_state_flags & AVD_LINEAR_PLAY)
#define	IsAVDSlidePause()		(AVD_state == STATE_PLAYSLIDE)
#define	IsAVDPlaying()			(AVD_state_flags & AVD_PLAY)
#define	IsAVDSeekIPic()		(AVD_state_flags & AVD_SEEK_I)
#define	IsAVDSynchorous()		((AVD_state_flags&(AVD_REALTIME|AVD_PLAY_I|AVD_PLAY_IP))==AVD_REALTIME)
#define	IsAVDDisplayDecoding()	((AVD_state_flags&(AVD_DECODED|AVD_SLIDE)) == AVD_SLIDE)
#define	IsAVDSkipB()			(AVD_state_flags & (AVD_PLAY_I | AVD_PLAY_IP))
#define	IsAVDDecoded()			(AVD_state_flags & AVD_DECODED)
#define	IsAVDData()				(AVD_state_flags & AVD_DATA)

#define	IsAVDPaused()			(AVD_state_flags & AVD_PAUSE)
#define	IsAVDFreezed()			(AVD_state_flags & AVD_FREEZE)
#define	IsAVDStepped()			(AVD_state_flags & AVD_STEP)
#define	IsAVDSlowed()			(AVD_state_flags & AVD_SLOW)

#define	IsAVDForward()			(adv_search_time > 0)
#define	IsAVDBackward()			(adv_search_time < 0)

#define AVD_SetPaused()			(AVD_state_flags |= AVD_PAUSE)
#define AVD_SetNoPaused()		(AVD_state_flags &= ~AVD_PAUSE)
#define AVD_SetFreezed()		(AVD_state_flags |= AVD_FREEZE)
#define AVD_SetNoFreezed()		(AVD_state_flags &= ~AVD_FREEZE)
#define AVD_SetStepped()		(AVD_state_flags |= AVD_STEP)
#define AVD_SetNoStepped()		(AVD_state_flags &= ~AVD_STEP)
#define AVD_SetSlowed()			(AVD_state_flags |= AVD_SLOW)
#define AVD_SetNoSlowed()		(AVD_state_flags &= ~AVD_SLOW)

#define AVD_SetDecoded()    	(AVD_state_flags |= AVD_DECODED)
#define AVD_SetSeekIPic()		(AVD_state_flags |= AVD_SEEK_I)
#define AVD_SetNoSeekIPic()		(AVD_state_flags &= ~AVD_SEEK_I)

/*
** video bitstream level status.	
**
** 1. NTSC/PAL frame-rate
** 2. NTSC/PAL size
*/
/* decode type */
#define	AVD_VIDEO_DECODE_UNKNOWN	0x00
#define	AVD_VIDEO_DECODE_NTSC		0x01
#define	AVD_VIDEO_DECODE_PAL		0x02
#define	AVD_VIDEO_DECODE_MOVIE		0x03
#define	AVD_VIDEO_DECODE_MASK		0x03

/* decode size */
#define	AVD_VIDEO_SIZE_PAL		0x04
#define	AVD_VIDEO_FRAMERATE		0x80

EXTERN BYTE AVD_video_flags;

#define	AVDDecodeType()		(AVD_video_flags & AVD_VIDEO_DECODE_MASK)

#define	IsAVDDecodeNTSC()	(AVDDecodeType() == AVD_VIDEO_DECODE_NTSC)
#define	IsAVDDecodePAL()	(AVDDecodeType() == AVD_VIDEO_DECODE_PAL)
#define	IsAVDDecodeMOVIE()	(AVDDecodeType() == AVD_VIDEO_DECODE_MOVIE)

#define	AVD_SetDecodeNTSC()	(AVD_video_flags = (AVD_video_flags&(~AVD_VIDEO_DECODE_MASK))| AVD_VIDEO_DECODE_NTSC)
#define	AVD_SetDecodePAL()	(AVD_video_flags = (AVD_video_flags&(~AVD_VIDEO_DECODE_MASK))| AVD_VIDEO_DECODE_PAL)
#define	AVD_SetDecodeMOVIE()	(AVD_video_flags = (AVD_video_flags&(~AVD_VIDEO_DECODE_MASK))| AVD_VIDEO_DECODE_MOVIE)
#define	AVD_SetDecodeUnknown()	(AVD_video_flags = (AVD_video_flags&(~AVD_VIDEO_DECODE_MASK))| AVD_VIDEO_DECODE_UNKNOWN)

#define	IsAVDSizePAL()		(AVD_video_flags & AVD_VIDEO_SIZE_PAL)

#define	AVD_SetSizePAL()	(AVD_video_flags |= AVD_VIDEO_SIZE_PAL)
#define	AVD_SetSizeNTSC()	(AVD_video_flags &= ~AVD_VIDEO_SIZE_PAL)

#define	IsAVDFrameRate()	((AVD_video_flags&AVD_VIDEO_FRAMERATE) && IsAVDPlayIPB())
#define	AVD_SetFrameRate()	(AVD_video_flags |= AVD_VIDEO_FRAMERATE)
#define	AVD_SetNoFrameRate()	(AVD_video_flags &= ~AVD_VIDEO_FRAMERATE)

#define	IsAVDDisplayNTSC()	(mode_display==MODE_NTSC)
#define	IsAVDDisplayPAL()	(mode_display==MODE_PAL)
#define	IsAVDDisplayPALM()	(mode_display==MODE_PALM)


/*
**
*/
EXTERN BYTE AVD_status;

#define	AVD_MEDIA_TIMEOUT	0x01
#define	AVD_MEDIA_INTERRUPT	0x02
#define	AVD_MEDIA_ERROR		0x80


#define	IsAVDMediaTimeout()		(AVD_status & AVD_MEDIA_TIMEOUT)
#define	IsAVDMediaInterrupt()	(AVD_status & AVD_MEDIA_INTERRUPT)
#define	IsAVDMediaError()		(AVD_status & AVD_MEDIA_ERROR)

#define	AVD_SetMediaTimeout()	(AVD_status |= AVD_MEDIA_TIMEOUT)
#define	AVD_SetMediaInterrupt()	(AVD_status |= AVD_MEDIA_INTERRUPT)
#define	AVD_SetMediaError()		(AVD_status |= AVD_MEDIA_ERROR)

#define	AVD_ResetMediaStatus()	(AVD_status = 0)

#endif/*__AVD_H*/

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?