⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 parse_display_cmdline.c

📁 SigmDesign SMP8634 media decode chip development SDK
💻 C
📖 第 1 页 / 共 5 页
字号:
				options->dvi_hdmi_edid_vsize = 1080;				options->dvi_hdmi_edid_vfreq = 60;				options->dvi_hdmi_edid_intl = FALSE;			} else if (RMCompareAscii(argv[i], "vga")) {				options->dvi_hdmi_edid_hsize = 640;				options->dvi_hdmi_edid_vsize = 480;				options->dvi_hdmi_edid_vfreq = 60;				options->dvi_hdmi_edid_intl = FALSE;			} else if ((argv[i][0] >= '0') && (argv[i][0] <= '9')) {				RMint32 VIC;				RMasciiToInt32(argv[i], &VIC);				if ((VIC == 0) || (VIC > 59)) {					fprintf(stderr, "VIC out of range: %lu\n", VIC);					err = RM_ERROR;				} else {					options->dvi_hdmi_edid_descriptor = VIC;  // hack				}			} else {				fprintf(stderr, "Unknown resolution: -r %s\n", argv[i]);				err = RM_ERROR;			}		} else {			err = RM_OK;			options->edid_sel = DH_EDID_auto;			options->standard = EMhwlibTVStandard_HDMI_480p59;  // fallback standard		}		i++;	}#ifdef RMFEATURE_HAS_HDSD_CONVERTER	else if (RMCompareAscii(argv[i], "-sdf50")) {		if (argc > i+1) {			err = GetTVStandard(argv[i+1], &(options->sd_standard_50Hz));			i += 2;		} else {			err = RM_ERROR;		}	}	else if (RMCompareAscii(argv[i], "-sdf60")) {		if (argc > i+1) {			err = GetTVStandard(argv[i+1], &(options->sd_standard_60Hz));			i += 2;		} else {			err = RM_ERROR;		}	}	else if (RMCompareAscii(argv[i], "-sdf")) {		options->use_hdsd_conversion = TRUE;		if ((argc > i+1) && (argv[i+1][0] != '-')) {			err = GetTVStandard(argv[i+1], &(options->sd_standard));			i++;		} else {			options->sd_autodetect = TRUE;			err = RM_OK;		}		i++;	}	else if (RMCompareAscii(argv[i], "-sdbuf")) {		i++;		options->allow_otf = FALSE;		err = RM_OK;	}	else if (RMCompareAscii(argv[i], "-sdotf")) {		i++;		options->allow_buf = FALSE;		err = RM_OK;	}	else if (RMCompareAscii(argv[i], "-sdcav")) {		i++;		options->sd_component = TRUE;		err = RM_OK;	}	else if (RMCompareAscii(argv[i], "-hdcav")) {		i++;		options->sd_cav_1080p = TRUE;		err = RM_OK;	}	else if (RMCompareAscii(argv[i], "-sdasp")) {		if (argc > i+2) { 			RMasciiToUInt32(argv[i+1], &(options->sd_ar_x));			RMasciiToUInt32(argv[i+2], &(options->sd_ar_y));			i += 3;			err = RM_OK;		}		else			err = RM_ERROR;			}#endif	else if (RMCompareAscii(argv[i], "-vgaf")) {		if (argc > i+1) { 			if (RMCompareAscii(argv[i+1], "edid")) {				options->vga_standard = EMhwlibTVStandard_HDMI_480p59;  // fallback standard				options->vga_edid_sel = DH_EDID_auto;				err = RM_OK;			} else {				err = GetTVStandard(argv[i+1], &(options->vga_standard));			}			i += 2;		}		else 			err = RM_ERROR;			}	else if (RMCompareAscii(argv[i], "-vmf")) {		if (argc > i+1) { 			strncpy(options->vidmode_filename, argv[i + 1], 2048);			options->vidmode_filename[2047] = '\0';			options->standard = EMhwlibTVStandard_Custom;			err = RM_OK;			i += 2;		}		else 			err = RM_ERROR;			}	else if (RMCompareAscii(argv[i], "-o")) {		if (argc > i+1) {			if (RMCompareAscii(argv[i+1], "svideo")) {				options->connector = DCCVideoConnector_SVIDEO;			}			else if (RMCompareAscii(argv[i+1], "composite") || RMCompareAscii(argv[i+1], "cvbs")) {				options->connector = DCCVideoConnector_COMPOSITE;			}			else if (RMCompareAscii(argv[i+1], "component_rgb_scart")) {				options->connector = DCCVideoConnector_COMPONENT;				options->component = EMhwlibComponentMode_RGB_SCART;			}			else if (RMCompareAscii(argv[i+1], "component_rgb_sog")) {				options->connector = DCCVideoConnector_COMPONENT;				options->component = EMhwlibComponentMode_RGB_SOG;			}			else if (RMCompareAscii(argv[i+1], "component_rgb_smpte")) {				options->connector = DCCVideoConnector_COMPONENT;				options->component = EMhwlibComponentMode_RGB_SMPTE;			}			else if (RMCompareAscii(argv[i+1], "component_yuv_betacam")) {				options->connector = DCCVideoConnector_COMPONENT;				options->component = EMhwlibComponentMode_YUV_BETACAM;			}			else if (RMCompareAscii(argv[i+1], "component_yuv_m2")) {				options->connector = DCCVideoConnector_COMPONENT;				options->component = EMhwlibComponentMode_YUV_M2;			}			else if (RMCompareAscii(argv[i+1], "component_yuv_smpte") || RMCompareAscii(argv[i+1], "cav")) {				options->connector = DCCVideoConnector_COMPONENT;				options->component = EMhwlibComponentMode_YUV_SMPTE;			}			else if (RMCompareAscii(argv[i+1], "scart")) {				options->connector = DCCVideoConnector_SCART;			}			else if (RMCompareAscii(argv[i+1], "dvi_8")) {				options->connector = DCCVideoConnector_DVI;				options->bus_size = 8;			}			else if (RMCompareAscii(argv[i+1], "dvi_16")) {				options->connector = DCCVideoConnector_DVI;				options->bus_size = 16;			}			else if (RMCompareAscii(argv[i+1], "dvi_24") || RMCompareAscii(argv[i+1], "dvi") || RMCompareAscii(argv[i+1], "hdmi")) {				options->connector = DCCVideoConnector_DVI;				options->bus_size = 24;			}			else if (RMCompareAscii(argv[i+1], "lvds")) {				options->connector = DCCVideoConnector_LVDS;				options->bus_size = 24;			}			else if (RMCompareAscii(argv[i+1], "dig_8")) {				options->connector = DCCVideoConnector_Digital;				options->bus_size = 8;			}			else if (RMCompareAscii(argv[i+1], "dig_16")) {				options->connector = DCCVideoConnector_Digital;				options->bus_size = 16;			}			else if (RMCompareAscii(argv[i+1], "dig_24")) {				options->connector = DCCVideoConnector_Digital;				options->bus_size = 24;			}			else if (RMCompareAscii(argv[i+1], "vga")) {				options->connector = DCCVideoConnector_VGA;			}			else				err = RM_ERROR;						if (err != RM_ERROR) {				switch (options->connector) {				case DCCVideoConnector_DVI:					// HDMI: default to video mode from EDID					if ((options->standard == EMhwlibTVStandard_NTSC_M) && (options->edid_sel == DH_EDID_none)) {						options->edid_sel = DH_EDID_auto;						options->standard = EMhwlibTVStandard_HDMI_480p59;  // fallback standard					}					break;				case DCCVideoConnector_VGA:				case DCCVideoConnector_LVDS:				case DCCVideoConnector_Digital:					// LVDS/VGA: default to VGA resolution (640x480)					if (options->standard == EMhwlibTVStandard_NTSC_M) {						options->standard = EMhwlibTVStandard_VESA_640x480x60;  // fallback standard					}					break;				default:					break;				}				err = RM_OK;			}			i += 2;		}		else 			err = RM_ERROR;			}	else if (RMCompareAscii(argv[i], "-cs")) {		if (argc > i+1) {			err = parse_color_space(argv[i + 1], &(options->color_space));			if (options->color_space == EMhwlibColorSpace_None) err = RM_ERROR;			i += 2;		}		else			err = RM_ERROR;	}	else if (RMCompareAscii(argv[i], "-mcs")) {		if (argc > i+1) {			err = parse_color_space(argv[i + 1], &(options->mixer_color_space));			i += 2;		}		else			err = RM_ERROR;	}	else if (RMCompareAscii(argv[i], "-asp")) {		if (argc > i+2) { 			RMasciiToUInt32(argv[i+1], &(options->ar_x));			RMasciiToUInt32(argv[i+2], &(options->ar_y));			i += 3;			err = RM_OK;		}		else			err = RM_ERROR;			}	else if (RMCompareAscii(argv[i], "-afd")) {		if (argc > i+1) {			options->active_format_valid = TRUE;			if (RMCompareAscii(argv[i+1], "none")) {				options->active_format_valid = FALSE;			} else if (RMCompareAscii(argv[i+1], "full")) {				options->active_format = EMhwlibAF_same_as_picture;			} else if (RMCompareAscii(argv[i+1], "16x9top")) {				options->active_format = EMhwlibAF_16x9_top;			} else if (RMCompareAscii(argv[i+1], "14x9top")) {				options->active_format = EMhwlibAF_14x9_top;			} else if (RMCompareAscii(argv[i+1], "64x27")) {				options->active_format = EMhwlibAF_64x27_centered;			} else if (RMCompareAscii(argv[i+1], "4x3")) {				options->active_format = EMhwlibAF_4x3_centered;			} else if (RMCompareAscii(argv[i+1], "16x9")) {				options->active_format = EMhwlibAF_16x9_centered;			} else if (RMCompareAscii(argv[i+1], "14x9")) {				options->active_format = EMhwlibAF_14x9_centered;			} else if (RMCompareAscii(argv[i+1], "4x3_14x9")) {				options->active_format = EMhwlibAF_4x3_centered_prot_14x9;			} else if (RMCompareAscii(argv[i+1], "16x9_14x9")) {				options->active_format = EMhwlibAF_16x9_centered_prot_14x9;			} else if (RMCompareAscii(argv[i+1], "16x9_4x3")) {				options->active_format = EMhwlibAF_16x9_centered_prot_4x3;			} else {				err = RM_ERROR;			}			if (err != RM_ERROR)							err = RM_OK;			i += 2;		}		else 			err = RM_ERROR;	}	else if (RMCompareAscii(argv[i], "-zoom")) {		if (argc > i+4) {			RMuint32 x, y, w, h;			RMasciiToInt32(argv[i+1], (RMint32*)&x);			RMasciiToInt32(argv[i+2], (RMint32*)&y);			RMasciiToUInt32(argv[i+3], &w);			RMasciiToUInt32(argv[i+4], &h);			options->source_window.X =      (x >= 4096) ? (x - 4096) : x;			options->source_window.Y =      (y >= 4096) ? (y - 4096) : y;			options->source_window.Width =  (w >= 4096) ? (w - 4096) : w;			options->source_window.Height = (h >= 4096) ? (h - 4096) : h;			options->source_window.XPositionMode = EMhwlibDisplayWindowPositionMode_FrontEdgeToBorder;			options->source_window.YPositionMode = EMhwlibDisplayWindowPositionMode_FrontEdgeToBorder;			options->source_window.XMode =      (x >= 4096) ? EMhwlibDisplayWindowValueMode_Relative : EMhwlibDisplayWindowValueMode_Fixed;			options->source_window.YMode =      (y >= 4096) ? EMhwlibDisplayWindowValueMode_Relative : EMhwlibDisplayWindowValueMode_Fixed;			options->source_window.WidthMode =  (w >= 4096) ? EMhwlibDisplayWindowValueMode_Relative : EMhwlibDisplayWindowValueMode_Fixed;			options->source_window.HeightMode = (h >= 4096) ? EMhwlibDisplayWindowValueMode_Relative : EMhwlibDisplayWindowValueMode_Fixed;			i += 5;			err = RM_OK;		}		else 			err = RM_ERROR;	}	else if (RMCompareAscii(argv[i], "-window")) {		if (argc > i+4) {			RMasciiToInt32(argv[i+1], &(options->output_window.X));			RMasciiToInt32(argv[i+2], &(options->output_window.Y));			RMasciiToUInt32(argv[i+3], &(options->output_window.Width));			RMasciiToUInt32(argv[i+4], &(options->output_window.Height));			options->output_window.XPositionMode = EMhwlibDisplayWindowPositionMode_FrontEdgeToBorder;			options->output_window.YPositionMode = EMhwlibDisplayWindowPositionMode_FrontEdgeToBorder;			options->output_window.XMode = EMhwlibDisplayWindowValueMode_Fixed;			options->output_window.YMode = EMhwlibDisplayWindowValueMode_Fixed;			options->output_window.WidthMode = EMhwlibDisplayWindowValueMode_Fixed;			options->output_window.HeightMode = EMhwlibDisplayWindowValueMode_Fixed;			i += 5;			err = RM_OK;		}		else 			err = RM_ERROR;	}	else if (RMCompareAscii(argv[i], "-vscaler")) {		if (argc > i+1) {			err = RM_OK;			if(RMCompareAscii(argv[i+1], "mv") || RMCompareAscii(argv[i+1], "0")) {				options->video_scaler = 0;			}			else if(RMCompareAscii(argv[i+1], "vcr") || RMCompareAscii(argv[i+1], "1")) {				options->video_scaler = 1;			}			else if(RMCompareAscii(argv[i+1], "gfx") || RMCompareAscii(argv[i+1], "2")) {				options->video_scaler = 2;			}			else				err = RM_ERROR;			i += 2;		}		else			err = RM_ERROR;	}	else if (RMCompareAscii(argv[i], "-va") ){		if (argc> i+1) {			RMasciiToUInt32(argv[i+1], &options->video_alpha);			if (options->video_alpha > 0xFF)				err = RM_ERROR;			else {				i += 2;				err = RM_OK;			}		}		else			err = RM_ERROR;	}	else if (RMCompareAscii(argv[i], "-lock_scaler")) {		if (argc > i+1) {			err = RM_OK;			if(RMCompareAscii(argv[i+1], "osd")) {				options->lock_scaler = DispOSDScaler;			}			else if(RMCompareAscii(argv[i+1], "gfx")) {				options->lock_scaler = DispGFXMultiScaler;			}			else if(RMCompareAscii(argv[i+1], "vcr")) {				options->lock_scaler = DispVCRMultiScaler;			}			else if(RMCompareAscii(argv[i+1], "crt")) {				options->lock_scaler = DispCRTMultiScaler;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -