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

📄 main.c

📁 wince下著名的视频播放器源码
💻 C
📖 第 1 页 / 共 5 页
字号:
		return false;	option_values.debug.disable_constant_subframes = false;	option_values.debug.disable_fixed_subframes = false;	option_values.debug.disable_verbatim_subframes = false;	return true;}int parse_options(int argc, char *argv[]){	int short_option;	int option_index = 1;	FLAC__bool had_error = false;	const char *short_opts = "0123456789ab:cdefFhHl:mMo:pP:q:r:sS:tT:vV";	while ((short_option = share__getopt_long(argc, argv, short_opts, long_options_, &option_index)) != -1) {		switch (short_option) {			case 0: /* long option with no equivalent short option */				had_error |= (parse_option(short_option, long_options_[option_index].name, share__optarg) != 0);				break;			case '?':			case ':':				had_error = true;				break;			default: /* short option */				had_error |= (parse_option(short_option, 0, share__optarg) != 0);				break;		}	}	if(had_error) {		return 1;	}	FLAC__ASSERT(share__optind <= argc);	option_values.num_files = argc - share__optind;	if(option_values.num_files > 0) {		unsigned i = 0;		if(0 == (option_values.filenames = (char**)malloc(sizeof(char*) * option_values.num_files)))			die("out of memory allocating space for file names list");		while(share__optind < argc)			option_values.filenames[i++] = local_strdup(argv[share__optind++]);	}	return 0;}int parse_option(int short_option, const char *long_option, const char *option_argument){	char *p;	if(short_option == 0) {		FLAC__ASSERT(0 != long_option);		if(0 == strcmp(long_option, "totally-silent")) {			flac__utils_verbosity_ = 0;		}		else if(0 == strcmp(long_option, "delete-input-file")) {			option_values.delete_input = true;		}		else if(0 == strcmp(long_option, "output-prefix")) {			FLAC__ASSERT(0 != option_argument);			option_values.output_prefix = option_argument;		}		else if(0 == strcmp(long_option, "skip")) {			FLAC__ASSERT(0 != option_argument);			option_values.skip_specification = option_argument;		}		else if(0 == strcmp(long_option, "until")) {			FLAC__ASSERT(0 != option_argument);			option_values.until_specification = option_argument;		}		else if(0 == strcmp(long_option, "input-size")) {			FLAC__ASSERT(0 != option_argument);			option_values.format_input_size = atol(option_argument);		}		else if(0 == strcmp(long_option, "cue")) {			FLAC__ASSERT(0 != option_argument);			option_values.cue_specification = option_argument;		}		else if(0 == strcmp(long_option, "apply-replaygain-which-is-not-lossless")) {			option_values.replaygain_synthesis_spec.apply = true;			if (0 != option_argument) {				char *p;				option_values.replaygain_synthesis_spec.limiter = RGSS_LIMIT__NONE;				option_values.replaygain_synthesis_spec.noise_shaping = NOISE_SHAPING_NONE;				option_values.replaygain_synthesis_spec.preamp = strtod(option_argument, &p);				for ( ; *p; p++) {					if (*p == 'a')						option_values.replaygain_synthesis_spec.use_album_gain = true;					else if (*p == 't')						option_values.replaygain_synthesis_spec.use_album_gain = false;					else if (*p == 'l')						option_values.replaygain_synthesis_spec.limiter = RGSS_LIMIT__PEAK;					else if (*p == 'L')						option_values.replaygain_synthesis_spec.limiter = RGSS_LIMIT__HARD;					else if (*p == 'n' && p[1] >= '0' && p[1] <= '3') {						option_values.replaygain_synthesis_spec.noise_shaping = p[1] - '0';						p++;					}					else						return usage_error("ERROR: bad specification string \"%s\" for --%s\n", option_argument, long_option);				}			}		}		else if(0 == strcmp(long_option, "cuesheet")) {			FLAC__ASSERT(0 != option_argument);			option_values.cuesheet_filename = option_argument;		}		else if(0 == strcmp(long_option, "no-cued-seekpoints")) {			option_values.cued_seekpoints = false;		}		else if(0 == strcmp(long_option, "super-secret-totally-impractical-compression-level")) {			option_values.lax = true;			option_values.do_exhaustive_model_search = true;			option_values.do_escape_coding = true;			option_values.do_mid_side = true;			option_values.loose_mid_side = false;			option_values.do_qlp_coeff_prec_search = true;			option_values.min_residual_partition_order = 0;			option_values.max_residual_partition_order = 16;			option_values.rice_parameter_search_dist = 0;			option_values.max_lpc_order = 32;		}		else if(0 == strcmp(long_option, "force-aiff-format")) {			option_values.force_aiff_format = true;		}		else if(0 == strcmp(long_option, "force-raw-format")) {			option_values.force_raw_format = true;		}		else if(0 == strcmp(long_option, "lax")) {			option_values.lax = true;		}		else if(0 == strcmp(long_option, "replay-gain")) {			option_values.replay_gain = true;		}		else if(0 == strcmp(long_option, "sector-align")) {			option_values.sector_align = true;		}#ifdef FLAC__HAS_OGG		else if(0 == strcmp(long_option, "ogg")) {			option_values.use_ogg = true;		}		else if(0 == strcmp(long_option, "serial-number")) {			option_values.has_serial_number = true;			option_values.serial_number = atol(option_argument);		}#endif		else if(0 == strcmp(long_option, "endian")) {			FLAC__ASSERT(0 != option_argument);			if(0 == strncmp(option_argument, "big", strlen(option_argument)))				option_values.format_is_big_endian = true;			else if(0 == strncmp(option_argument, "little", strlen(option_argument)))				option_values.format_is_big_endian = false;			else				return usage_error("ERROR: argument to --endian must be \"big\" or \"little\"\n");		}		else if(0 == strcmp(long_option, "channels")) {			FLAC__ASSERT(0 != option_argument);			option_values.format_channels = atoi(option_argument);		}		else if(0 == strcmp(long_option, "bps")) {			FLAC__ASSERT(0 != option_argument);			option_values.format_bps = atoi(option_argument);		}		else if(0 == strcmp(long_option, "sample-rate")) {			FLAC__ASSERT(0 != option_argument);			option_values.format_sample_rate = atoi(option_argument);		}		else if(0 == strcmp(long_option, "sign")) {			FLAC__ASSERT(0 != option_argument);			if(0 == strncmp(option_argument, "signed", strlen(option_argument)))				option_values.format_is_unsigned_samples = false;			else if(0 == strncmp(option_argument, "unsigned", strlen(option_argument)))				option_values.format_is_unsigned_samples = true;			else				return usage_error("ERROR: argument to --sign must be \"signed\" or \"unsigned\"\n");		}		else if(0 == strcmp(long_option, "residual-gnuplot")) {			option_values.aopts.do_residual_gnuplot = true;		}		else if(0 == strcmp(long_option, "residual-text")) {			option_values.aopts.do_residual_text = true;		}		/*		 * negatives		 */		else if(0 == strcmp(long_option, "no-decode-through-errors")) {			option_values.continue_through_decode_errors = false;		}		else if(0 == strcmp(long_option, "no-silent")) {			flac__utils_verbosity_ = 2;		}		else if(0 == strcmp(long_option, "no-force")) {			option_values.force_file_overwrite = false;		}		else if(0 == strcmp(long_option, "no-seektable")) {			option_values.num_requested_seek_points = 0;			option_values.requested_seek_points[0] = '\0';		}		else if(0 == strcmp(long_option, "no-delete-input-file")) {			option_values.delete_input = false;		}		else if(0 == strcmp(long_option, "no-replay-gain")) {			option_values.replay_gain = false;		}		else if(0 == strcmp(long_option, "no-sector-align")) {			option_values.sector_align = false;		}		else if(0 == strcmp(long_option, "no-lax")) {			option_values.lax = false;		}#ifdef FLAC__HAS_OGG		else if(0 == strcmp(long_option, "no-ogg")) {			option_values.use_ogg = false;		}#endif		else if(0 == strcmp(long_option, "no-exhaustive-model-search")) {			option_values.do_exhaustive_model_search = false;		}		else if(0 == strcmp(long_option, "no-mid-side")) {			option_values.do_mid_side = option_values.loose_mid_side = false;		}		else if(0 == strcmp(long_option, "no-adaptive-mid-side")) {			option_values.loose_mid_side = option_values.do_mid_side = false;		}		else if(0 == strcmp(long_option, "no-qlp-coeff-prec-search")) {			option_values.do_qlp_coeff_prec_search = false;		}		else if(0 == strcmp(long_option, "no-padding")) {			option_values.padding = -1;		}		else if(0 == strcmp(long_option, "no-verify")) {			option_values.verify = false;		}		else if(0 == strcmp(long_option, "no-residual-gnuplot")) {			option_values.aopts.do_residual_gnuplot = false;		}		else if(0 == strcmp(long_option, "no-residual-text")) {			option_values.aopts.do_residual_text = false;		}		else if(0 == strcmp(long_option, "disable-constant-subframes")) {			option_values.debug.disable_constant_subframes = true;		}		else if(0 == strcmp(long_option, "disable-fixed-subframes")) {			option_values.debug.disable_fixed_subframes = true;		}		else if(0 == strcmp(long_option, "disable-verbatim-subframes")) {			option_values.debug.disable_verbatim_subframes = true;		}	}	else {		const char *violation;		switch(short_option) {			case 'h':				option_values.show_help = true;				break;			case 'H':				option_values.show_explain = true;				break;			case 'v':				option_values.show_version = true;				break;			case 'd':				option_values.mode_decode = true;				break;			case 'a':				option_values.mode_decode = true;				option_values.analyze = true;				break;			case 't':				option_values.mode_decode = true;				option_values.test_only = true;				break;			case 'c':				option_values.force_to_stdout = true;				break;			case 's':				flac__utils_verbosity_ = 1;				break;			case 'f':				option_values.force_file_overwrite = true;				break;			case 'o':				FLAC__ASSERT(0 != option_argument);				option_values.cmdline_forced_outfilename = option_argument;				break;			case 'F':				option_values.continue_through_decode_errors = true;				break;			case 'T':				FLAC__ASSERT(0 != option_argument);				if(!flac__vorbiscomment_add(option_values.vorbis_comment, option_argument, &violation))					return usage_error("ERROR: (-T/--tag) %s\n", violation);

⌨️ 快捷键说明

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