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

📄 em86xx.h

📁 sigmadesign smp8623 gui source code ,bingo
💻 H
字号:
/***************************************** Copyright  2001-2003   Sigma Designs, Inc. All Rights Reserved Proprietary and Confidential *****************************************//**  @file   em86xx.h  @brief  interface for em86xx decoder board    @author Laurent Crinon  @date   2004-01-07*/#ifndef __RMEM86XXDECODER_H__#define __RMEM86XXDECODER_H__#include "rua/include/rua.h"#include "rua/include/rua_property.h"//class audioStreamConverter;struct DH_control;typedef enum{	MPEG2_PROFILE = 548,	MPEG2_TRANSPORT_PROFILE,	MP4_PROFILE,	DIVX3_PROFILE,	WMV_PROFILE,}typeVideoProfile;class RMem86xxDecoder : public RMdecoderIface{ public:	RMem86xxDecoder(typeCuracaoContext *context, RMbool useHDProfile);	virtual ~RMem86xxDecoder();	//#ifndef WITH_MONO//	virtual RMstatus Open(typeMediaPlayer playerType, RMascii *url, RMcallback callback, void *userData);//#else//	virtual RMstatus Open(typeMediaPlayer playerType, RMascii *not_used_1, void *not_used_2, void *not_used_3);//#endif////	virtual RMstatus Close();	virtual RMstatus SetDecodingVideoStream(RMuint16 StreamID);	virtual RMstatus SetDecodingAudioStream(RMuint8 StreamID, RMuint8 SubStreamID);	virtual RMstatus SetDecodingSubpictureStream(RMuint8 StreamID, RMuint8 SubStreamID);	virtual RMstatus SetAudioParameter(typeCuracaoAudioParameters parameters, RMint8 astn);	virtual RMstatus SetSubpicturePalette(RMuint8 sppal[16*4]);	virtual RMstatus SubPictureHilight (RMuint16 leftb, RMuint16 topb,					    RMuint16 rightb, RMuint16 bottomb, 					    RMuint32 wColor, RMuint32 wContrast);		virtual RMstatus SubPictureOn (RMbool On);	virtual RMstatus HilightOn (RMbool On);	virtual RMstatus VideoMode (RMuint32 PTS, 				    RMdvdVideoMode videoMode,				    RMbool bForce = FALSE);	virtual RMstatus Flush();	virtual RMstatus WaitForEOS(RMbool audio, RMbool video, RMuint32 timeout = 30000000);// RMcssDecoder	static RMstatus GetChallengeEm86xx (RMuint8 challenge[10], void *userData);	static RMstatus RecordChallengeResponseEm86xx (RMuint8 response[5], void *userData);	static RMstatus SendChallengeEm86xx (RMuint8 challenge[10], void *userData);	static RMstatus GetChallengeResponseEm86xx (RMuint8 challenge_response[5], void *userData);	static RMstatus SendDiscKeyEm86xx (RMuint8 discKey[2048], void *userData);	static RMstatus SendTitleKeyEm86xx (RMuint8 titleKey[5], void *userData);	static RMstatus DecryptEm86xx (RMuint8 *buffer, RMuint32 size, void *userData);//	virtual CSSDecoderCallBackTableType *GetCssDecoderTable();	virtual RMstatus Pause();		virtual RMstatus Forward(RMuint32 speed, RMbool isAudioOnly);		virtual RMstatus Backward(RMuint32 speed, RMbool isAudioOnly);		virtual RMstatus Stop();	virtual RMstatus Play();		virtual void SendData(RMuint8 *pStart, RMuint64 PTS, RMbool isPTSAvailable, RMuint64 SCR, 			      RMint32 FirstAccessUnitPointer, RMuint32 sampleSize,			      RMuint32 offset, RMSampleType type, RMbool disablePTS, RMbool setScrOnce, 			      RMbool setVobuSPtmOnce, RMuint64 VOBU_S_PTM, RMbool copy);	virtual RMuint8 *GetBuffer(RMSampleType type);	virtual void ReleaseBuffer(RMSampleType type, RMuint8 *pBuf);	virtual void GetPoolInfo(RMSampleType type, RMuint32 *bufferSize, RMuint32 *nbBuffer);	virtual RMstatus GetSTC(RMuint64* stc);	virtual RMstatus SetSTCOffset(RMuint64 offset);	virtual RMstatus GetTitleKey(RMuint8 titleKey[5]);		virtual void *GetRUAInstance();	virtual void *GetDCCInstance();public:	virtual void SetDCCInfo(void *p);	virtual void ResetDCCInfo();		virtual RMstatus SetVolume(RMuint32 value);		virtual RMstatus SetBrightness(RMint8 value);	virtual RMstatus SetContrast(RMuint8 value);	virtual RMstatus SetSaturation(RMuint8 value);	virtual RMstatus SetAudioScmsBit(typeCuracaoAudioParameters parameters);	RMstatus UpdateHDCP(RMbool enable_hdcp, RMbool bforce);	RMstatus UpdateEDIDInformation(struct CEA861BDataBlockCollection pDBC[], RMuint32 nb_EDID_extensions);	RMstatus UpdateHDMIAudioFormat();	RMstatus SendHDMIInfoFrame(void);	RMstatus UpdateHDMIVideoFormat(enum EMhwlibTVStandard TVStandard);	RMstatus UpdateHDMIVideoPixelClock(enum EMhwlibTVStandard standard);	virtual RMstatus UpdateOutputProtection(enum RMProtectType protect_type, RMuint32 context_value); 	virtual RMstatus UpdateOutputs(RMbool autoSwitch = TRUE);	//	virtual RMstatus SetHDComponentOut(RMuint32 standard);		RMstatus UpdateDRMOPL(RMuint32 context_value);		virtual RMstatus SetTVOut(RMuint32 standard, enum DCCVideoConnector connector, enum EMhwlibColorSpace color_space,				  RMbool bForceOutput = TRUE);	virtual RMstatus GetTVOut(RMuint32 *pStandard, enum DCCVideoConnector *pConnector, enum EMhwlibColorSpace *pColorSpace);	//	virtual RMstatus SetTVOut(RMuint32 standard, );	//	virtual RMstatus SetDVIHDMIOut(RMuint32 standard);	virtual RMstatus SetDVIHDMIAutoEDID(RMbool auto_edid);	//	virtual RMstatus SetComponentOutFormat(enum EMhwlibComponentMode component, enum EMhwlibColorSpace color_space);	virtual RMbool GetHDMIConnected();	virtual RMbool GetHDCPState();		virtual RMstatus GetTimeDisplayedFrame(RMSampleType type, RMuint64 *time);	virtual RMstatus SetMacrovisionLevel(RMuint32 level);		RMstatus get_stb(RMuint32 timer_number, 			 RMuint64 *stb);		RMuint32 GetFrameRate();	virtual RMstatus Step();	virtual RMstatus ResumeFromStep();	virtual RMstatus SetDualMode(enum OutputDualMode_type mode);	virtual RMstatus GetDualMode(enum OutputDualMode_type *mode);		virtual RMstatus SetSpdifMode(enum OutputSpdif_type mode);	virtual RMstatus GetSpdifMode(enum OutputSpdif_type *mode);		virtual RMstatus SetTVType(RMTvTypes tvType, EMhwlibScalingMode scalingmode);		virtual RMstatus ScaleDisplay(RMuint32 scaler, RMuint16 x, RMuint16 y, RMuint16 width, RMuint16 height);		virtual RMstatus GetAudioOutputChannels(RMuint8 *channels);	virtual RMstatus SetAudioOutputChannels(RMuint8 channels);		RMstatus SetDemuxAuxiliaryData(void *pValue, RMuint32 ValueSize);	RMstatus GetXferFifoInfo(struct XferFIFOInfo_type *pInfo);		RMstatus EnableSPUSurface(RMbool enable);		RMstatus DisableVideoConnector(enum DCCVideoConnector *pConnector);		// em86xx only	RMstatus ResetDCCLeaveDisplay();	RMstatus ReenableAudio();	#ifdef WITH_MONO	RMstatus Reopen(typeMediaPlayer playerType, RMbool reopen_video, RMbool reopen_audio, RMbool reopen_stc = FALSE, RMbool reopen_cc = FALSE);#endif	 private:	void CleanallAndExit (RMbool = FALSE);//	RMstatus OpenDecoder(typeVideoProfile profile,//			     RMbool hdtv,//			     RMbool dvd, //			     RMbool vcd,//			     RMbool useHwDemux,//			     RMuint32 video_bts_fifo_size,//			     RMuint32 video_xfer_fifo_buffer_count,//			     RMuint32 audio_bts_fifo_size,//			     RMuint32 audio_xfer_fifo_buffer_count,//			     RMbool launch_decoders);//	RMstatus CloseDecoder();	RMbool DecoderStatePlaying(RMuint32 moduleId);	RMstatus PlayEx(DCCVideoPlayCommand cmd);	RMstatus Stop(RMbool blackFrame);		RMstatus EnableScart(RMbool enable, enum DCCVideoConnector ScartConnector = DCCVideoConnector_SCART);	friend void* SubtThreadEntry(void *p);	friend void* PlaybackThreadEntry(void* p); private:	RMuint32 m_boardNumber;		RMbool m_isOSDEnabled;	struct RUA *m_pInstance;	// DCC	struct DCC *m_pDCC;	struct DCCVideoSource *m_pVideoSource;	struct DCCAudioSource *m_pAudioSource;	struct DCCDemuxSource *m_pDemuxSource;#ifndef NO_STCpublic:	struct DCCSTCSource *m_pStcSource;	private:#endif	struct DemuxProgram_OutputControl_type m_demuxOutCtrl;			struct CCFifo_Open_type m_CC;	RMuint32 m_surfaceID;		RMuint32 m_video_decoder;	// moduleId	RMuint32 m_audio_decoder;	// moduleId	RMuint32 m_audio_engine;        // moduleId	RMuint32 m_video_timer;	        // moduleId	RMuint32 m_audio_timer;	        // moduleId	RMuint32 m_hw_demux;	        // moduleId	RMuint32 m_hw_demux_program0;	// moduleId	RMuint32 m_hw_demux_program1;	// moduleId	RMuint32 m_spu_decoder;	        // moduleId	// NOT IMPLEMENTED BY DCC YET ... to be replace with dcc functions	RMuint32 m_hw_demux_engine;	RMuint32 m_demuxProfileCachedAddr;	RMuint32 m_demuxProfileUncachedAddr;	RMbool m_demux_profile_open;	enum Demux_State_type m_demux_state;	////////////////////////////////// 	enum VideoDecoder_Codec_type m_video_codec;	struct RUABufferPool *m_pBufferPool;	struct RUABufferPool *m_pAudioBufferPool;	struct RUABufferPool *m_pVideoBufferPool;	struct RUABufferPool *m_pAsvBufferPool;	RMbool m_needToConvertAudio;//	audioStreamConverter *m_audioStreamConverter;	typeCuracaoAudioParameters m_audioFormat;	RMbool m_isFirstSystemTimeStamp;	RMbool m_initialized;	RMbool m_finished;	struct SpuDecoder_Hilight_type m_hiLight;	RMbool m_HighlightOn;	RMbool m_SubpictureOn;	RMbool m_SendTitleKey;	RMbool m_audioOnly;	RMbool m_videoOnly;	RMint32 m_speed;		RMuint8 m_AudioChannels;	RMdvdVideoMode m_videoMode;	// DVI / HDMI	RMuint32 m_outputModule;	RMbool m_bAutoModeOn; // True when a DVI connector is detected and TV is switched to DVI	RMuint32 m_standard;	enum DCCVideoConnector m_connector;	enum EMhwlibColorSpace m_color_space; // HDMI TV usually support RGB and YUV. We HAVE to support YUV	struct DH_control *m_pDH;	RMbool m_bEnableHDCP;	RMbool m_bHDCP_tv; // Is TV HDCP compliant?	RMbool m_auto_edid; // Does user want to set the TV resolution according to EDID preferred mode?	RMbool m_valid_edid; // Valid EDID found? We use preferred TV settings based on GUI when cannot read EDID.	enum DH_connection m_cable; // Are we connected? We use RSEN and HPD (Receiver Sense and Hot Plug Detect)	RMbool m_bHDMItv; // HDMI? (If not, DVI). TV is HDMI only if we find a CEA EDID extension ver 2.3. Below 3 masks are then meaningful.	RMuint8 m_tv_basic_support; // HDMI TV supported features: Basic Audio? YUV 4:4:4? (EDID)	RMuint8 m_nb_read_EPROM_attempts; // Number of attempts	struct CEAShortAudioDescriptor m_tv_aud_pcm; // Audio PCM support on HDMI TV based on EDID (See TV_SUPPORT_xxx in dvi_hdmi.h)	struct DH_AudioFormat m_hdmi_audio_format;	struct DH_AudioInfoFrame m_hdmi_audio_info_frame;	struct DH_AVIInfoFrame m_hdmi_AVI_info_frame;	RMbool m_DVI_RxPresent;	RMbool m_DVI_Rx;	RMbool m_DVI_HPD;	struct CEA861BDataBlockCollection m_DBC[8];	RMuint32 m_nDBC;	RMbool m_muteOn;	RMuint32 m_volume;	RMint8 m_brightness;	RMuint8 m_contrast;	RMuint8 m_saturation;		RMbool m_useHDProfile;	RMTvTypes m_tvType;	enum EMhwlibScalingMode m_scalingMode;		struct EMhwlibBlackStripMode m_blackstrip;	enum OutputDualMode_type m_dualMode;	enum OutputSpdif_type m_SPDIFModeReq;	enum OutputSpdif_type m_SPDIFMode;	struct AudioDecoder_LpcmVobParameters_type m_LpcmVobParams;	struct AudioDecoder_LpcmAobParameters_type m_LpcmAobParams;	struct AudioDecoder_PcmCdaParameters_type m_PcmCdaParams;	struct AudioDecoder_MpegParameters_type m_MpegParams;	struct AudioDecoder_Ac3Parameters_type m_Ac3Params;	struct AudioDecoder_DtsParameters_type m_DtsParams;};#endif // __RMEM86XXDECODER_H__

⌨️ 快捷键说明

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