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

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

?? play_picture.c

?? SigmDesign SMP8634 media decode chip development SDK
?? 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一区二区三区免费野_久草精品视频
色综合网站在线| 亚洲va国产va欧美va观看| 欧洲在线/亚洲| 国产经典欧美精品| 日韩av电影天堂| 亚洲欧美色图小说| 国产精品色一区二区三区| 欧美v亚洲v综合ⅴ国产v| 欧美中文字幕亚洲一区二区va在线 | 蜜臀av性久久久久蜜臀aⅴ四虎| 国产精品系列在线| 国产亚洲精品资源在线26u| 911精品国产一区二区在线| www.66久久| 国产福利一区在线| 天天色天天爱天天射综合| 国产精品国产三级国产aⅴ入口| 欧美成人精品高清在线播放| 日韩丝袜美女视频| 91精品国产综合久久久久久漫画 | 欧美嫩在线观看| www.亚洲国产| 91在线视频免费观看| 成人精品免费看| 国产乱妇无码大片在线观看| 国产精品99久久久| 国产91丝袜在线观看| 成人av在线资源| 成人免费va视频| 久久97超碰国产精品超碰| 免费精品视频在线| 黄页视频在线91| 成人免费毛片app| 99国产精品久久久久久久久久久| 91亚洲精品一区二区乱码| 99久精品国产| 欧美挠脚心视频网站| 日韩一区二区三区观看| 7777精品伊人久久久大香线蕉的| 欧美卡1卡2卡| 精品99999| 国产精品素人视频| 樱桃国产成人精品视频| 免费久久99精品国产| 国产精品一卡二| 国产99久久久国产精品潘金 | 欧美日韩一区不卡| 日韩美女天天操| 国产欧美日韩在线观看| 亚洲欧美欧美一区二区三区| 亚洲福利一区二区三区| 国产在线精品一区二区不卡了| 国产精品99久久久久久久vr| 欧美在线不卡视频| 欧美第一区第二区| 亚洲欧美激情小说另类| 日本不卡123| 国产传媒一区在线| 色婷婷精品大视频在线蜜桃视频| 欧美久久久久中文字幕| 国产欧美精品一区二区色综合朱莉| 亚洲三级在线播放| 免播放器亚洲一区| 97久久精品人人爽人人爽蜜臀| 欧美一级一级性生活免费录像| 国产精品欧美久久久久一区二区| 日本一区二区三区dvd视频在线| 亚洲综合一区二区三区| 国产精品亚洲第一区在线暖暖韩国| 色综合欧美在线| 国产色综合久久| 日本vs亚洲vs韩国一区三区二区 | 亚洲国产精品激情在线观看| 亚洲欧美在线观看| 精品综合久久久久久8888| 色悠悠久久综合| 欧美极品另类videosde| 日本成人在线网站| 欧美性生活久久| 国产精品麻豆视频| 国产成人在线网站| 日韩无一区二区| 午夜电影网亚洲视频| 91蝌蚪porny| 国产精品福利av| 国产91丝袜在线播放九色| 精品国产一区二区在线观看| 亚洲aⅴ怡春院| 色综合天天视频在线观看 | 欧美成人性战久久| 丝袜亚洲另类丝袜在线| 欧美午夜电影一区| 亚洲精品老司机| 国产suv精品一区二区883| 日韩欧美国产午夜精品| 免费在线观看日韩欧美| 日韩一区二区三区四区五区六区| 亚洲小说欧美激情另类| 欧美三级视频在线观看| 亚洲午夜在线视频| 欧美在线观看禁18| 午夜不卡av免费| 欧美日韩日本视频| 日韩av一区二区三区| 日韩一区二区高清| 国产自产v一区二区三区c| 精品国产乱码久久久久久老虎| 青青草成人在线观看| 精品视频一区三区九区| 日韩激情av在线| 日韩一二三区视频| 国产一区 二区 三区一级| 国产亚洲精品久| 不卡的av电影| 亚洲色图欧美在线| 欧美伊人久久大香线蕉综合69| 亚洲成a人v欧美综合天堂下载| 欧美一级久久久久久久大片| 精品一区二区三区蜜桃| 中文字幕av一区二区三区高| 一本一道久久a久久精品| 亚洲地区一二三色| 欧美一区二区三区在线观看视频 | 韩日av一区二区| 国产精品麻豆视频| 欧美日韩成人在线| 国模套图日韩精品一区二区| 国产精品欧美极品| 91精品国产综合久久精品图片| 一二三区精品福利视频| 精品少妇一区二区三区视频免付费| 国产精品77777竹菊影视小说| 亚洲人成伊人成综合网小说| 在线综合亚洲欧美在线视频| 不卡的av网站| 国产一区二区三区四| 亚洲日本在线a| www久久久久| 在线免费观看视频一区| 国产一区二区在线视频| 亚洲成a人v欧美综合天堂下载| 久久久国际精品| 欧美日本免费一区二区三区| 91九色02白丝porn| 色哟哟一区二区三区| 一本色道**综合亚洲精品蜜桃冫| 成人性生交大片免费看视频在线| 久久激情五月激情| 久99久精品视频免费观看| 日韩和欧美一区二区三区| 亚洲大片精品永久免费| 无吗不卡中文字幕| 亚洲va欧美va天堂v国产综合| 亚洲尤物在线视频观看| 一区二区三区视频在线观看| 一区二区三区**美女毛片| 亚洲午夜免费电影| 香蕉av福利精品导航| 秋霞电影网一区二区| 麻豆精品久久精品色综合| 免费精品视频在线| 国产伦精品一区二区三区免费| 国精产品一区一区三区mba视频| 国产真实乱偷精品视频免| 国产夫妻精品视频| 97精品超碰一区二区三区| 色噜噜偷拍精品综合在线| 欧美中文字幕一区二区三区亚洲| 欧美日韩国产影片| 日韩精品一区二区三区中文不卡| 26uuu国产电影一区二区| 国产精品久久网站| 亚洲乱码一区二区三区在线观看| 亚洲狠狠丁香婷婷综合久久久| 午夜亚洲福利老司机| 久久 天天综合| 91丝袜美腿高跟国产极品老师| 欧美午夜精品免费| 久久综合九色综合欧美亚洲| 国产精品黄色在线观看| 亚洲福利一区二区三区| 国产又黄又大久久| 91免费版pro下载短视频| 欧美二区乱c少妇| 日本一区二区成人| 日日夜夜免费精品| 成+人+亚洲+综合天堂| 欧美妇女性影城| 国产精品美女一区二区在线观看| 一区二区三区中文字幕精品精品 | 蜜臀久久99精品久久久久久9| 国产美女一区二区| 欧美视频你懂的| 欧美激情资源网| 日韩专区中文字幕一区二区| 成人网页在线观看| 日韩三级伦理片妻子的秘密按摩| 亚洲色图视频免费播放| 国产一区二区在线观看免费| 在线区一区二视频|