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

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

?? play_mosaic.c

?? SigmDesign SMP8634 media decode chip development SDK
?? C
?? 第 1 頁 / 共 3 頁
字號:
		for (i=0; i< task_count; i++) {			/* add eos event in list */			if (task_list[i].file_status == RM_ERRORENDOFFILE) {				event_list[nEvents].ModuleID = dcc_info[i].video_decoder;				event_list[nEvents].Mask = RUAEVENT_INBAND_COMMAND;				nEvents++;			}		}check_other_events:		event_index = task_count+1;		/*each task can add as much as one event */		if (nEvents == task_count + 1) {		all_blocked:			/*all tasks are blocked: wait until something happens */			while ( RUAWaitForMultipleEvents(pRUA, event_list, nEvents, COMMON_TIMEOUT_US, &event_index) != RM_OK) {				goto get_command;			}			nEvents--;		}		else {			/*as long as one task can go on, don't wait too much for the other events */			if(RUAWaitForMultipleEvents(pRUA, event_list, nEvents, 0, &event_index) != RM_OK){				/* no events to process */				goto get_command;			}		}		/*** PROCESS EVENTS *****/		if ((event_index == 0)){ 			/* next picture event recieved: refresh the mosaic */			err = RMSMXRefresh(smx);				 			for(i = 0; i < task_count; i++){				if(task_list[i].smx_eos_wait){					struct rmsmx_slot_status status;					RMSMXGetSlotStatus(smx, &status, i);					if(status.starved){						task_list[i].smx_eos_wait = FALSE;						task_list[i].nTimes++;						fprintf(stderr, "%lx_WaitForEOS OK %ld times bc=%ld\n", task_list[i].id, task_list[i].nTimes, task_list[i].byte_counter);						if (playback_options[i].loop_count > 0)							playback_options[i].loop_count --;						/* restart the playback if necessary */						if ((playback_options[i].loop_count > 0) || (playback_options[i].infinite_loop)) {							/* restart playback */							/* fprintf(stderr, "%lx_Restart playback\n", task_list[i].id); */							if (RMSeekFile(task_list[i].file, 0, RM_FILE_SEEK_START) == RM_ERRORSEEKFILE) {								fprintf(stderr, "%lx_Error seeking file to beginning\n", task_list[i].id);								goto cleanup;							}							task_list[i].buf = NULL;							task_list[i].buffer_used = FALSE;							task_list[i].byte_counter = 0;							task_list[i].sync_timer = TRUE;							if (dcc_info[i].state == RM_PLAYING_TRICKMODE) {								dcc_info[i].state = RM_PLAYING;								dcc_info[i].trickmode_id = RM_NO_TRICKMODE;							}														err = DCCStopVideoSource(dcc_info[i].pVideoSource, DCCStopMode_LastFrame);							if (RMFAILED(err)) {								fprintf(stderr, "%lx_Cannot stop video decoder err=%d\n", task_list[i].id, err);								goto cleanup;							}							err = RMSMXFlushSlot(smx, i);							if (RMFAILED(err)) {								RMDBGLOG((ENABLE, "[%ld] Cannot flush video display fifo err %d\n",i, err));								goto cleanup;							}							err = RUAResetPool(task_list[i].pDMA);	/* needed for no dram copy version on standalone */							if (RMFAILED(err)) {								fprintf(stderr, "%lx_Error cannot reset dmapool\n", task_list[i].id);								goto cleanup;							}							err = DCCPlayVideoSource(dcc_info[i].pVideoSource, DCCVideoPlayFwd);							if (RMFAILED(err)) {								fprintf(stderr, "%lx_Cannot play video decoder %d\n", task_list[i].id, err);								goto cleanup;							}						}						else if (playback_options[i].loop_count == 0) {							/* check if all tasks are done */							RMuint32 done_tasks = 0;							RMSMXSetInputSource(smx, NULL, i);							for (i=0; i< task_count; i++) {								play_opt = &playback_options[i];								if ((play_opt->loop_count > 0) || (play_opt->infinite_loop))									done_tasks++;							}							if(done_tasks == 0)								goto cleanup;						}						break;					}				}			}		}		else if (event_index < (task_count+1)) {			nEvents--;			/* got the videodecoder eos */			if(event_list[event_index].Mask == RUAEVENT_INBAND_COMMAND){				for(i = 0; i < task_count; i++){					if(event_list[event_index].ModuleID == dcc_info[i].video_decoder){						break;					}				}				/* 				if(i == task_count){/\*error*\/} */				task_list[i].smx_eos_wait = TRUE;			}		}		goto check_other_events;			get_command:		{			RMuint32 decoder, new_decoder;			struct rmsmx_window *win  = NULL;			decoder = PSMcontext.currentActivePSMContext;			if(decoder && (!fullscreen)){				win = &(task_list[decoder - 1].smx_window);			}			err = process_command(&PSMcontext, pdcc_info, &actions);			if (RMFAILED(err)) {				fprintf(stderr, "Error while processing key %d\n", err);				goto cleanup;			}			switch(actions.cmd){#if 0			case KEY_CMD_FULLSCREEN:				if(decoder != 0){					if (!fullscreen){						fprintf(stderr, "going fullscreen\n");						for(i = 0; i < task_count; i++){							RMSMXSetOutputWindow(smx, &(task_list[i].smx_thumb_window), i);						}												RMSMXSetInputSource(smx, NULL, decoder - 1);						RMSMXSetCanvasColor(smx, 0x00404020);												err = DCCSetSurfaceSource(pDCC, DispMainVideoScaler, dcc_info[decoder - 1].pVideoSource);						if (RMFAILED(err)) {							fprintf(stderr, "%lx_Cannot set the surface source err=%d\n", task_list[decoder - 1].id, err);							goto cleanup;						}					}					else{						struct rmsmx_source source;						fprintf(stderr, "ungoing fullscreen\n");						err = DCCSetSurfaceSource(pDCC, DispMainVideoScaler, NULL);						if (RMFAILED(err)) {							fprintf(stderr, "%lx_Cannot set the surface source err=%d\n", task_list[decoder - 1].id, err);							goto cleanup;						}						usleep(40000);						DCCSTCGetModuleId(dcc_info[decoder - 1].pStcSource, &source.stc_id);						source.decoder_id = dcc_info[decoder - 1].video_decoder;						RMSMXSetInputSource(smx, &source, decoder - 1);						RMSMXSetCanvasColor(smx, 0xff808080);												for(i = 0; i < task_count; i++){							RMSMXSetOutputWindow(smx, &(task_list[i].smx_window), i);						}					}					fullscreen = !fullscreen;				}				break;#endif			case KEY_CMD_PLUS_OUTPUT_SIZE:				for(i = 0; i < task_count; i++){					if(decoder == i+1 || decoder == 0){						win = &(task_list[i].smx_window);						if((win->x > 10 + win->border_width) &&						   (win->x > 10 + win->border_width) &&						   (win->width + win->x + 20 + 2*win->border_width < 720) &&						   (win->height + win->y + 20 + 2*win->border_width < 480)){							win->x -= 10;							win->y -= 10;							win->width += 20;							win->height += 20;							RMSMXSetOutputWindow(smx, win, i);						}					}				}				break;			case KEY_CMD_MINUS_OUTPUT_SIZE:				for(i = 0; i < task_count; i++){					if(decoder == i+1 || decoder == 0){						win = &(task_list[i].smx_window);						if((win->width > 20) && (win->height > 20)){							win->x += 10;							win->y += 10;							win->width -= 20;							win->height -= 20;							RMSMXSetOutputWindow(smx, win, i);						}					}				}				break;			case KEY_CMD_LEFT_OUTPUT:				for(i = 0; i < task_count; i++){					if(decoder == i+1 || decoder == 0){						win = &(task_list[i].smx_window);						if(win->x > 10 + win->border_width){							win->x -= 10;							RMSMXSetOutputWindow(smx, win, i);						}					}				}				break;			case KEY_CMD_RIGHT_OUTPUT:				for(i = 0; i < task_count; i++){					if(decoder == i+1 || decoder == 0){						win = &(task_list[i].smx_window);						if(win->x + win->width + 2*win->border_width + 10 < 720){							win->x += 10;							RMSMXSetOutputWindow(smx, win, i);						}					}				}				break;			case KEY_CMD_TOP_OUTPUT:				for(i = 0; i < task_count; i++){					if(decoder == i+1 || decoder == 0){						win = &(task_list[i].smx_window);						if(win->y > 10 + win->border_width){							win->y -= 10;							RMSMXSetOutputWindow(smx, win, i);						}					}				}				break;			case KEY_CMD_BOTTOM_OUTPUT:				for(i = 0; i < task_count; i++){					if(decoder == i+1 || decoder == 0){						win = &(task_list[i].smx_window);						if(win->y + win->height + 2*win->border_width + 10 < 480){							win->y += 10;							RMSMXSetOutputWindow(smx, win, i);						}					}				}				break;			case RM_DECODER_CHANGE:				if(fullscreen){					PSMcontext.currentActivePSMContext = decoder;				 	break;				}				new_decoder = PSMcontext.currentActivePSMContext;				if(new_decoder != decoder){					for(i = 0; i < task_count; i++){						if(decoder == i+1 || decoder == 0){														task_list[i].smx_window.border_width = 0;							RMSMXSetOutputWindow(smx, &(task_list[i].smx_window), i);						}						if(new_decoder == i+1 || new_decoder == 0){													task_list[i].smx_window.border_width = 3;							RMSMXSetOutputWindow(smx, &(task_list[i].smx_window), i);					 	}					}				}				break;			case RM_STOP:				for(i = 0; i < task_count; i++){					if(decoder == i+1 || decoder == 0){						err = RMSMXFlushSlot(smx, i);						if (RMFAILED(err)) {							RMDBGLOG((ENABLE, "[%ld] Cannot flush video display fifo err %d\n",i, err));						}						if(task_list[i].buf){							RUAReleaseBuffer(task_list[i].pDMA, task_list[i].buf);							task_list[i].buf = NULL;						}						task_list[i].sync_timer = TRUE;					}				}				break;			case RM_QUIT:				goto cleanup;				break;			}					if (decoder != 0) update_hdmi(&(dcc_info[decoder - 1]), disp_opt, NULL);		}				if(nEvents == task_count + 1){			goto all_blocked;		}									} cleanup:	RMTermExit();	for (i=0; i< task_count; i++) {							if(task_list[i].buf){			RUAReleaseBuffer(task_list[i].pDMA, task_list[i].buf);		}		if (task_list[i].file != NULL){			RMCloseFile(task_list[i].file);		}					if (dcc_info[i].pVideoSource) {			err = DCCStopVideoSource(dcc_info[i].pVideoSource, DCCStopMode_LastFrame);			if (RMFAILED(err)) {				RMDBGLOG((ENABLE, "[%ld] Cannot stop video decoder err %d\n",i, err));			}						err = RMSMXFlushSlot(smx, i);			if (RMFAILED(err)) {				RMDBGLOG((ENABLE, "[%ld] Cannot flush video display fifo err %d\n",i, err));			}		}	}	/* 	 * this also flushes the display fifo	 * and needs to be done before closing the decoder	 */	RMSMXClose(smx);	for (i=0; i< task_count; i++) {		if (dcc_info[i].pVideoSource) {			err = DCCCloseVideoSource(dcc_info[i].pVideoSource);			if (RMFAILED(err)) {				RMDBGLOG((ENABLE, "[%ld] Cannot close video decoder err %d\n",i, err));			}					}				if (task_list[i].pDMA) {			err = RUAClosePool(task_list[i].pDMA);			if (RMFAILED(err)) {				fprintf(stderr, "%lx_Error cannot close dmapool err=%d\n", task_list[i].id, err);			}		}		clear_display_options(&dcc_info[i], disp_opt);	}	err = DCCClose(pDCC);	if (RMFAILED(err)) {		fprintf(stderr, "Cannot close DCC %d\n", err);	}	err = RUADestroyInstance(pRUA);	if (RMFAILED(err)) {		fprintf(stderr, "Cannot destroy RUA instance %d\n", err);		return -1;	}	return 0;}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91丨porny丨蝌蚪视频| 国产精品丝袜黑色高跟| 狠狠色丁香久久婷婷综合_中 | 欧美经典一区二区三区| 91免费在线播放| 紧缚捆绑精品一区二区| 亚洲一区二区欧美激情| 日韩精品中午字幕| 在线看日本不卡| 高清成人在线观看| 蜜臀av一区二区| 亚洲主播在线播放| 国产精品欧美一级免费| 欧美成人aa大片| 欧美日韩在线直播| 色偷偷成人一区二区三区91| 国产精品18久久久久久久久| 轻轻草成人在线| 一区二区高清免费观看影视大全| 26uuu精品一区二区在线观看| 欧美日韩亚洲不卡| 91丨九色porny丨蝌蚪| 成人黄色综合网站| 国产一区三区三区| 久久国产精品露脸对白| 日本成人超碰在线观看| 五月婷婷激情综合| 亚洲福利视频导航| 夜夜嗨av一区二区三区网页| 成人免费小视频| 国产女同互慰高潮91漫画| 欧美不卡一区二区三区四区| 777a∨成人精品桃花网| 欧美色图在线观看| 欧美午夜精品久久久久久超碰| 99久久精品国产麻豆演员表| 成人福利视频在线| 成人性生交大片免费| 从欧美一区二区三区| 国产精品资源站在线| 国产麻豆精品久久一二三| 久久成人av少妇免费| 麻豆成人久久精品二区三区红| 日韩国产一二三区| 日本视频免费一区| 免费在线观看一区二区三区| 蜜臀久久99精品久久久画质超高清 | 久久国产免费看| 精品午夜一区二区三区在线观看| 蜜桃免费网站一区二区三区 | 99久久久精品| 色综合久久久久| 欧美综合欧美视频| 欧美日韩国产精品自在自线| 欧美丰满一区二区免费视频| 91精品欧美福利在线观看| 日韩一区二区在线观看| 精品日韩在线观看| 国产视频一区二区在线| 国产精品剧情在线亚洲| 亚洲黄色片在线观看| 午夜国产不卡在线观看视频| 青青草原综合久久大伊人精品 | 欧美一区二区三区在| 欧美成人精精品一区二区频| 久久精品夜夜夜夜久久| 中文字幕在线观看不卡视频| 亚洲一区二区三区自拍| 日产精品久久久久久久性色| 国产一区 二区| 欧美三区在线观看| 欧美一区二区国产| 久久精品一区二区三区不卡| 亚洲欧洲av一区二区三区久久| 亚洲国产精品久久久久秋霞影院| 蜜桃久久av一区| 国产剧情一区二区三区| 91丨九色丨尤物| 欧美r级在线观看| 中文字幕制服丝袜一区二区三区 | 欧洲激情一区二区| 日韩亚洲欧美高清| 中文字幕一区二区三区四区| 亚洲一区二区三区中文字幕在线| 久久99久久99精品免视看婷婷 | 欧美电视剧免费全集观看| 亚洲国产精品高清| 天天色天天爱天天射综合| 国产一区二区福利| 欧美调教femdomvk| 国产喂奶挤奶一区二区三区| 一区二区日韩av| 懂色av中文字幕一区二区三区| 欧美三级电影网站| 欧美激情在线看| 日韩成人免费电影| 91一区二区在线| 精品国产乱码久久久久久图片| 亚洲女人小视频在线观看| 黄色日韩三级电影| 欧美日韩综合在线| 国产精品美女一区二区在线观看| 日韩黄色在线观看| 色诱亚洲精品久久久久久| 久久亚洲精品国产精品紫薇| 亚洲第一成人在线| 99在线热播精品免费| 久久午夜免费电影| 丝袜亚洲另类欧美| 在线亚洲免费视频| 国产精品久久夜| 久久91精品国产91久久小草| 欧美日韩免费电影| 亚洲乱码日产精品bd| 成人网男人的天堂| 久久久久久久国产精品影院| 三级影片在线观看欧美日韩一区二区| av成人动漫在线观看| 国产欧美日韩中文久久| 久久精品国产精品亚洲精品| 欧美日本在线视频| 一区二区三区在线免费视频| www.亚洲色图.com| 欧美激情一区二区三区蜜桃视频| 久久狠狠亚洲综合| 宅男噜噜噜66一区二区66| 一区二区在线观看免费视频播放| 成人av午夜影院| 国产精品毛片高清在线完整版 | 欧美欧美午夜aⅴ在线观看| 亚洲精品国产无套在线观| www.欧美精品一二区| 国产精品天干天干在观线| 国产福利一区在线| 久久女同性恋中文字幕| 国精品**一区二区三区在线蜜桃| 日韩欧美黄色影院| 老司机精品视频导航| 日韩精品一区二区三区在线播放| 亚洲国产精品尤物yw在线观看| 色噜噜狠狠成人网p站| 亚洲欧美另类久久久精品2019| 不卡视频一二三| 中文字幕在线观看不卡| 一本高清dvd不卡在线观看| 中文字幕亚洲在| 色综合久久中文综合久久牛| 亚洲另类在线视频| 欧美网站大全在线观看| 丝袜国产日韩另类美女| 日韩西西人体444www| 九九**精品视频免费播放| 久久精品综合网| 色综合色狠狠综合色| 偷窥国产亚洲免费视频 | 一区在线播放视频| 欧洲在线/亚洲| 日韩av二区在线播放| 欧美精品一区二| 国产黄色成人av| 亚洲天堂a在线| 91福利小视频| 久久久久久亚洲综合| 亚洲国产日韩一级| 日韩欧美123| 国产成人8x视频一区二区| 国产精品初高中害羞小美女文| 欧美怡红院视频| 麻豆国产欧美一区二区三区| 欧美激情一区三区| aaa国产一区| 亚洲国产综合人成综合网站| 日韩精品中文字幕在线不卡尤物| 国产成人h网站| 亚洲精品免费一二三区| 欧美一级日韩不卡播放免费| 国产成人亚洲精品狼色在线 | 不卡av免费在线观看| 日本一区二区三级电影在线观看| 中文字幕国产一区| 91小视频在线免费看| 丝袜美腿亚洲综合| 国产成人av一区二区三区在线观看| 色综合久久久久久久| 中文字幕第一页久久| 欧美视频在线观看一区| 久99久精品视频免费观看| 中文字幕制服丝袜一区二区三区| 91精品在线免费观看| 成人午夜激情在线| 秋霞午夜av一区二区三区| 国产精品久久久久天堂| 日韩一区二区三区免费观看| av动漫一区二区| 蜜臀久久99精品久久久画质超高清| 亚洲丝袜另类动漫二区| 精品久久久久一区| 欧美丝袜第三区| 99久久99精品久久久久久| 美女视频一区二区三区|