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

📄 em86xx.cpp

📁 sigmadesign smp8623 gui source code ,bingo
💻 CPP
📖 第 1 页 / 共 5 页
字号:
//	       (video_profile.MPEGProfile == Profile_MPEG2_SD) ? "Profile_MPEG2_SD" ://	       (video_profile.MPEGProfile == Profile_MPEG4_SD) ? "Profile_MPEG4_SD" ://	       (video_profile.MPEGProfile == Profile_MPEG4_HD) ? "Profile_MPEG4_HD" ://	       (video_profile.MPEGProfile == Profile_DIVX3_HD) ? "Profile_DIVX3_HD" ://	       (video_profile.MPEGProfile == Profile_DIVX3_SD) ? "Profile_DIVX3_SD" ://	       (video_profile.MPEGProfile == Profile_WMV_816P) ? "Profile_WMV_816P" ://	       "UNKNOWN"));////	if(useHwDemux){//		DemuxProgramId = 0;//		video_buffer_count = 0;//		audio_buffer_count = 0;//		spu_buffer_count = 0;////		demuxProfile.BitstreamFIFOSize = DEMUX_BITSTREAM_FIFO_SIZE;//		demuxProfile.XferFIFOCount = DEMUX_XFER_BUFFER_COUNT;//		demuxProfile.DemuxID = 0;//		demuxProfile.DemuxProgram0 = 0;//		demuxProfile.DemuxProgram1 = 0xFF;////		status = DCCOpenDemuxSource(m_pDCC, &demuxProfile, &m_pDemuxSource);////		if(status != RM_OK) {//			RMDBGLOG((ENABLE, "!!!!! Error DCCOpenDemuxSource : %s !!!!!\n", RMstatusToString(status)));//		}//		else {//			status = DCCGetDemuxSourceInfo(m_pDemuxSource, &m_hw_demux, &m_hw_demux_program0, &m_hw_demux_program1);//			if(status != RM_OK) {//				RMDBGLOG((ENABLE, "!!!!! Error DCCGetDemuxSourceInfo : %s !!!!!\n", RMstatusToString(status)));//			}//		}////		RMDBGLOG((QBDBG, "HARDWARE DEMUXING\n"));//	}//	else {//		DemuxProgramId = 0;//		video_buffer_count = video_xfer_fifo_buffer_count;//		audio_buffer_count = audio_xfer_fifo_buffer_count;//		spu_buffer_count = SPU_XFER_FIFO_BUFFER_COUNT;//		RMDBGLOG((QBDBG, "SOFTWARE DEMUXING\n"));//	}////	RMDBGLOG((QBDBG, "DemuxProgramId = %lu\n", DemuxProgramId));////#ifndef NO_STC//	{//		// open first stc module//		struct DCCStcProfile stc_profile;//		stc_profile.STCID = 0;//		stc_profile.master = Master_STC;////		stc_profile.stc_timer_id = 0;//		stc_profile.stc_time_resolution = MPEG2_TIR;////		stc_profile.stc_offset = 0;////		stc_profile.video_timer_id = 1;//		stc_profile.video_time_resolution = MPEG2_TIR;//		stc_profile.video_offset = 0;////		stc_profile.audio_timer_id = 2;//		stc_profile.audio_time_resolution = MPEG2_TIR;//		stc_profile.audio_offset = 0;////		RMDBGLOG((ENABLE, "!!!!! Opening STC  !!!!!\n" ));//		status = DCCSTCOpen(m_pDCC, &stc_profile, &m_pStcSource);//		if (RMFAILED(status)) {//			RMDBGLOG((ENABLE, "!!!!! Error DCCSTCOpen : %s !!!!!\n", RMstatusToString(status)));//			return status;//		}//	}//#endif////	// VIDEO//	m_videoMode = (RMdvdVideoMode) -1;////	video_profile.BitstreamFIFOSize = video_bts_fifo_size;// 	video_profile.XferFIFOCount = video_buffer_count;//	video_profile.DemuxProgramID = DemuxProgramId;//	video_profile.SPUBitstreamFIFOSize = SPU_BITSTREAM_FIFO_SIZE;//	video_profile.SPUXferFIFOCount = spu_buffer_count;//#ifndef NO_STC//	video_profile.STCID = 0;//#endif//	status = DCCOpenVideoDecoderSource(m_pDCC, &video_profile, &m_pVideoSource);////	RMDBGLOG((QBDBG, "Opening video decoder : \n\tVIDEO bts fifo size : %lu,\n\tVIDEO buffer count : %lu\n\tSPU BTS fifo size : %lu\n\tSPU buffer count : %lu\n",//		  video_profile.BitstreamFIFOSize, video_profile.XferFIFOCount, video_profile.SPUBitstreamFIFOSize, video_profile.SPUXferFIFOCount));//	if (RMFAILED(status)) {//		RMDBGLOG((ENABLE,"!!!!!! Cannot open video decoder source %s !!!!!!\n", RMstatusToString(status)));//		return status;//	}////	status = DCCSetVideoDecoderSourceCodec(m_pVideoSource, m_video_codec);//	if (RMFAILED(status)) {//		RMDBGLOG((ENABLE,"!!!!!! Cannot set video codec %s !!!!!!\n", RMstatusToString(status)));//		return status;//	}////	status = DCCGetScalerModuleID(m_pDCC, DCCRoute_Main, DCCSurface_Video, 0, &m_surfaceID);//	if (RMFAILED(status)) {//		RMDBGLOG((ENABLE, "!!!!!! Cannot get surface to display video source %s !!!!!!\n", RMstatusToString(status)));//		return status;//	}////	status = DCCSetSurfaceSource(m_pDCC, m_surfaceID, m_pVideoSource);//	if (RMFAILED(status)) {//		RMDBGLOG((ENABLE, "!!!!!! Cannot set the surface source %s !!!!!!\n", RMstatusToString(status)));//		return status;//	}////	// AUDIO//	audio_profile.BitstreamFIFOSize = audio_bts_fifo_size;// 	audio_profile.XferFIFOCount = audio_buffer_count;//	audio_profile.DemuxProgramID = DemuxProgramId;//#ifndef NO_STC//	audio_profile.STCID = 0;//#endif////	RMDBGLOG((QBDBG, "Opening audio decoder : \n\tAUDIO bts fifo size : %lu,\n\tAUDIO buffer count : %lu\n",//		  audio_profile.BitstreamFIFOSize, audio_profile.XferFIFOCount));//	status = DCCOpenAudioDecoderSource(m_pDCC, &audio_profile, &m_pAudioSource);//	if (RMFAILED(status)) {//		RMDBGLOG((ENABLE, "!!!!!! Cannot open audio decoder %s !!!!!!\n", RMstatusToString(status)));//		return status;//	}////        status = DCCGetVideoDecoderSourceInfo(m_pVideoSource, &m_video_decoder, &m_spu_decoder, &m_video_timer);//	if (RMFAILED(status)) {//		RMDBGLOG((ENABLE, "!!!!!! Error getting video decoder source information %s !!!!!!\n", RMstatusToString(status)));//		return status;//	}////	status = DCCGetAudioDecoderSourceInfo(m_pAudioSource, &m_audio_decoder, &m_audio_engine, &m_audio_timer);//	RMDBGLOG((QBDBG, "!!!!!! Timers : audio = %lu, video = %lu !!!!!!\n", m_audio_timer, m_video_timer));//	if (RMFAILED(status)) {//		RMDBGLOG((ENABLE, "!!!!!! Error getting audio decoder source information %s !!!!!!\n", RMstatusToString(status)));//		return status;//	}////////	if(useHwDemux){//		enum DemuxProgram_TimerSync_type TimerSync;//		struct Demux_InputParameters_type InParam;////		TimerSync = DemuxProgram_TimerSync_FirstPcrOnly;//		//TimerSync = DemuxProgram_TimerSync_Pcr;//		status = RUASetProperty(m_pInstance, m_hw_demux_program0, RMDemuxProgramPropertyID_TimerSync,//					&TimerSync, sizeof(TimerSync), 0);////		if(status != RM_OK){//			RMDBGLOG((ENABLE, "!!!!!! Demux, failed to set : RMDemuxProgramPropertyID_TimerSync !!!!!!\n"));//		}////		if (dvd){//			// program HwDemux for DVD input//			InParam.SourceType = SourceType_dvd;//		}//		else if(profile == MPEG2_TRANSPORT_PROFILE){ // m2t//			InParam.SourceType = SourceType_m2t;//		}//		else { // m1s /m2p /vcd//			InParam.SourceType = SourceType_m1s;//		}////		RMDBGLOG((QBDBG,"HW demux source type = %s\n",//			  (InParam.SourceType==SourceType_dvd)?"SourceType_dvd":(InParam.SourceType==SourceType_m2t)?"SourceType_m2t":(InParam.SourceType==SourceType_m1s)?"SourceType_m1s":"UNKNOWN"));//		// first PCR received from HwDemux will program the video and audio timers////		InParam.Spi = No_Spi;//		status = RUASetProperty(m_pInstance, m_hw_demux, RMDemuxPropertyID_InputParameters,//					&InParam, sizeof(InParam), 0);////		if(status != RM_OK){//			RMDBGLOG((ENABLE, "!!!!!! Demux, failed to set : RMDemuxPropertyID_InputParameters !!!!!!\n"));//		}////		if (dvd || vcd){//			// program HwDemux with default streamId/SubstreamId//			struct DemuxProgram_ProgramParameters_type ProgrParam;//			ProgrParam.VideoSID = 0xE0;//			if(dvd) {//				ProgrParam.AudioSID = 0xBD;//				ProgrParam.AudioSSID = 0x80;//				ProgrParam.SubpictureSID = 0xBD;//				ProgrParam.SubpictureSSID = 0x20;//			}//			else {//				ProgrParam.AudioSID = 0;//				ProgrParam.AudioSSID = 0;//				ProgrParam.SubpictureSID = 0;//				ProgrParam.SubpictureSSID = 0;//			}////			status = RUASetProperty(m_pInstance, m_hw_demux_program0, RMDemuxProgramPropertyID_ProgramParameters,//						&ProgrParam, sizeof(ProgrParam), 0);////			if(status != RM_OK){//				RMDBGLOG((ENABLE, "!!!!!! Demux, failed to set : RMDemuxProgramPropertyID_ProgramParameters !!!!!!\n"));//			}////			m_SendTitleKey = false;//		}////		// program HwDemux to send all the streams//		m_demuxOutCtrl.Video = TRUE;//		m_demuxOutCtrl.Audio = TRUE;//		m_demuxOutCtrl.Subpicture = TRUE;//		m_demuxOutCtrl.VideoPts = TRUE;//		m_demuxOutCtrl.AudioPts = TRUE;//		m_demuxOutCtrl.SubpicturePts = TRUE;//		m_demuxOutCtrl.Trigger = Trigger_None;//		//m_demuxOutCtrl.Trigger = Trigger_VideoPts;//		//m_demuxOutCtrl.Trigger = Trigger_AudioPts;//		//m_demuxOutCtrl.Trigger = Trigger_VideoOrAudioPts;//		//m_demuxOutCtrl.Trigger = Trigger_PayloadUnitStartIndicator;//		status = RUASetProperty(m_pInstance, m_hw_demux_program0, RMDemuxProgramPropertyID_OutputControl,//					&m_demuxOutCtrl, sizeof(m_demuxOutCtrl), 0);////		if(status != RM_OK){//			RMDBGLOG((ENABLE, "!!!!!! Demux, failed to set : RMDemuxProgramPropertyID_OutputControl !!!!!!\n"));//		}//////	}////#ifndef NO_STC//	DCCSTCSetTime(m_pStcSource, 0, MPEG2_TIR);//	status = DCCSTCSetSpeed(m_pStcSource, 1, 1);//	if (RMFAILED(status)) {//		RMDBGLOG((ENABLE, "Cannot set the speed factor %s\n", RMstatusToString(status)));//	}//#else//	DCCSetSystemTimeBase(m_pDCC, m_video_timer, 0);//	DCCSetSystemTimeBase(m_pDCC, m_audio_timer, 0);////	status = DCCSetSystemTimeSpeedFactor(m_pDCC, m_video_timer, 1, 1);//	if (RMFAILED(status)) {//		RMDBGLOG((ENABLE, "Cannot set the speed factor for video %s\n", RMstatusToString(status)));//	}////	status = DCCSetSystemTimeSpeedFactor(m_pDCC, m_audio_timer, 1, 1);//	if (RMFAILED(status)) {//		RMDBGLOG((ENABLE, "Cannot set the speed factor for audio %s\n", RMstatusToString(status)));//	}//#endif////	// CC//	RMuint32 nCCFifoID = EMHWLIB_MODULE(CCFifo, 0);//	m_CC.EntryCount = 80;////	status = RUAExchangeProperty(m_pInstance, nCCFifoID, RMCCFifoPropertyID_DRAMSize,//		&m_CC.EntryCount, sizeof(m_CC.EntryCount),//		&m_CC.UncachedSize, sizeof(m_CC.UncachedSize));//	if (RMFAILED(status)) {//		RMDBGLOG((ENABLE, "Cannot get the required DRAM size for CC %s\n", RMstatusToString(status)));//	}//#ifndef NO_STC//	DCCSTCGetModuleId(m_pStcSource, &m_CC.STCModuleId);//#endif//	m_CC.UncachedAddress = RUAMalloc(m_pInstance, 0, RUA_DRAM_UNCACHED, m_CC.UncachedSize);////	status = RUASetProperty(m_pInstance, nCCFifoID, RMCCFifoPropertyID_Open, &m_CC, sizeof(m_CC), 0);//	if (RMFAILED(status)) {//		RMDBGLOG((ENABLE, "Cannot open CCFifo %s\n", RMstatusToString(status)));//	}////	status = RUASetProperty(m_pInstance, EMHWLIB_MODULE(DispMainMixer, 0), RMGenericPropertyID_CCFifo, &nCCFifoID, sizeof(nCCFifoID), 0);//	if (RMFAILED(status)) {//		RMDBGLOG((ENABLE, "Cannot set CCFifo on main mixer %s\n", RMstatusToString(status)));//	}////	status = RUASetProperty(m_pInstance, EMHWLIB_MODULE(DispMainMixer, 0), RMGenericPropertyID_Validate, NULL, 0, 0);//	if (RMFAILED(status)) {//		RMDBGLOG((ENABLE, "Cannot validate mixer settings %s\n", RMstatusToString(status)));//	}////	status = RUASetProperty(m_pInstance, m_video_decoder, RMGenericPropertyID_CCFifo, &nCCFifoID, sizeof(nCCFifoID), 0);//	if (RMFAILED(status)) {//		RMDBGLOG((ENABLE, "Cannot set CCFifo on video decoder %s\n", RMstatusToString(status)));//	}////	// set default values//	SetVolume(m_volume);//	SetBrightness(m_brightness);//	SetContrast(m_contrast);//	SetSaturation(m_saturation);//	SetTVType(m_tvType, m_scalingMode);////	m_videoOnly = FALSE;//	m_speed = 256;////	RMDBGLOG((QBDBG, "*********************************** Em86xx decoder : finish OpenDecoder ***********************************\n"));//	return status;//}////RMstatus RMem86xxDecoder::Close()//{//	RMstatus status = RM_OK;////	RMDBGLOG((QBDBG, "*********************************** Em86xx decoder : Close *********************************** \n"));////#if 0//	Stop();//#else//	// fix endless loop: Stop failure -> CleanallAndExit -> Close -> Stop failure ....//	RMDBGLOG((QBDBG, "*********************************** Em86xx decoder : Stop in Close ***********************************\n"));//	if(m_pDemuxSource != NULL){//		RUASetProperty(m_pInstance, m_hw_demux_program0, RMDemuxProgramPropertyID_OutputControl,//			       &m_demuxOutCtrl, sizeof(m_demuxOutCtrl), 0);//		status = DCCStopDemuxSource(m_pDemuxSource);//		if(status != RM_OK){//			RMDBGLOG((ENABLE, "!!!!!! Error DCCStopDemuxSource - %s !!!!!!\n", RMstatusToString(status)));//		}//	}////	if(m_pAudioSource != NULL){//		status = DCCStopAudioSource(m_pAudioSource);//		if(status != RM_OK){//			RMDBGLOG((ENABLE, "!!!!!! Error DCCStopAudioSource - %s !!!!!!\n", RMstatusToString(status)));//		}//	}////	if(m_pVideoSource != 0){//		status = DCCStopVideoSource(m_pVideoSource, DCCStopMode_BlackFrame);//		if(status != RM_OK){//			RMDBGLOG((ENABLE, "!!!!!! Error DCCStopVideoSource - %s !!!!!!\n", RMstatusToString(status)));//		}//	}////	SetMacrovisionLevel(0);////	m_isFirstSystemTimeStamp  = TRUE;//	RMDBGLOG((QBDBG, "*********************************** Em86xx decoder : Stop in Close finish ***********************************\n"));//#endif////#ifndef WITH_MONO//	if(m_ctrl != 0){//		status = RMFCloseControlInterface(m_ctrl);//		m_ctrl = 0;//	}//#endif////	status = CloseDecoder();////	if(m_pBufferPool != 0){//		status = RUAClosePool(m_pBufferPool);//		m_pBufferPool = NULL;//		if (status != RM_OK) {//			RMDBGLOG((ENABLE, "Error closing demux DMA pool: %s\n", RMstatusToString(status)));//		}//	}////	if(m_pAudioBufferPool != 0){//		status = RUAClosePool(m_pAudioBufferPool);//		m_pAudioBufferPool = NULL;//		if (status != RM_OK) {//			RMDBGLOG((ENABLE, "Error closing audio DMA pool: %s\n", RMstatusToString(status)));//		}//		m_audioFormat.audioType = CURACAO_AUDIO_UNKNOWN;//	}////	if(m_pVideoBufferPool != 0){//		status = RUAClosePool(m_pVideoBufferPool);//		m_pVideoBufferPool = NULL;//		if (status != RM_OK) {//			RMDBGLOG((ENABLE, "Error closing video DMA pool: %s\n", RMstatusToString(status)));//		}//	}

⌨️ 快捷键说明

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