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

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

?? play_picture.c

?? Sample code for use on smp 863x processor.
?? C
字號:
/* * * Copyright (c) Sigma Designs, Inc. 2002. All rights reserved. * *//**	@file play_picture.c	@brief sample application to access the Mambo chip and display a BMP/JPEG picture on the graphic plane		@author Pascal Cannenterre   	@ingroup dccsamplecode*//*#include <stdio.h>#include <stdlib.h>#include <string.h>#include <unistd.h>*/#include "sample_os.h"#define ALLOW_OS_CODE 1#include "common.h"#if ((EM86XX_CHIP==EM86XX_CHIPID_TANGO15)&&(EM86XX_MODE==EM86XX_MODEID_STANDALONE))#include "rua_memory.h"#endif #define KEYFLAGS (SET_KEY_DISPLAY | SET_KEY_DEBUG)static struct playback_cmdline  *play_opt;static struct display_cmdline *disp_opt;#ifndef WITH_MONOstatic void show_usage(char *progname){	show_playback_options();	show_display_options();		fprintf(stderr, "------------------------------------------------------------\n");	fprintf(stderr, "Minimum cmd line: %s <filename.jpg/filename.bmp>\n", progname);	fprintf(stderr, "------------------------------------------------------------\n");	exit(1);}static void parse_cmdline(int argc, char *argv[]){	int i;	RMstatus err;	if (argc < 2) 		show_usage(argv[0]);		i = 1;	while ((argc > i)) {		if (argv[i][0] != '-') {			if (play_opt->filename == NULL) {				play_opt->filename = argv[i];				i++;			}			else				show_usage(argv[0]);		}		else {			err = parse_playback_cmdline(argc, argv, &i, play_opt);			if (err == RM_ERROR) 				show_usage(argv[0]);			if (err != RM_PENDING)				continue;			err = parse_display_cmdline(argc, argv, &i, disp_opt);			if (RMFAILED(err))				show_usage(argv[0]);		}	}	if (play_opt->filename == NULL)		show_usage(argv[0]);}#endif /*WITH_MONO*/#ifdef WITH_MONOint main_picture(struct mono_info *mono){#elseint main(int argc, char *argv[]){	/*for MONO compatibility, always access these variables through the global pointers*/	struct playback_cmdline playback_options; /* access through play_opt */	struct display_cmdline  display_options;  /* access through disp_opt */	struct display_context disp_info;	struct dh_context dh_info = {0,};#endif	RMstatus err;	static struct dcc_context dcc_info = {0,};	struct osd_picture_info osd_picture = {0};	struct DCCOSDProfile osd_profile;#ifdef WITH_MONO	/*make the mono arguments global*/	play_opt = mono->play_opt;	disp_opt = mono->disp_opt;	dcc_info.pRUA = mono->pRUA;	dcc_info.pDCC = mono->pDCC;	osd_picture.scaler = mono->osd_scaler;	set_default_out_window(&(osd_picture.source_window));	set_default_out_window(&(osd_picture.output_window));	dcc_info.disp_info = NULL;	dcc_info.route = DCCRoute_Main;#else	play_opt = &playback_options;	disp_opt = &display_options;	dcc_info.disp_info = &disp_info;	dcc_info.dh_info = &dh_info;	init_playback_options(play_opt);	init_display_options(disp_opt);	disp_opt->dh_info = &dh_info;	parse_cmdline(argc, argv);	dcc_info.route = disp_opt->route;	err = RUACreateInstance(&dcc_info.pRUA, play_opt->chip_num);	if (RMFAILED(err)) {		fprintf(stderr, "Error creating RUA instance! %d\n", err);		return -1;	} 	if (disp_opt->dump_osd_dir != NULL) {		RMbool dirty_bits = FALSE;		while ((err = RUASetProperty(dcc_info.pRUA, DisplayBlock, RMDisplayBlockPropertyID_EnableDirtyBits, &dirty_bits, sizeof(dirty_bits), 0)) == RM_PENDING);		if (RMFAILED(err)) {			fprintf(stderr, "Error setting disable_dirty flag %d\n", err);			return err;		}	}		err = DCCOpen(dcc_info.pRUA, &dcc_info.pDCC);	if (RMFAILED(err)) {		fprintf(stderr, "Error Opening DCC! %d\n", err);		return -1;	}	err = DCCInitChainEx(dcc_info.pDCC, disp_opt->init_mode);	if (RMFAILED(err)) {		fprintf(stderr, "Cannot initialize microcode %d\n", err);		return -1;	}	display_key_usage(KEYFLAGS);#endif#if ((EM86XX_CHIP==EM86XX_CHIPID_TANGO15)&&(EM86XX_MODE==EM86XX_MODEID_STANDALONE))	c_malloc_init( (void *)dcc_info.pRUA );#endif	dcc_info.chip_num = play_opt->chip_num;	err = apply_playback_options(&dcc_info, play_opt);	if (RMFAILED(err)) {		fprintf(stderr, "Cannot set playback options %d\n", err);		goto cleanup2;	}	osd_picture.route = dcc_info.route;	osd_picture.enable = TRUE;	osd_picture.filename = play_opt->filename;	osd_picture.dramblock = 0;	osd_picture.alpha = 128;	osd_picture.alpha_merge = FALSE;	osd_picture.zoom = FALSE;	osd_picture.color_space = EMhwlibColorSpace_None;	osd_picture.orientation = FRTop_FCLeft;	osd_picture.nonlinearmode.Width = 0;	osd_picture.nonlinearmode.Level = 0;	osd_picture.blackstrip.Horizontal = 4096;	osd_picture.blackstrip.Vertical = 4096;	osd_picture.cutstrip.Horizontal = 4096;	osd_picture.cutstrip.Vertical = 4096;#ifndef WITH_MONO		/* this fields are filled by parse_display_options */	osd_picture.scaler = disp_opt->osd_pictures[0].scaler;	osd_picture.source_window = disp_opt->osd_pictures[0].source_window;	osd_picture.output_window = disp_opt->osd_pictures[0].output_window;	osd_picture.zoom = disp_opt->osd_pictures[0].zoom;	osd_picture.color_space = disp_opt->osd_pictures[0].color_space;	osd_picture.alpha_filename = disp_opt->osd_pictures[0].alpha_filename;	osd_picture.alpha_merge = disp_opt->osd_pictures[0].alpha_merge;	osd_picture.alpha = disp_opt->osd_pictures[0].alpha;	osd_picture.blackstrip = disp_opt->blackstrip;	osd_picture.cutstrip = disp_opt->cutstrip;	osd_picture.lock_scaler = disp_opt->lock_scaler;		err = apply_display_options(&dcc_info, disp_opt);	if (RMFAILED(err)) {		RMDBGLOG((ENABLE, "Cannot set display options %d\n", err));		return -1;	}		dcc_info.disp_info->osd_enable[0] = TRUE;	dcc_info.disp_info->osd_window[0] = osd_picture.output_window;	dcc_info.disp_info->active_window = &(dcc_info.disp_info->osd_window[0]);	err = DCCGetScalerModuleID(dcc_info.pDCC, osd_picture.route, DCCSurface_OSD, osd_picture.scaler, &(dcc_info.disp_info->osd_scaler[0]));	if (RMFAILED(err)) {		RMDBGLOG((ENABLE, "Cannot get surface to display OSD source %d\n", err));		return err;	}		err = apply_osd_pictureX(&dcc_info, &osd_picture, &osd_profile, &(dcc_info.pOSDSource[0]), disp_opt);#else	err = apply_osd_picture(&dcc_info, &osd_picture, &osd_profile, &(dcc_info.pOSDSource[0]));#endif	if (RMFAILED(err)) {		RMDBGLOG((ENABLE, "Cannot open osd source %s\n", RMstatusToString(err)));		return err;	}#ifndef WITH_MONO	if (disp_opt->dump_osd_dir != NULL) {		RMuint32 lutAddr = 0;		err = RUAGetProperty(dcc_info.pRUA, dcc_info.disp_info->osd_scaler[0], RMGenericPropertyID_LUTAddress, &lutAddr, sizeof(lutAddr));		dumpBitmapInfo(&dcc_info, dcc_info.pOSDSource[0], &osd_profile, lutAddr, disp_opt->dump_osd_dir);		dump_dvi_init(&dcc_info, disp_opt);			}		RMTermInit(TRUE);    // don't allow ctrl-C and the like ...	RMSignalInit(NULL, NULL);  // ... but catch other termination signals to call RMTermExit()#endif#ifdef WITH_MONO	RMDCCInfo(&dcc_info); // pass DCC context to application#endif	do {		RMuint32 cmd;		err = process_key(&dcc_info, &cmd, KEYFLAGS);		if (RMFAILED(err)) {			fprintf(stderr, "Error while processing key %d\n", err);			break;		}		switch(cmd) {		case RM_QUIT:		case RM_STOP:			goto cleanup;			break;		case RM_ROTATE_PICTURE:			err = DCCCloseVideoSource(dcc_info.pOSDSource[0]);			if (RMFAILED(err)) {				RMDBGLOG((ENABLE, "Cannot close osd source %s\n", RMstatusToString(err)));				return err;			}			dcc_info.pOSDSource[0] = NULL;			/* there are 8 possible orientations */			osd_picture.orientation &= 0x7;			osd_picture.orientation++;			err = apply_osd_picture(&dcc_info, &osd_picture, NULL, &(dcc_info.pOSDSource[0]));			if (RMFAILED(err)) {				RMDBGLOG((ENABLE, "Cannot open osd source %s\n", RMstatusToString(err)));				return err;			}					default:			usleep(50*1000);			break;		}		update_hdmi(&dcc_info, disp_opt, NULL);	} while(1);cleanup:#ifndef WITH_MONO	RMTermExit();#endifcleanup2:	err = DCCCloseVideoSource(dcc_info.pOSDSource[0]);	if (RMFAILED(err)) {		RMDBGLOG((ENABLE, "Cannot close osd source %s\n", RMstatusToString(err)));		return err;	}	dcc_info.pOSDSource[0] = NULL;	/* jpeg decoding may force a different source window */	{		RMuint32 scaler;		err = DCCGetScalerModuleID(dcc_info.pDCC, osd_picture.route, DCCSurface_OSD, osd_picture.scaler, &scaler);		if (RMFAILED(err)) {			RMDBGLOG((ENABLE, "Cannot get surface to display OSD source %d\n", err));			return RM_ERROR;		}				set_default_out_window(&(osd_picture.source_window));		while ((err = RUASetProperty(dcc_info.pRUA, scaler, RMGenericPropertyID_ScalerInputWindow, &(osd_picture.source_window), sizeof(osd_picture.source_window), 0)) == RM_PENDING);		if (RMFAILED(err)) {			RMDBGLOG((ENABLE, "Cannot set scaler input window on OSD surface %d\n", err));			return err;		}				while ((err = RUASetProperty(dcc_info.pRUA, scaler, RMGenericPropertyID_Validate, NULL, 0, 0)) == RM_PENDING);		if (RMFAILED(err)) {			RMDBGLOG((ENABLE, "Cannot validate scaler input window %d\n", err));			return err;		}	}#ifndef WITH_MONO	clear_display_options(&dcc_info, disp_opt);	if (disp_opt->dump_osd_dir != NULL) {		RMbool dirty_bits = TRUE;		while ((err = RUASetProperty(dcc_info.pRUA, DisplayBlock , RMDisplayBlockPropertyID_EnableDirtyBits, &dirty_bits, sizeof(dirty_bits), 0)) == RM_PENDING);		if (RMFAILED(err)) {			fprintf(stderr, "Error setting disable_dirty flag %d\n", err);			return err;		}	}	err = DCCClose(dcc_info.pDCC);	if (RMFAILED(err)) {		fprintf(stderr, "Cannot close DCC %d\n", err);		return -1;	}#endif //#ifndef WITH_MONO#if ((EM86XX_CHIP==EM86XX_CHIPID_TANGO15)&&(EM86XX_MODE==EM86XX_MODEID_STANDALONE))	c_malloc_uninit( (void *)dcc_info.pRUA );#endif#ifndef WITH_MONO	err = RUADestroyInstance(dcc_info.pRUA);	if (RMFAILED(err)) {		fprintf(stderr, "Cannot destroy RUA instance %d\n", err);		return -1;	}#endif /*WITH_MONO*/	return 0;}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲日本乱码在线观看| 国内精品写真在线观看| 久久精品二区亚洲w码| 豆国产96在线|亚洲| 在线成人高清不卡| 亚洲国产精品t66y| 日韩精品久久久久久| 不卡一区二区中文字幕| 欧美一级一区二区| 一区二区三区中文字幕精品精品| 狠狠色狠狠色综合| 欧美肥妇free| 亚洲激情成人在线| 成人午夜免费电影| 久久先锋影音av鲁色资源 | 欧美性猛片aaaaaaa做受| 欧美岛国在线观看| 午夜不卡av免费| 91久久一区二区| 国产精品成人免费| 国产精品99久久久久久久vr| 日韩一区二区精品在线观看| 日韩有码一区二区三区| 欧美系列亚洲系列| 亚洲精品中文在线| 99精品热视频| 亚洲人xxxx| 91在线视频免费91| 中文字幕视频一区二区三区久| 国产一区三区三区| 久久女同互慰一区二区三区| 紧缚捆绑精品一区二区| 欧美一区二区不卡视频| 日本在线不卡视频一二三区| 制服丝袜av成人在线看| 亚洲国产精品一区二区久久| 欧美电影在线免费观看| 视频一区二区中文字幕| 56国语精品自产拍在线观看| 免费看欧美女人艹b| 日韩欧美国产一区二区三区| 久久99国产精品麻豆| 欧美成人乱码一区二区三区| 国产一区二区三区精品欧美日韩一区二区三区 | 一区二区激情视频| 一本大道久久a久久综合| 亚洲精品成人天堂一二三| 色999日韩国产欧美一区二区| 一区二区三区在线免费| 欧美日韩一区视频| 视频在线观看国产精品| 日韩精品一区二| 国产成人日日夜夜| 亚洲欧洲av另类| 欧美亚洲高清一区二区三区不卡| 亚洲v日本v欧美v久久精品| 91精品国产综合久久精品麻豆| 久久超碰97中文字幕| 欧美国产综合一区二区| 91麻豆国产在线观看| 日韩精品欧美精品| 国产日韩精品一区二区三区在线| 不卡视频免费播放| 午夜精品在线视频一区| 国产偷国产偷精品高清尤物| 色狠狠综合天天综合综合| 丝袜亚洲另类丝袜在线| 久久无码av三级| 欧洲日韩一区二区三区| 美女爽到高潮91| 亚洲视频一区二区在线观看| 日韩欧美一二三| 成人18精品视频| 美女在线观看视频一区二区| 中文字幕在线不卡国产视频| 911精品国产一区二区在线| 国产传媒日韩欧美成人| 亚洲中国最大av网站| 国产欧美一区二区三区沐欲| 欧美日韩大陆在线| 国产成人精品综合在线观看| 日本三级亚洲精品| 亚洲欧洲性图库| 久久天堂av综合合色蜜桃网| 91超碰这里只有精品国产| 岛国精品在线观看| 久久精品国产一区二区| 一区二区免费在线| 国产精品视频一二三| 日韩一区二区免费视频| 欧美丝袜第三区| 成人av网址在线观看| 麻豆国产欧美一区二区三区| 亚洲一区二区偷拍精品| 欧美国产精品专区| 精品国产一区二区三区不卡| 欧美日韩精品一区二区天天拍小说 | 自拍av一区二区三区| 久久久一区二区| 日韩欧美中文字幕公布| 欧美三级韩国三级日本一级| 色天天综合久久久久综合片| 成人天堂资源www在线| 国产一区二区在线视频| 久久国产视频网| 青娱乐精品视频| 日韩国产一二三区| 丝袜美腿成人在线| 天天综合色天天| 亚州成人在线电影| 亚洲高清三级视频| 亚洲国产欧美在线| 亚洲成人在线观看视频| 亚洲一线二线三线久久久| 一区二区三区视频在线观看| 一区二区三区欧美在线观看| 亚洲精品午夜久久久| 尤物视频一区二区| 一区二区三区国产| 国产精品系列在线| 欧美日韩一区二区在线观看视频| 色一区在线观看| 欧洲精品在线观看| 91官网在线免费观看| 欧美性极品少妇| 欧美日韩国产电影| 欧美一区二区精品久久911| 欧美岛国在线观看| 久久精品视频一区二区| 成人免费在线视频| 一区二区国产盗摄色噜噜| 亚洲国产精品久久艾草纯爱| 日本va欧美va精品| 另类调教123区| 成人黄色a**站在线观看| 91麻豆高清视频| 911精品国产一区二区在线| 欧美成人精品福利| 亚洲国产成人自拍| 玉米视频成人免费看| 日韩精品福利网| 国产成人自拍网| 色88888久久久久久影院野外| 欧美日韩一级片网站| 日韩视频一区二区三区| 国产三级精品三级在线专区| 亚洲另类中文字| 日本欧美肥老太交大片| 成人性生交大片免费| 欧美日韩另类一区| 欧美精品一区二区久久久| 国产精品水嫩水嫩| 午夜精品成人在线| 国产精品一区二区91| 日本久久电影网| 337p粉嫩大胆噜噜噜噜噜91av| 国产精品美女久久久久久久| 日韩影院在线观看| 国产成人av电影免费在线观看| 欧美综合欧美视频| 久久久久久久久99精品| 亚洲午夜久久久| 丁香激情综合国产| 欧美一区二区观看视频| 亚洲欧洲色图综合| 极品尤物av久久免费看| 91福利视频在线| 久久久精品国产免大香伊 | 国产喷白浆一区二区三区| 亚洲乱码国产乱码精品精的特点| 久久精品久久综合| 在线亚洲+欧美+日本专区| 久久久久久99精品| 日日噜噜夜夜狠狠视频欧美人| 成人av手机在线观看| 精品久久国产字幕高潮| 亚洲国产成人91porn| 色综合久久88色综合天天免费| 中文字幕精品综合| 免费在线观看精品| 欧美日韩精品电影| 亚洲免费观看视频| 不卡视频在线看| 欧美国产亚洲另类动漫| 久久精品国产澳门| 欧美另类一区二区三区| 亚洲一区二区视频| 色婷婷综合五月| 亚洲人快播电影网| k8久久久一区二区三区| 久久精品视频一区二区| 国产麻豆成人传媒免费观看| 精品国产网站在线观看| 日韩精品色哟哟| 日韩欧美在线一区二区三区| 蜜桃精品在线观看| 欧美一级日韩免费不卡| 日产精品久久久久久久性色| 欧美精品久久天天躁| 天使萌一区二区三区免费观看|