idecoder.h

来自「这是一个SIGMA方案的PMP播放器的UCLINUX程序,可播放DVD,VCD,」· C头文件 代码 · 共 298 行 · 第 1/2 页

H
298
字号
/******************************************************************************  IDecoder.h : Type Definitions for IDecoder interface*  REALmagic Decoder Hardware Library*  Created by Aurelia Popa-Radu*  Copyright Sigma Designs Inc*  Sigma Designs Proprietary and confidential*  Created on 8/27/99*  Description:*****************************************************************************/#ifdef __cplusplusextern "C"{#endif #ifndef __IDECODER_H__#define __IDECODER_H__//////////////////////////////////////////////////////////////////////////////// IDecoder Abstract interfacetypedef HWLIB_INTERFACE tagIDecoder{	struct tagIDecoderVtbl *lpVtbl;} IDecoder;typedef struct tagIDecoderVtbl{	HWLIB_BEGIN_INTERFACE		void	( *Delete)				(IDecoder* This, BOOL bDeleteObject);		void	( *Init)				(IDecoder* This, void* pHwLibConf, DWORD* pQuasarVersion);		void	( *SetRegistry)			(IDecoder* This, REGISTRY_TABLE* pRegistry);		void	( *WriteReg)			(IDecoder* This, DWORD RegAddr, DWORD Data);		DWORD	( *ReadReg)				(IDecoder* This, DWORD RegAddr);		QRESULT	( *WriteNReg)			(IDecoder* This, DWORD StartAddr, DWORD* pData, DWORD n);		QRESULT	( *ReadNReg)			(IDecoder* This, DWORD StartAddr, DWORD* pData, DWORD n);		QRESULT	( *SetPIODir)			(IDecoder* This, DWORD PIONumber, DWORD Dir);		QRESULT	( *WritePIO)			(IDecoder* This, DWORD PIONumber, DWORD Data);		QRESULT	( *ReadPIO)				(IDecoder* This, DWORD PIONumber, DWORD* pData);		BOOL	( *WriteDramSlave)		(IDecoder* This, IN DWORD addr, IN DWORD* pData, IN DWORD nbytes);		BOOL	( *ReadDramSlave)		(IDecoder* This, IN DWORD addr, OUT DWORD* pData, IN DWORD nbytes);		BOOL	( *FillDramSlave)		(IDecoder* This, IN DWORD addr,IN DWORD nbytes, DWORD value);		QRESULT	( *WriteSCR)			(IDecoder* This, MPEG_SCR SCR);		MPEG_SCR( *ReadSCR)				(IDecoder* This);		DWORD	( *ReadHwPts45k)		(IDecoder* This);		void	( *InitPtsFifo)			(IDecoder* This, DWORD type);		DWORD	( *PtsFifoEmptiness)	(IDecoder* This, DWORD type);		BOOL	( *WritePTS)			(IDecoder* This, DWORD type, DWORD ByteCount, MPEG_SCR pts);		QRESULT	( *WritePCR)			(IDecoder* This, MPEG_SCR pcr);		void	( *SetSpeed)			(IDecoder* This, DWORD Speed);		void	( *SetFrameEvent)		(IDecoder* This, DWORD nFrame);		DWORD	( *GetFrameEvent)		(IDecoder* This);		DWORD	( *GetFrameCounter)		(IDecoder* This);		void	( *SetBrightness)		(IDecoder* This, LONG Brightness);		DWORD	( *GetBrightness)		(IDecoder* This);		void	( *SetContrast)			(IDecoder* This, LONG Contrast);		DWORD	( *GetContrast)			(IDecoder* This);		void	( *SetSaturation)		(IDecoder* This, LONG Saturation);		DWORD	( *GetSaturation)		(IDecoder* This);		BOOL	( *SetBCS)				(IDecoder* This);		BOOL	( *UpdateMpegDICOM)		(IDecoder* This, LONG X, LONG Y, LONG W, LONG H, DWORD BorderX, DWORD BorderY, DWORD Correction, DWORD Interlaced);		void	( *UpdateVideoWindow)	(IDecoder* This, WND* pVisWnd, WND* pFrameWnd, WND* pValidVisibleWnd, WND* pOsdWnd, WND* pOsdHiLiWnd, DWORD Dicom_TvOut);		void	( *UpdateHwButton)		(IDecoder* This, LONG leftb, LONG topb, LONG rightb, LONG bottomb, LONG wColor, LONG wContrast);		HRESULT	( *QueryInterface)		(IDecoder* This, QIID iid, void** ppv);		BOOL	( *SearchSymbol)		(IDecoder* This, CHAR* Symbol,DWORD *Value);		QRESULT	( *GetSymbolTable)		(IDecoder* This, void* pSymbolTable, DWORD* pSize);		QRESULT	( *SetMicrocode)		(IDecoder* This, DWORD Id);		void	( *RiscDramReset)		(IDecoder* This);		void	( *SetKmin)				(IDecoder* This, DWORD Coef, DWORD HFrequency);		DWORD	( *GetQuasarVersion)	(IDecoder* This);		DWORD	( *GetMicrocodeVersion)	(IDecoder* This);		QRESULT	( *HwReset)				(IDecoder* This);		QRESULT	( *HwStart)				(IDecoder* This);		void	( *StopDisplayController)	(IDecoder* This);		BOOL	( *IsInterlaced)		(IDecoder* This, DWORD DisHMax);		void	( *QuasarMaster)		(IDecoder* This, DWORD nbits, DWORD ccir, MASTERPARAMS* MP, DWORD Interlaced, DWORD Polarity, DWORD VideoMode);		void	( *QuasarSlave)			(IDecoder* This, DWORD nbits, DWORD ccir, MASTERPARAMS* MP, DWORD Polarity, DWORD VideoMode);		void	( *SetCurrentIrqMask)	(IDecoder* This, DWORD IrqMask);		DWORD	( *GetCurrentIrqMask)	(IDecoder* This);		QRESULT	( *VideoWriteCommand)	(IDecoder* This, IN DWORD CommandID);		QRESULT	( *AudioWriteCommand)	(IDecoder* This, IN DWORD CommandID);		QRESULT	( *OsdWriteCommand)		(IDecoder* This, IN DWORD CommandID);		void	( *SetVolumeRight)		(IDecoder* This, DWORD Volume);		DWORD	( *GetVolumeRight)		(IDecoder* This);		void	( *SetVolumeLeft)		(IDecoder* This, DWORD Volume);		DWORD	( *GetVolumeLeft)		(IDecoder* This);		void	( *SetAudioOutputEnable)(IDecoder* This, DWORD AudioOutputEnable);		void	( *SetAudioMode)		(IDecoder* This, DWORD AudioMode);		DWORD	( *GetAudioMode)		(IDecoder* This);		void	( *SetAudioFormat)		(IDecoder* This, DWORD AudioFormat);		DWORD	( *GetAudioFormat)		(IDecoder* This);		void	( *SetAudioOutput)		(IDecoder* This, DWORD AudioOutput);		DWORD	( *GetAudioOutput)		(IDecoder* This);		void	( *SetAudioNumChannels)	(IDecoder* This, DWORD nChannels);		DWORD	( *GetAudioNumChannels)	(IDecoder* This);		void	( *SetAudioNumBitsPerSample)	(IDecoder* This, DWORD nAudioNumBitsPerSample);		DWORD	( *GetAudioNumBitsPerSample)	(IDecoder* This);		QRESULT	( *SetAudioSampleRate)	(IDecoder* This, DWORD Rate);		DWORD	( *GetAudioSampleRate)	(IDecoder* This);		void	( *InitPacketsFifo)		(IDecoder* This, DWORD type);		void	( *FlushPacketsFifo)	(IDecoder* This, DWORD type, DWORD* pnEventPending);		DWORD	( *PacketsFifoEmptiness)(IDecoder* This, DWORD type);		void	( *AddPacketInPacketsFifo)(IDecoder* This, DWORD type, DWORD PhysicalAddress, DWORD ByteSize, DWORD EncryptedInfo);		BOOL	( *FreeConsumedData)	(IDecoder* This, DWORD type, DWORD* npEventPending);		BOOL	( *WriteData)			(IDecoder* This, DWORD type,\			PMPEG_WRITE_DATA pMWD, DWORD size, BOOL bLastPacket, DWORD* pnEventPending);		BOOL	( *CaptureVideoFrame)	(IDecoder* This, BYTE *pDst, int bits, DWORD* pBufferSize);		QRESULT	( *GetMpegChgKey)		(IDecoder* This, BYTE* p);		QRESULT	( *SetMpegKey1)			(IDecoder* This, BYTE* p);		QRESULT	( *GetMpegKey2)			(IDecoder* This, BYTE* p);		BOOL 	( *SendMpegDiscKey)		(IDecoder* This, BYTE* p);		QRESULT	( *SendMpegTitleKey)	(IDecoder* This, BYTE* p);		QRESULT	( *GetEncryptedTitleKey)(IDecoder* This, BYTE* p);		void	( *SetForcedProgressive)(IDecoder* This, DWORD ForcedProgressive);		DWORD	( *GetForcedProgressive)(IDecoder* This);		void	( *InitCloseCaption)	(IDecoder* This);		BYTE	( *CloseCaptionInterrupt)(IDecoder* This, BYTE* pBuffer, BOOL CloseCaptionOnTv);		BOOL	( *FieldClosedCaption)	(IDecoder* This, BYTE* pField, WORD* pCCWord);		// test purpose		BOOL	( *GetDataFifoInfo)		(IDecoder* This, DWORD type, DATA_FIFO* p);		BOOL	( *GetPacketsFifoInfo)	(IDecoder* This, DWORD type, PACKETS_FIFO* p);		DWORD	( *GetCommand)			(IDecoder* This, DWORD type);		DWORD	( *GetStatus)			(IDecoder* This, DWORD type);		void	( *GetWindow)			(IDecoder* This, RmWindow* r, DWORD type);		void	( *GetScalingFactors)	(IDecoder* This, SCALING* scaling, DWORD type);		DWORD	( *GetIrqMask)			(IDecoder* This);		DWORD	( *GetIrqStatus)		(IDecoder* This);		DWORD	( *GetIrqDivider)		(IDecoder* This);		DWORD	( *GetErrorCode)		(IDecoder* This);		DWORD	( *GetMicrocodeOverlayAddr)	(IDecoder* This);		QRESULT	( *TestReg)				(IDecoder* This);		QRESULT	( *TestPM)				(IDecoder* This);		QRESULT	( *TestDM)				(IDecoder* This);		QRESULT	( *TestDram)			(IDecoder* This, DWORD TestSize);		DWORD	( *GetDramSize)			(IDecoder* This);		QRESULT	( *TestDramMaster)		(IDecoder* This, DWORD TestSize);		QRESULT	( *YannTestDRAM)		(IDecoder* This, BYTE* pByte);		void	( *DrawBar)				(IDecoder* This, DWORD x, DWORD y, DWORD w, DWORD h, DWORD luma, DWORD chroma);		void	( *WriteDisplayFrameYUV)(IDecoder* This, DWORD Yaddr, DWORD* pY, DWORD nYbytes,								   DWORD UVaddr, DWORD* pUV, DWORD nUVbytes);		void	( *InitPropertySet)		(IDecoder* This, PPROPERTY_SET_ITEM pPropSet, DWORD dwSize);		QRESULT	( *SetProperty)			(IDecoder* This, DWORD PropSet, DWORD PropId, DWORD Flags, void* pData, DWORD dwSizeIn, DWORD* pdwSizeOut);		QRESULT	( *GetProperty)			(IDecoder* This, DWORD PropSet, DWORD PropId, DWORD Flags, void* pData, DWORD dwSizeIn, DWORD* pdwSizeOut);// only EM847x		QRESULT	( *SetDisplayFilter)	(IDecoder* This, BYTE FilterId, BYTE* pData, DWORD dwSize);		QRESULT ( *ProgramVClk)			(IDecoder* This, DWORD* pFreq);		QRESULT ( *ReadLbcReg)			(IDecoder* pIDecoder, DWORD Address, DWORD* pData);		QRESULT ( *WriteLbcReg)			(IDecoder* pIDecoder, DWORD Address, DWORD Data);		QRESULT	( *ReadDataFromLBC)		(IDecoder* This, IN DWORD Type, IN DWORD Addr, IN DWORD nBytes);

⌨️ 快捷键说明

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