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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? play_mosaic.c

?? SigmDesign SMP8634 media decode chip development SDK
?? C
?? 第 1 頁 / 共 3 頁
字號:
/* * * Copyright (c) Sigma Designs, Inc. 2002. All rights reserved. * */#include "../samples/sample_os.h"#define ALLOW_OS_CODE 1#include "../dcc/include/dcc.h"#include "../rmlibcw/include/rmfile.h"#include "../samples/common.h"#include "../rmsoftmixer/include/rmsoftmixer.h"#include "../samples/command_ids.h"#define KEY_CMD_FULLSCREEN   'F'#undef RMFEATURE_HAS_VIDEOPLANE /* defined in rmfeatures.h but not yet implemented on this branch */#define COMMON_TIMEOUT_US	10000#define DMA_BUFFER_SIZE_LOG2	12#define DMA_BUFFER_COUNT	12#define VIDEO_FIFO_SIZE		(1024*1024)#define XFER_FIFO_COUNT		(32)#define KEYFLAGS (SET_KEY_DISPLAY | SET_KEY_PLAYBACK | SET_KEY_DEBUG)#define ALLOW_OS_CODE 1#define MAX_TASK_COUNT	20struct task_context {	RMuint32 id;	struct RUABufferPool *pDMA;	RMuint8 *buf;	RMbool buffer_used;	RMfile file;	RMuint32 byte_counter;	RMstatus file_status;	RMuint32 nTimes;	RMbool sync_timer;	struct emhwlib_info send_info;	struct rmsmx_window smx_window;	struct rmsmx_window smx_thumb_window;	RMbool smx_eos_wait;};enum mosaic_layout_mode{	mosaic_portrait_layout,	mosaic_landscape_layout,	mosaic_square_layout};static struct RM_PSM_Context PSMcontext;RMuint32			task_count = 0;static struct task_context	task_list[MAX_TASK_COUNT];static struct dcc_context	dcc_info[MAX_TASK_COUNT] = { {0, }, {0, } };static struct dcc_context	*pdcc_info[MAX_TASK_COUNT];static struct playback_cmdline	*play_opt;static struct display_cmdline	*disp_opt;static struct video_cmdline	*video_opt;static struct playback_cmdline	playback_options[MAX_TASK_COUNT]; /*access through play_opt*/static struct display_cmdline 	display_options[MAX_TASK_COUNT];/*access through disp_opt*/static struct video_cmdline	video_options[MAX_TASK_COUNT]; /*access through video_opt*/static RMsmx smx;static enum mosaic_layout_mode layout_mode = mosaic_portrait_layout;#ifdef RMFEATURE_HAS_GRAPHACC_CSCONVstatic enum EMhwlibSamplingMode sampling_mode = EMhwlibSamplingMode_422;#elsestatic enum EMhwlibSamplingMode sampling_mode = EMhwlibSamplingMode_444;#endifstatic void show_usage(char *progname){	show_playback_options();	show_display_options();	show_video_options();	fprintf(stderr, "MOSAIC OPTIONS (default values inside brackets)\n"		"\t-layout layout_mode: Selects the mosaic's layout mode \n"		"\t\t[portrait] landscape square \n"		"\t-sampling sampling_mode: Selects the mosaic's sampling mode \n"		"\t\t[422] 444 \n"		);	fprintf(stderr, "--------------------------------\n");	fprintf(stderr, "Minimum cmd line: %s  <filename> \n", progname);	fprintf(stderr, "--------------------------------\n");	exit(1);}static void parse_cmdline(int argc, char *argv[]){	int i;	RMstatus err;		if(task_count == 0) {		play_opt = &playback_options[0];		disp_opt = &display_options[0];		video_opt = &video_options[0];		task_list[0].id = 0;			}	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 if ( ! strcmp(argv[i], "-task")) {			if (argc > i+1) {				RMuint32 j = 0, task_index;				task_index = strtol(argv[i+1], NULL, 10);				i+=2;				if (task_count > MAX_TASK_COUNT)					show_usage(argv[0]);				for (j=0; j < task_count; j++) {					if( task_index != task_list[j].id)						continue;				}				if ( (task_count==0) || (j >= task_count)) {					fprintf(stderr, "initing %ld\n", task_count);					play_opt = &playback_options[task_count];					disp_opt = &display_options[task_count];					video_opt = &video_options[task_count];					task_list[task_count].id = task_index;					task_count++;									}			}			else				show_usage(argv[0]);		}#ifdef RMFEATURE_HAS_GRAPHACC_CSCONV		else if ( ! strcmp(argv[i], "-sampling")) {			if (argc > i+1) {				if ( ! strcmp(argv[i+1], "422")){					sampling_mode = EMhwlibSamplingMode_422; 				}				else if ( ! strcmp(argv[i+1], "444")){					sampling_mode = EMhwlibSamplingMode_444; 				}				else					show_usage(argv[0]);			}			else				show_usage(argv[0]);			i += 2;		}#endif		else if ( ! strcmp(argv[i], "-layout")) {			if (argc > i+1) {				if ( ! strcmp(argv[i+1], "square")){					layout_mode = mosaic_square_layout;				}				else if ( ! strcmp(argv[i+1], "landscape")){					layout_mode = mosaic_landscape_layout;				}				else if ( ! strcmp(argv[i+1], "portrait")){					layout_mode = mosaic_portrait_layout;				}				else					show_usage(argv[0]);			}			else				show_usage(argv[0]);			i += 2;		}		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 (err == RM_ERROR) 				show_usage(argv[0]);			if (err != RM_PENDING)				continue;			err = parse_video_cmdline(argc, argv, &i, video_opt);			if (RMFAILED(err))				show_usage(argv[0]);		}	}	if (play_opt->filename == NULL)		show_usage(argv[0]);		if(task_count == 0) {		task_count = 1;	}}int main(int argc, char *argv[]){	RMstatus err;	struct DCC *pDCC = NULL;	struct RUA *pRUA = NULL;	/* each task can only wait on one event */	/* the event_list[MAX_TASK_COUNT] entry is for next_picture event */	struct RUAEvent event_list[MAX_TASK_COUNT+1];	struct dh_context dh_info[MAX_TASK_COUNT] = {{0,},};	RMuint32 i, n = 0, m = 0;	static struct RM_PSM_Actions actions;	struct EMhwlibTVFormatAnalog tv_format;	RMuint32 col_no = 0; /* number of windows on a row */	RMuint32 row_no = 0; /* number of windows on a column */	RMuint32 mosaic_width; /* width of the mosaic in pixels */	RMuint32 mosaic_height; /* height of the mosaic in pixels */	RMbool fullscreen = FALSE;	for (i=0; i< MAX_TASK_COUNT; i++) {		play_opt = &playback_options[i];		disp_opt = &display_options[i];		video_opt = &video_options[i];		init_display_options(disp_opt);		init_video_options(video_opt);		init_playback_options(play_opt);		disp_opt->dh_info = &dh_info[i];		video_opt->display_cc = FALSE; /* we cannot display multiple cc streams! */		pdcc_info[i] = &dcc_info[i];	}		parse_cmdline(argc, argv);	/* use the options parsed before any '-task' tag as global options */	play_opt = &playback_options[0];	disp_opt = &display_options[0];	video_opt = &video_options[0];	while((n*m) < task_count){		if(n == m)			n++;		else			m++;	}	switch(layout_mode){	case mosaic_square_layout:		col_no = n;		row_no = n;		break;	case mosaic_landscape_layout:		col_no = m;		row_no = n;		break;	case mosaic_portrait_layout:		col_no = n;		row_no = m;		break;	}	err = RUACreateInstance(&pRUA, play_opt->chip_num);	if (RMFAILED(err)) {		fprintf(stderr, "Error creating RUA instance! %d\n", err);		return -1;	}	err = DCCOpen(pRUA, &pDCC);	if (RMFAILED(err)) {		fprintf(stderr, "Error Opening DCC! %d\n", err);		return -1;	}	err = DCCInitMicroCodeEx(pDCC, disp_opt->init_mode);	if (RMFAILED(err)) {		fprintf(stderr, "Cannot initialize microcode %d\n", err);		return -1;	}	for (i=0; i< task_count; i++) {		dcc_info[i].chip_num = play_opt->chip_num;		dcc_info[i].pRUA = pRUA;		dcc_info[i].pDCC = pDCC;		dcc_info[i].route = disp_opt->route;		dcc_info[i].disp_info = NULL;	}	/* set first decoder in top corner, second decoder in bottom corner */	set_display_out_window(&dcc_info[0]);		err = apply_display_options(&dcc_info[0], disp_opt);	if (RMFAILED(err)) {		fprintf(stderr, "Cannot set display options %d\n", err);		goto cleanup;	}			err = RUAExchangeProperty(pRUA, DisplayBlock, RMDisplayBlockPropertyID_TVFormatAnalog, &(disp_opt->standard), sizeof(disp_opt->standard), &tv_format, sizeof(tv_format));	if (RMFAILED(err)) {		fprintf(stderr, "Cannot get TV format %d\n", err);		goto cleanup;	}	mosaic_width = tv_format.ActiveWidth;	mosaic_height = tv_format.ActiveHeight;	fprintf(stderr, "active width %ld, active height %ld\n", tv_format.ActiveWidth, tv_format.ActiveHeight);	/* open rmsmx */	{		struct rmsmx_config config;		config.pDCC = pDCC;		config.pRUA = pRUA;		config.canvas_profile.SamplingMode = sampling_mode;		if(sampling_mode == EMhwlibSamplingMode_422){			#ifdef RMFEATURE_HAS_VIDEOPLANE			RMDBGLOG((ENABLE, "422 picture on DispVideoPlane\n"));			config.canvas_scaler = DispVideoPlane;#else 			RMDBGLOG((ENABLE, "422 picture on DispMainVideoScaler\n"));			config.canvas_scaler = DispMainVideoScaler;#endif			config.canvas_color = 0xff808080;			config.canvas_profile.ColorMode = EMhwlibColorMode_VideoInterleaved;		}		else{#ifdef RMFEATURE_HAS_VIDEOPLANE 			RMDBGLOG((ENABLE, "444 picture on DispVideoPlane\n"));			config.canvas_scaler = DispVideoPlane;#else 			RMDBGLOG((ENABLE, "444 picture on DispOSDScaler\n"));			config.canvas_scaler = DispOSDScaler;#endif			config.canvas_color = 0xff808080;			config.canvas_profile.ColorMode = EMhwlibColorMode_TrueColor;			config.canvas_profile.SamplingMode = EMhwlibSamplingMode_444;		}		config.canvas_profile.ColorSpace = EMhwlibColorSpace_YUV_601;		config.canvas_profile.ColorFormat = EMhwlibColorFormat_32BPP;		config.canvas_profile.PixelAspectRatio.X = 1;		config.canvas_profile.PixelAspectRatio.Y = 1;

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲国产精品一区二区www在线| 亚洲天堂久久久久久久| 亚洲综合精品自拍| 日本丶国产丶欧美色综合| 国产精品久久国产精麻豆99网站| 久久精品国产99国产| 日韩欧美中文一区二区| 日韩精品久久理论片| 欧美男男青年gay1069videost | 5566中文字幕一区二区电影| 国产亚洲欧美日韩在线一区| 国产九九视频一区二区三区| 久久久噜噜噜久久中文字幕色伊伊| 国产一区二区三区免费| 日本一区二区三区电影| 91亚洲国产成人精品一区二区三| 欧美国产一区视频在线观看| 成人动漫精品一区二区| 亚洲综合另类小说| 欧美一级欧美三级| 成人性视频免费网站| 亚洲午夜激情av| 成人动漫在线一区| 五月天激情综合网| 国产精品国模大尺度视频| 99久久99久久综合| 日韩一区二区精品| 国产精品一品二品| 亚洲免费伊人电影| 日韩欧美不卡在线观看视频| 成人av电影免费在线播放| 亚洲一本大道在线| 精品国产一区二区三区忘忧草| 成人综合激情网| 一区二区欧美国产| 精品久久人人做人人爰| 91一区一区三区| 九九九精品视频| 亚洲天堂中文字幕| 精品国产亚洲一区二区三区在线观看 | 麻豆高清免费国产一区| 国产精品久久久久桃色tv| 一本一道久久a久久精品综合蜜臀| 中文字幕一区二区三区蜜月| 欧美一区二区精品久久911| www.欧美日韩| 久久精品国产77777蜜臀| 国产精品视频麻豆| 色综合久久久久综合体| 欧美一区二区三区在线观看| 成人免费视频播放| 久久精品国产一区二区| 一区二区三区电影在线播| 久久夜色精品一区| 欧美精品视频www在线观看| 国产成人免费视频一区| 午夜精品国产更新| 亚洲欧美激情在线| 久久久久久久久蜜桃| 日韩精品一区二区三区三区免费| av不卡一区二区三区| 国产精品自拍网站| 国产自产v一区二区三区c| 午夜精品爽啪视频| 亚洲人午夜精品天堂一二香蕉| 久久这里只有精品视频网| 日韩欧美三级在线| 欧美日韩免费视频| 在线精品亚洲一区二区不卡| 成人精品一区二区三区四区| 国产在线播放一区三区四| 天涯成人国产亚洲精品一区av| 亚洲伦在线观看| 精品国产露脸精彩对白| 51精品视频一区二区三区| 色国产综合视频| 一本高清dvd不卡在线观看| 99精品久久免费看蜜臀剧情介绍| 国产精品综合二区| 精彩视频一区二区三区| 日韩精品电影一区亚洲| 亚洲国产欧美在线人成| 一区二区高清视频在线观看| 国产欧美一区在线| 欧美高清一级片在线观看| 久久精品视频免费观看| 国产精品女上位| 国产精品久久久爽爽爽麻豆色哟哟| 久久婷婷国产综合精品青草| 久久久久青草大香线综合精品| 国产婷婷一区二区| 亚洲国产高清aⅴ视频| 欧美—级在线免费片| 日本一区二区久久| 中文字幕一区日韩精品欧美| 亚洲三级电影全部在线观看高清| 一区在线播放视频| 亚洲最新视频在线播放| 成人激情动漫在线观看| 成人h动漫精品| 91无套直看片红桃| 欧美亚洲另类激情小说| 91精品欧美福利在线观看| 日韩欧美色电影| 欧美极品美女视频| 亚洲超碰精品一区二区| 久久99精品国产麻豆婷婷| 丁香六月久久综合狠狠色| a级精品国产片在线观看| 色素色在线综合| 日韩三级精品电影久久久| 国产三级一区二区三区| 亚洲精品欧美在线| 日韩国产在线一| 国产精品77777| 色婷婷香蕉在线一区二区| 欧美一级片在线看| 中国色在线观看另类| 无码av免费一区二区三区试看| 极品美女销魂一区二区三区免费| 成人在线视频首页| 欧美日韩另类一区| 国产夜色精品一区二区av| 亚洲欧洲综合另类在线| 麻豆一区二区在线| 97成人超碰视| 日韩欧美的一区| 亚洲美女区一区| 国产麻豆视频精品| 欧美三区在线观看| 久久久精品免费免费| 亚洲成a人v欧美综合天堂| 高清在线不卡av| 91精品一区二区三区久久久久久 | 青青草国产精品97视觉盛宴| 国产伦精品一区二区三区免费迷| 欧美在线影院一区二区| 久久精品亚洲一区二区三区浴池| 亚洲国产成人porn| 成人综合婷婷国产精品久久免费| 日韩亚洲欧美中文三级| 一区二区三区四区不卡在线 | 国产精品视频一区二区三区不卡| 亚洲高清视频在线| 成人一区二区视频| 欧美不卡视频一区| 日韩综合在线视频| 色呦呦一区二区三区| 国产精品美女久久久久aⅴ国产馆 国产精品美女久久久久av爽李琼 国产精品美女久久久久高潮 | 一区二区三区日韩精品视频| 国产成人无遮挡在线视频| 国产精品色眯眯| 丝袜a∨在线一区二区三区不卡| 91麻豆免费观看| 国产欧美日韩在线视频| 九色|91porny| 精品剧情v国产在线观看在线| 亚洲va韩国va欧美va| 色先锋久久av资源部| 亚洲国产精品av| 国产成人亚洲精品狼色在线| 精品国产乱码久久久久久图片| 亚洲成av人影院| 欧美视频在线一区二区三区| **欧美大码日韩| 99国产精品久久久| 国产精品久久久久桃色tv| 成人手机电影网| 国产视频911| 懂色av一区二区三区免费观看| 精品久久国产97色综合| 韩国av一区二区三区在线观看| 精品国内片67194| 九九久久精品视频| 久久精品视频一区二区三区| 成人午夜又粗又硬又大| 国产蜜臀97一区二区三区| 国产激情一区二区三区| 中文字幕av免费专区久久| 粉嫩蜜臀av国产精品网站| 国产精品理论在线观看| 99精品欧美一区二区蜜桃免费 | 精品国产一二三区| 国产在线播放一区| 日本一区二区三区四区在线视频| 成人精品视频网站| 艳妇臀荡乳欲伦亚洲一区| 欧美日韩1区2区| 毛片av中文字幕一区二区| 国产欧美视频一区二区三区| jvid福利写真一区二区三区| 亚洲激情欧美激情| 欧美一级黄色大片| 国产精品自拍三区| 亚洲男人都懂的| 91精品国产综合久久婷婷香蕉| 捆绑变态av一区二区三区| 久久久久国产精品人| 91麻豆视频网站| 日本女人一区二区三区|