亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? fileplayer.cpp.svn-base

?? sigmadesign smp8623 gui source code ,bingo
?? SVN-BASE
?? 第 1 頁 / 共 4 頁
字號:
						break;					}				} else if(m_streamType == RMStreamInfoIsType_AVI) {					if(m_aviInfo.audioStreams > 1) {						status = RMInsertLastCoreQueue(remote_cmd_queue, (void *) KEY_CMD_CYCLE_AUDIO);						if(status != RM_OK)							break;						break;					}				}				asf_get_audio_stream_count(&nbAudioStreams);				RMDBGLOG((ENABLE, "number of streams %d, want to switch to %ld\n", nbAudioStreams, *(RMuint32*)val));				// get current				asf_get_current_audio_stream(&selectedAudioStream);				RMDBGLOG((ENABLE, "current stream %d\n", selectedAudioStream));				if(nbAudioStreams > 1){					if(val != NULL){						audioStream = *(RMuint32*)val;						if(audioStream >= (RMuint32)nbAudioStreams){								return RM_ERROR;						}						else{							// set next							audioStream = (selectedAudioStream == nbAudioStreams ? 1 : (selectedAudioStream + 1));						}						RMDBGLOG((ENABLE, "Switching audio stream %lu -> %lu\n", selectedAudioStream, audioStream));						status = RMInsertLastCoreQueue(remote_cmd_queue, (void *) KEY_CMD_CHANGE_AUDIO);						if(status != RM_OK)							break;						status = RMInsertLastCoreQueue(remote_param_queue, (void *) audioStream);						if(status != RM_OK)							break;						SendMessage(CURACAO_MESSAGE_AUDIOSTREAM_CHANGE, &audioStream);					}				}				else{					RMDBGLOG((ENABLE, "Cannot switch audio stream : only one audio stream.\n"));				}				break;			}			case RM_HW_NEXT_TRACK:				if(m_streamType == RMStreamInfoIsType_MPEG4) {					if(m_mp4Info.isNero) {						status = RMInsertLastCoreQueue(remote_cmd_queue, (void *) KEY_CMD_NERO_NEXT_CHAPTER);						if(status != RM_OK)							break;					}				}				break;			case RM_HW_PREV_TRACK:				if(m_streamType == RMStreamInfoIsType_MPEG4) {					if(m_mp4Info.isNero) {						status = RMInsertLastCoreQueue(remote_cmd_queue, (void *) KEY_CMD_NERO_PREV_CHAPTER);						if(status != RM_OK)							break;					}				}				break;			case RM_HW_SUB_TITLE:				if(m_streamType == RMStreamInfoIsType_MPEG4) {					// check here if memory is available for the spu as well					if(m_mp4Info.spuStreams >= 1 && osd_subt.pSPU_double_buffer_source) {						m_subpictureStream = (m_subpictureStream < m_mp4Info.spuStreams ? m_subpictureStream + 1 : 0);						status = RMInsertLastCoreQueue(remote_cmd_queue, (void *) KEY_CMD_NERO_CYCLE_SUBTITLE);						if(status != RM_OK)							break;						SendMessage(CURACAO_MESSAGE_SUBTITLESTREAM_CHANGE, &m_subpictureStream);						break;					}				}				break;			default:				status = RM_ERROR;				break;		}	}	}	else		status = RM_OK;	return status;}void* SubtThreadEntry(void *p){	RMfilePlayer * fileplayer = (RMfilePlayer *)p;	struct RUA *pRua = context.gui->m_pRua;//(RUA*) context.decoder->GetRUAInstance();	timespec time;//	RMuint64 n = 0;//	RMuint16 m = 0;//	while(fileplayer	typeMediaPlayerSate state;//	state = context.player->GetState();	time.tv_sec = (RMuint32)0;    time.tv_nsec = ((RMuint32)1000 % 1000000) * 1000;//	time.tv_sec = 1;//	time.tv_nsec = 1000 000 000;	printf("enter\n");	printf("use time :%d\n", (RMuint16) subs.data->sub_uses_time);	while(1){    	nanosleep(&time, NULL);		state = context.player->GetState();		if((state == STATE_PLAY) || (state == STATE_STEP) || (state == STATE_PAUSE) || (state == STATE_FAST_FORWARD) ||				(state == STATE_FAST_REWIND) || (state == STATE_SLOW_FORWARD)) {				if(state == STATE_PAUSE || subs.osd == TRUE)					continue;				else if(((RMem86xxDecoder*)(context.decoder))->m_pStcSource && fileplayer) {					RMuint64 timeframe;					RMuint32 tir;					RMstatus status;					status = DCCSTCGetTimeResolution(((RMem86xxDecoder*)(context.decoder))->m_pStcSource, DCC_Video, &tir);					if(status == RM_OK)						status = DCCSTCGetTime(((RMem86xxDecoder*)(context.decoder))->m_pStcSource, &timeframe, tir);					else						continue;				// = context.decoder->GetTimeDisplayedFrame(fileplayer->m_sampletype, &timeframe);					if(RMSUCCEEDED(status)) {						if(tir != 0 ){							if(subs.data->sub_uses_time)								timeframe *= 100;							subtitle* old = subs.vo_sub;							if(subs.data->sub_uses_time)							{			//					printf("time: %lu\n", (RMuint32) (timeframe/tir));								find_sub(subs.data, (RMint32) (timeframe /tir));							}							else							{								//ugly hack but should work								if(tir == 24000)									find_sub(subs.data, (RMint32) (timeframe / 1001));								else									find_sub(subs.data, (RMint32) (timeframe / 1000));							}							if((state == STATE_FAST_FORWARD) || (state == STATE_FAST_REWIND) || (state == STATE_SLOW_FORWARD)) {								find_sub(subs.data, (RMint32) (-1));								DrawSubtitles(pRua);							} else if(old != subs.vo_sub) {								DrawSubtitles(pRua);							}						}					}				}				else					continue;			}			else			{				find_sub(subs.data, (RMint32) (-1));				DrawSubtitles(pRua);				if(subs.data)				{					sub_free(subs.data);					subs.data = NULL;				}				printf("endplay\n");				break;			}		}	printf("leave\n");	return NULL;}void* PlaybackThreadEntry(void* p){#ifndef USE_SAME_THREAD	{//		struct timespec usleep_req = { 0, 100000000 };//		nanosleep(&usleep_req, 0);	}#endif	timespec usleep_req = { 2, 0 };	RMstatus err;	struct mono_info app_params;	struct player_options player_conf;	RMuint8 channels;	enum OutputSpdif_type mode;	RMfilePlayer * fileplayer = (RMfilePlayer *)p;	usleep_req.tv_sec = (RMuint32)0;	usleep_req.tv_nsec = ((RMuint32)100000 % 1000000) * 1000;	app_params.pRUA = (RUA *) context.decoder->GetRUAInstance();	app_params.pDCC = (DCC *) context.decoder->GetDCCInstance();	app_params.play_opt = &play_opt;	app_params.video_opt = &video_opt;	app_params.audio_opt = &audio_opt;	app_params.demux_opt = &demux_opt;	app_params.video_scaler = 0;	app_params.osd_scaler = 0;	player_conf.forceSD = FALSE;#ifdef WITH_DALLAS_DEMUX // dallas demux has problems playing mpeg files	player_conf.use_hwdemux = FALSE;#else	player_conf.use_hwdemux = TRUE;#endif	player_conf.use_avi_push = TRUE;	context.decoder->GetAudioOutputChannels(&channels);	// set wanted audio channels for some formats -- will be ignored if not applicable	audio_opt.WmaParams.OutputChannels = (channels == 6 ? Wmapro_6 : Wmapro_2);	audio_opt.Ac3Params.OutputLfe = (channels == 6 ? TRUE : FALSE);	audio_opt.Ac3Params.OutputChannels = (channels == 6 ? Ac3_LCRLsRs : Ac3_LR);//	audio_opt.AACParams.OutputChannels = (channels == 6 ? Aac_LCRLsRs : Aac_LR);	app_params.audio_opt->OutputChannels = (channels == 6 ? Audio_Out_Ch_LCRLsRs : Audio_Out_Ch_LR);	app_params.audio_opt->OutputChannelsExplicitAssign = TRUE;	RMDBGLOG((ENABLE, "Output Channels %s\n", channels == 6 ? "5.1" : "2"));	play_opt.video_delay_ms = 1000;	play_opt.audio_delay_ms = 1000;	if(context.gui->IsTv())	{		play_opt.start_ms = 1; //false set for delay this is sign to double MPEG TS check	}	else	{		play_opt.start_ms = 0;	}	video_opt.fifo_size = 4096 * 1024;	audio_opt.fifo_size = 4096 * 1024;	// set wanted spdif mode	context.decoder->GetSpdifMode(&mode);	audio_opt.Spdif = mode;	// init stream info	fileplayer->SetStreamInfo(NULL);//	context.gui->BeginWaitCursor();	start_leak();	err = play_file(&app_params, &player_conf);//	context.gui->EndWaitCursor();		printf("waiting for release of lock\n");	if(RMFAILED(err)){		RMDBGLOG((ENABLE, "Could not play file %d\n", err));		sleep(2);//#ifdef __ERRHANDLE		fileplayer->FlagDiscError();//#endif	}	((RMem86xxDecoder *) context.decoder)->ResetDCCLeaveDisplay();	context.decoder->ResetDCCInfo();	//end_leak();	fileplayer->SetEOS();	if(g_subthread)	{		struct timespec usleep_req = { 0, 100000000 };				RMWaitForThreadToFinish(g_subthread);				nanosleep(&usleep_req, 0);				g_subthread = NULL;	}//	end_leak((void*)"rmmmimplementation");	return NULL;}//#ifdef __ERRHANDLEvoid RMfilePlayer::FlagDiscError() {	SendMessage(CURACAO_MESSAGE_FILE_ERROR, NULL);}//#endifRMstatus RMfilePlayer::Open(RMascii *name){	RMstatus status = RM_ERROR;//	RMascii filename[512];//	RMascii** files;	m_eos = FALSE;	if(!m_initialized){		RMDBGLOG((FILEPLAYERDBG, "Open() : Already open or not initialized\n"));		return RM_ERROR;	}	init_playback_options(&play_opt);	init_video_options(&video_opt);	init_audio_options(&audio_opt);	static RMascii path[1024];	RMCopyAscii(path, name);	play_opt.filename = path;	RMDBGLOG((FILEPLAYERDBG, "About to Play %s\n", play_opt.filename));	m_stop_pending = FALSE;	m_about_to_play = TRUE;	RMASSERT(g_thread == NULL);	g_thread = RMCreateThread("PlaybackThread", PlaybackThreadEntry, this);	if(g_thread == NULL)		return RM_ERROR;//	fileplayer->SetSampleType();//	if(fileplayer->m_sampletype == VIDEO_SAMPLE)	{		timespec time;//		RMuint32 picture_rate = 0;//		RUAGetProperty(context.decoder->GetRUAInstance(), ((RMem86xxDecoder*)(context.decoder))->m_video_decoder, RMVideoDecoderPropertyID_FrameRate, &picture_rate, sizeof(RMuint32));		time.tv_sec = (RMuint32)300000 / 1000000;    	time.tv_nsec = ((RMuint32)300000 % 1000000) * 1000;    	nanosleep(&time, NULL);			RMuint32 tir = 0;			if(((RMem86xxDecoder*)(context.decoder))->m_pStcSource)				status = DCCSTCGetTimeResolution(((RMem86xxDecoder*)(context.decoder))->m_pStcSource, DCC_Video, &tir);			if(tir && RMSUCCEEDED(status))			{				printf("SUBTITLE TIME %lu\n", tir);				//files = sub_filenames(path, path);				//printf("SUBTITLE FILE %s\n", files[0]);				if(subs.subs_path)				{					tir /= 1000;					subs.data = sub_read_file(subs.subs_path, tir);					if(subs.data){						printf("SUBTITLE FILE %p %lu\n", subs.data, subs.data->sub_num);						RMASSERT(g_subthread == NULL);						g_subthread = RMCreateThread("SubThread", SubtThreadEntry, this);							//		if(g_subthread == NULL)							//			return RM_ERROR;					}//					int i = 0;//					do//					{//						RFREE(files[i]);//						files[i] = NULL;//					}while(files[++i] != 0);				}//				RFREE(files);			}	}	status = RM_OK;	return status;}void RMfilePlayer::SetEOS(){	printf("set eos\n");	m_eos = TRUE;	m_about_to_play = FALSE;	m_stop_pending = FALSE;}void RMfilePlayer::SetSampleType(){	RMuint64 time;	// attempt to use audio sample otherwise video sample	m_sampletype = VIDEO_SAMPLE;	if(RMFAILED(m_context->decoder->GetTimeDisplayedFrame(m_sampletype, &time)))		m_sampletype = AUDIO_SAMPLE;}RMstatus RMfilePlayer::Close(){	return Close(FALSE);}RMstatus RMfilePlayer::Close(RMbool playNextFile){	RMstatus status = RM_OK;#ifndef WITH_MONO	if(!m_initialized || !m_fileOpen){		RMDBGLOG((FILEPLAYERDBG, "Close() : Not open or not initialized\n"));		return RM_ERROR;	}	if(GetState() != STATE_STOP) {		status = RMFStopFile(m_ctrl_file);		if(status == RM_OK)			SetState(STATE_STOP, 0);	}	status = m_context->decoder->Close();	m_fileOpen = FALSE;#else // WITH_MONO	if(GetState() == STATE_CLOSE) {		RMDBGLOG((FILEPLAYERDBG, "Close() : Not open\n"));		// happens when user stops before the file actually gets played		if(m_about_to_play) {			m_about_to_play = FALSE;			m_stop_pending = TRUE;		}		if(m_stop_pending) {			return RM_ERROR_QUEUE_COMMAND;		} else			return RM_OK;	}	if(GetState() != STATE_STOP) {		status = InterpretCommand(RM_HW_STOP, NULL);		if(status != RM_OK) {			return RM_ERROR_QUEUE_COMMAND;		}	}#ifndef USE_SAME_THREAD	if (g_thread) {		RMWaitForThreadToFinish(g_thread);		g_thread = NULL;	}#endif	if (osd_subt.pSPU_double_buffer_source) {		RMDBGLOG((ENABLE, "close doubleBufferOSD\n"));		status = RMCloseSPU();		if (RMFAILED(status)) {			RMDBGLOG((ENABLE, "Cannot close SPU doubleBuffer source %d\n", status));		}	}#endif // WITH_MONO	m_stop_pending = FALSE;	RMDBGLOG((FILEPLAYERDBG, "Closing fileplayer\n"));	printf("alabala\n");	SetState(STATE_CLOSE, (void*) &playNextFile);	printf("alabala\n");	RMDBGLOG((FILEPLAYERDBG, "Fileplayer closed\n"));	m_eos = FALSE;	return status;}void RMfilePlayer::ProcessData(){#ifndef WITH_MONO	if(m_eos){		RMbool playNextFile = TRUE;		//m_context->gui->SendKey(RM_HW_STOP);		InterpretCommand(RM_HW_STOP, (void*)&playNextFile);		m_eos = FALSE;	}//	RMDBGLOG((ENABLE, "In process data (to = %lu)\n", m_context->remoteTimeout));#else	if(m_eos){		printf("EOS\n");

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
99在线视频精品| 中文字幕在线观看不卡| 中文字幕欧美日韩一区| 亚洲一区二区三区激情| 国产一区二区女| 欧美久久久久久蜜桃| 国产精品拍天天在线| 精品一区二区日韩| 精品视频在线看| 日韩码欧中文字| 国产乱对白刺激视频不卡| 欧美在线999| 中文字幕一区二区三区在线播放| 蜜臀a∨国产成人精品| 91久久奴性调教| 一色屋精品亚洲香蕉网站| 美国十次了思思久久精品导航| 色噜噜夜夜夜综合网| 国产精品久久久久永久免费观看| 美国三级日本三级久久99| 欧美日韩一区二区三区四区| 亚洲天堂福利av| 国产999精品久久| 26uuu精品一区二区| 老汉av免费一区二区三区| 欧美日韩亚州综合| 夜夜嗨av一区二区三区网页| 91亚洲精品乱码久久久久久蜜桃| 久久久精品免费免费| 国产精品自产自拍| 欧美tk—视频vk| 激情综合色综合久久| 日韩欧美二区三区| 久久99久国产精品黄毛片色诱| 欧美色区777第一页| 亚洲成国产人片在线观看| 欧美日韩亚洲综合一区二区三区| 亚洲国产一区二区a毛片| 在线观看日韩电影| 亚洲成年人影院| 91精品国产91久久久久久最新毛片| 亚洲第一会所有码转帖| 欧美一a一片一级一片| 亚洲高清视频中文字幕| 欧美日韩成人综合天天影院| 日本特黄久久久高潮| 精品欧美黑人一区二区三区| 国产麻豆视频精品| 亚洲欧洲精品一区二区三区 | 欧美激情一区二区三区蜜桃视频| 国产麻豆精品久久一二三| 国产欧美日韩精品在线| 91蜜桃免费观看视频| 亚洲国产精品一区二区www在线| 欧美美女一区二区| 精品一二三四在线| 中文字幕日韩av资源站| 欧美色综合网站| 精品在线你懂的| 国产精品久久久一本精品 | www.一区二区| 亚洲一区二区三区四区五区黄 | 欧美日韩视频不卡| 卡一卡二国产精品 | 日韩国产欧美三级| 国产欧美一区二区三区鸳鸯浴 | 国产精品99久久久| 亚洲蜜臀av乱码久久精品| 欧美精品一二三| 高清不卡在线观看| 无吗不卡中文字幕| 日本一区二区三区四区在线视频 | 不卡一二三区首页| 视频在线在亚洲| 国产欧美日韩精品a在线观看| 日本黄色一区二区| 国产精品一卡二| 午夜精品一区二区三区电影天堂| 久久蜜臀精品av| 欧美精品123区| www.成人网.com| 美洲天堂一区二卡三卡四卡视频| 中文字幕一区二区三区视频| 欧美一区二区视频观看视频| 91最新地址在线播放| 蜜臀精品久久久久久蜜臀| 亚洲美女免费视频| 2023国产精华国产精品| 欧美另类videos死尸| 99re6这里只有精品视频在线观看| 免费成人美女在线观看| 亚洲三级在线观看| 欧美经典三级视频一区二区三区| 欧美一区日韩一区| 欧美日韩视频在线观看一区二区三区| 国产91精品一区二区麻豆网站| 天天综合色天天综合| 天堂一区二区在线| 亚洲人精品午夜| 国产精品情趣视频| 中文字幕免费不卡| 国产日韩欧美电影| 国产欧美日本一区二区三区| 日韩精品专区在线影院观看| 欧美日韩精品欧美日韩精品| 色成年激情久久综合| caoporn国产精品| 国产精品一级在线| 国产精品小仙女| 国内一区二区视频| 久久国内精品视频| 韩国午夜理伦三级不卡影院| 五月激情综合网| 日韩精品乱码av一区二区| 亚洲国产欧美在线| 偷窥少妇高潮呻吟av久久免费| 一区二区高清免费观看影视大全 | 久久精品99国产精品| 亚洲成av人在线观看| 亚洲成人av中文| 免费xxxx性欧美18vr| 蜜桃在线一区二区三区| 狠狠色综合播放一区二区| 韩国欧美国产1区| 福利一区二区在线观看| av在线综合网| 日本高清不卡aⅴ免费网站| 一本大道综合伊人精品热热| 99久久国产综合精品麻豆| 91丨九色丨尤物| 欧美性大战久久久久久久蜜臀| 欧美精品自拍偷拍动漫精品| 欧美一区二区三区在线看| 欧美va在线播放| 中文字幕一区二区三区不卡在线| 日韩一区中文字幕| 香蕉成人伊视频在线观看| 久久99国产精品麻豆| 波多野结衣在线一区| 欧美中文字幕一二三区视频| 欧美高清一级片在线| 国产网站一区二区| 亚洲免费成人av| 日本欧美一区二区| 成人免费毛片aaaaa**| 在线看日本不卡| 欧美一区二区高清| 欧美国产激情二区三区| 亚洲在线中文字幕| 极品少妇一区二区| 91丨porny丨在线| 欧美一区日本一区韩国一区| 国产欧美日韩激情| 日韩精品欧美精品| 99久久国产综合精品色伊| 欧美一区二区播放| 一区二区三区加勒比av| 激情欧美一区二区| 91福利视频久久久久| 欧美成人r级一区二区三区| 亚洲视频 欧洲视频| 老色鬼精品视频在线观看播放| 成人激情免费视频| 日韩亚洲欧美在线观看| 椎名由奈av一区二区三区| 国内精品久久久久影院色| 在线观看日韩高清av| 国产欧美日韩一区二区三区在线观看 | 国产精品影音先锋| 在线观看网站黄不卡| 精品国产精品网麻豆系列| 亚洲综合男人的天堂| 岛国一区二区三区| 精品久久久久久久久久久院品网| 一区二区三区在线观看国产| 国产一区二区不卡在线| 欧美一二三在线| 亚洲精品中文在线观看| 国产福利精品导航| 精品免费日韩av| 全国精品久久少妇| 欧美精品亚洲二区| 亚洲一区二区三区三| av激情综合网| 欧美极品另类videosde| 国内国产精品久久| 91精品国产91久久久久久一区二区| 亚洲免费看黄网站| 99精品一区二区三区| 久久久精品免费网站| 狠狠色伊人亚洲综合成人| 欧美一级爆毛片| 麻豆精品国产传媒mv男同| 欧美人与禽zozo性伦| 亚洲国产精品久久久久婷婷884 | 三级在线观看一区二区 | 午夜精品久久久久久久99水蜜桃| 日本韩国精品在线| 亚洲精品高清视频在线观看| 色哟哟日韩精品|