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 + -
显示快捷键?