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

📄 qhwlib.h

📁 这是一个SIGMA方案的PMP播放器的UCLINUX程序,可播放DVD,VCD,CD MP3...有很好的参考价值.
💻 H
📖 第 1 页 / 共 2 页
字号:
#define VIDEO_PLAY_SYNC_FASTER		0x0012#define VDIRECTCMD_PLAY				0x8002// osd commands#define OSD_NOCMD					0xFFFF#define OSD_OFF						0x0000#define OSD_ON						0x0001#define OSD_FLUSH					0x0002#define OSD_FLUSH_STATUS			0x0003// specific structures for HwLib interfaces// common EM84xx symbols definitions#define DEFINE_ENTRY(Symbol) SymbolEntry Symbol;#include "symbols.h" #define CommonSymbols\	MiscSymbolTable\	CommonVideoSymbolTable\	CommonAudioSymbolTable\	CommonSubpictureSymbolTable\	CloseCaptionSymbolTable\	DisplaySymbolTable\	PCIVideoSymbolTable\	PCIAudioSymbolTable\	PCISubpictureSymbolTable\	OSDSymbolTable\	VcxoSymbolTable\	DVBCloseCaptionSymbolsTable\	VideoFrameDisplaySymbolsTable\typedef struct tagCommonSymbolTable{	CommonSymbols} CommonSymbolTable;typedef struct tagQ3SymbolTable{	CommonSymbols} Q3SymbolTable;// old + new symbolstypedef struct tagQ4SymbolTable{	CommonSymbols	Q4Mpeg4SymbolsTable	Q4AudioNewSymbolsTable	Q4ReverseGOPSymbolsTable	VideoCaptureSymbolTable} Q4SymbolTable;// Jasper - same as Q4 except VideoIntypedef struct tagJSymbolTable{	CommonSymbols	Q4Mpeg4SymbolsTable	Q4AudioNewSymbolsTable	Q4ReverseGOPSymbolsTable	VideoCaptureSymbolTable	JOSDSymbolsTable} JSymbolTable;// should be removed from user's defines// EM847x rev A and B has and internal audio DAC (JDA1) and 2 sets of audio output.// First audio output can be either JDA1(PWM) or I2S.// The names of the pins are CH1P/SCIN,CH1N/SCOUT,CH2P/SDOUT,CH2N/SFOUT.// Second audio output is I2S only. The names of the pins are// DABCK, DADAT, DALRCK. The Ckin is the same as the for the first output.// The second audio "output" can be programmed as Audio Input too (pin SDIN).// An extra DAMCK pin can be used as SCkIn or output-driven by Jda1Ck.// JDA1 SCkin can be internal JDA1CK, SCIN or DAMCK.// JDA1 input clock (the one to be generate JDA1 SCkin) can be GCK or DAMCK.typedef enum{//                                                     EM847x A,B  EM847xC & EM848x	I2S_SCkinSCIN_Jda1CkinGCK_ScinIN_DamckIN = 0,	//     Ok      I2S_SCkinSCIN_ScinIN_DamckIN	I2SInv_SCkinSCIN_Jda1CkinGCK_ScinIN_DamckIN,	//     Ok      I2SInv_SCkinSCIN_ScinIN_DamckIN	I2S_SCkinDAMCK_Jda1CkinGCK_ScinOUT_DamckIN,		//     Ok      I2S_SCkinDAMCK_ScinOUT_DamckIN	I2S_SCkinJDA1CK_Jda1CkinGCK_ScinOUT_DamckOUT,	//     Ok      I2S_SCkinInternDivMclk_ScinOUT_DamckOUT	I2S_SCkinJDA1CK_Jda1CkinDAMCK_ScinOUT_DamckIN,	//     Ok      I2S_SCkinInternDivDAMCK_ScinOUT_DamckIN	JDA1_SCkinJDA1CK_Jda1CkinGCK_ScinOUT_DamckOUT,	//     Ok      unsupported	JDA1_SCkinDAMCK_Jda1CkinGCK_ScinOUT_DamckIN,	//     Ok      unsupported	JDA1_SCkinJDA1CK_Jda1CkinDAMCK_ScinOUT_DamckIN	//     Ok      unsupported} EM847xAudioInOutConfigEnum;// For the new EM847x-revC and EM848x the internal audio DAC Jda1 was removed,// meaning that the serial audio outputs are only I2S.// An internal AudioPLL has been added to generate the SCIN (256*fs).// The internal PLL can use the internal memory Mclk or external DAMCK pin.// We have less combinations - let's try to map them to the old ones#define I2SInv_SCkinSCIN_ScinIN_DamckIN			I2SInv_SCkinSCIN_Jda1CkinGCK_ScinIN_DamckIN#define I2S_SCkinSCIN_ScinIN_DamckIN			I2S_SCkinSCIN_Jda1CkinGCK_ScinIN_DamckIN#define I2S_SCkinDAMCK_ScinOUT_DamckIN			I2S_SCkinDAMCK_Jda1CkinGCK_ScinOUT_DamckIN#define I2S_SCkinInternDivMclk_ScinOUT_DamckOUT	I2S_SCkinJDA1CK_Jda1CkinGCK_ScinOUT_DamckOUT#define I2S_SCkinInternDivDAMCK_ScinOUT_DamckIN	I2S_SCkinJDA1CK_Jda1CkinDAMCK_ScinOUT_DamckIN/*1. For revA, B----------------------I2S_SCkinSCIN_Jda1CkinGCK_ScinIN_DamckIN,  // 000    SONY_HAC, SONY_HVC, NEC, VE2000, CLARION, GALAXY2000, NE2000, QUAD00, SYMPHONY2_QunliI2S_SCkinDAMCK_Jda1CkinGCK_ScinOUT_DamckIN,  // 001    PVR_DIGITAL_MD5hi_useEncodingClockI2S_SCkinJDA1CK_Jda1CkinGCK_ScinOUT_DamckOUT,  // 010    PVR_DIGITAL_MD5hi_normalPlayback, SYMPHONY_MD5hi, XCARD_MD5hi, MELODYI2S_SCkinJDA1CK_Jda1CkinDAMCK_ScinOUT_DamckIN,  // 011    BROADCAST, PVR_DIGITAL_MD5hi_useVCXO_or_useExtClock, JASMINE2JDA1_SCkinJDA1CK_Jda1CkinGCK_ScinOUT_DamckOUT,  // 100, 110    ANALOG_PVR, PVR_DIGITAL_MD5hi_normalPlayback, QUAD7x    SYMPHONY_MD5lo, XCARD_MD5loJDA1_SCkinDAMCK_Jda1CkinGCK_ScinOUT_DamckIN,  // 101    PVR_DIGITAL_MD5lo_useEncodingClockJDA1_SCkinJDA1CK_Jda1CkinDAMCK_ScinOUT_DamckIN,  // 111    PVR_DIGITAL_MD5lo_useVCXO_or_useExtClock 2. For rev.C------------------I2S_SCkinDAMCK_ScinOUT_DamckIN,  // 01    SYMPHONY2_MD2hi_extVCXOI2S_SCkinInternDivMclk_ScinOUT_DamckOUT,  // 10    SYMPHONY2_MD2lo    SONY_WEGA*/// registry related definitions - they can be removed from user's definestypedef struct tagREGISTRY_TABLE{	DWORD		TvOut;	DWORD		DoHwReset;	DWORD		DisableSpdifOutputInReset;	DWORD		ActiveVideoWidthNtsc;	DWORD		ActiveVideoWidthPal;	DWORD		BroadcastedVideo;	DWORD		ForcedProgressiveSourceOff;	DWORD		ForcedProgressiveAlways;	DWORD		NtscPalFrameDrop;	DWORD		VGAForcedInterlaced;	DWORD		AudioOutput;	DWORD		VolumeRight;	DWORD		VolumeLeft;	DWORD		DoAudioLater;	DWORD		DacType;				// for STPC to select Pcm1716 or 1720 	DWORD		AudioDacBitsPerSample;	// 16 or 24 - to choose I2S 16 or 24 bit	DWORD		Brightness;	DWORD		Contrast;	DWORD		Saturation;	DWORD		TvBrightness;	DWORD		TvContrast;	DWORD		TvSaturation;	MPEG_DISPLAY_RESOLUTION DisplayResolution;	DWORD		PreviousHFreq;	DWORD		TotalPixelsPerLine;	HDTV_MODE	HdtvMode;	DWORD		AcpiEnable;	DWORD		InvertField;	DWORD		Vmi_16bits;	DWORD		Ccir_656;	DWORD		SyncEnable;	DWORD		Vip20;	DWORD		ZoomEnable;	DWORD		WindowTvEnable;	DWORD		WindowHdtvEnable;	DWORD		OsdVideoIndependent;	DWORD		OverlayFlags;	// not used for new registry	DWORD		DecoderIsSlave;	DWORD		MaximumDvclk;}REGISTRY_TABLE;#define InitPropSet(pIface, pPropSetLst, PropSet, MaxItems, PropList, SetFunct, GetFunct )\{\	PPROPERTY_SET_ITEM	pPrpSet = pPropSetLst;\	DWORD i;\	pPrpSet += PropSet;\	pPrpSet->pHwIface = pIface;\	pPrpSet->SetId = PropSet;\	pPrpSet->nItems = MaxItems;\	pPrpSet->Item = PropList;\	for(i=0;i<pPrpSet->nItems;i++)\	{\		pPrpSet->Item[i].Id	= i;\		pPrpSet->Item[i].Flags	= 0;\		pPrpSet->Item[i].fnSet	= (PFUNCT)SetFunct;\		pPrpSet->Item[i].fnGet	= (PFUNCT)GetFunct;\	}\}\#define CHECK_SIZE(name)					\	if(pdwSizeOut)							\		*pdwSizeOut = sizeof(name ## _type);\	if(dwSizeIn != sizeof(name ## _type))	\		return E_INVALID_PROPERTY_BUFFER;#define SLEEP_PERIOD 10000	// microseconds#define CHECK_SLEEP_CONDITION(cond, NTimes, SleepPeriod)\{\		int i;\		for ( i=0; i<NTimes; i++ )\		{\			if ( cond )\				break;\			OSTimeDelay(SleepPeriod);\		}\}\// Asynchronous commandtypedef QRESULT (*CONTEXT_FN)(void*, DWORD Param1, DWORD Param2);typedef struct{	CONTEXT_FN		ContextFunct;	void*			pHwIface;	DWORD			Param1;	DWORD			Param2;}HWLIB_PENDING_STACK, *PHWLIB_PENDING_STACK;// defines to be used with IDecoder_RiscChannelReset// bit mask for reseting Risc channels for RISC_resets_0#define Reset_PCI_slave_read		0x0001	// chr0#define Reset_PCI_slave_write		0x0002	// chw0#define Reset_PCI_master_write		0x0004	// chw3, chw4#define Reset_RiscMisc_read			0x0008	// chr1#define Reset_RiscMisc_write		0x0010	// chw1#define Reset_Huffman_decoder		0x0020	// chr1, huffman#define Reset_Motion_compensation	0x0040	// chw2, chr3#define Reset_InverseQuantizer		0x0080// bit mask for reseting Risc channels for RISC_resets_1#define Reset_Video_read			0x0100	// chr4,chr5,chr6,chr7,chr8,chr11,display#define Reset_Audio					0x0200	// chr9,chr10,chw5,PCM,Ac3_Mpeg#define Reset_TvEncoder				0x0400#define Reset_LBC_internal			0x0800	// internal LBC block#define Reset_LBC_external			0x1000	// "rst12" is only connected to H_RESETB pin#define Reset_VideoInput			0x2000typedef enum{	VideoStoppedAfterReset = 1,	VideoPlaying,	VideoPaused,	VideoBlackFrame,	VideoStopped}QVideoState;// properties related definitions - they can be removed from user's definestypedef QRESULT (*PFUNCT) (void* pInterface,	DWORD RegSet, DWORD RegId, DWORD Flags, void* pData, DWORD dwSizeIn, DWORD* pdwSizeOut);typedef struct{	DWORD	Id;	DWORD	Flags;	PFUNCT	fnGet;	PFUNCT	fnSet;}PROPERTY_ITEM, *PPROPERTY_ITEM;typedef struct{	DWORD			SetId;	DWORD			nItems;	PPROPERTY_ITEM	Item;	void*			pHwIface;}PROPERTY_SET_ITEM, *PPROPERTY_SET_ITEM;typedef PROPERTY_ITEM		REGISTRY_ITEM, *PREGISTRY_ITEM;typedef PROPERTY_SET_ITEM	REGISTRY_SET_ITEM, *PREGISTRY_SET_ITEM;#ifdef __cplusplus}#endif #endif	// __QHWLIB_H__

⌨️ 快捷键说明

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