From: Josh Coalson Date: Tue, 20 Aug 2002 20:37:26 +0000 (+0000) Subject: fix various little bugs related to format options X-Git-Tag: 1.2.0~1616 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=eb20903946a4f278884a6cb47869487788910dc8;p=platform%2Fupstream%2Fflac.git fix various little bugs related to format options --- diff --git a/doc/html/documentation.html b/doc/html/documentation.html index 6f70da8..8b2c4c3 100644 --- a/doc/html/documentation.html +++ b/doc/html/documentation.html @@ -717,7 +717,7 @@ - --force-raw-input + --force-raw-format Treat the input file (or output file if decoding) as a raw file, regardless of the extension. diff --git a/man/flac.1 b/man/flac.1 index 76188c3..41ddea0 100644 --- a/man/flac.1 +++ b/man/flac.1 @@ -3,7 +3,7 @@ .\" .\" Please send any bug reports, improvements, comments, patches, .\" etc. to Steve Cheng . -.TH "FLAC" "1" "19 August 2002" "" "" +.TH "FLAC" "1" "20 August 2002" "" "" .SH NAME flac \- Free Lossless Audio Codec .SH SYNOPSIS @@ -255,8 +255,9 @@ Set sample rate (in Hz). \fB--sign={\fIsigned\fB|\fIunsigned\fB}\fR Set the sign of samples (the default is signed). .TP -\fB--force-raw-input\fR -Force input to be treated as raw samples (even if filename ends +\fB--force-raw-format\fR +Force input (when encoding) or output (when decoding) +to be treated as raw samples (even if filename ends in \fI.wav\fR). .SS "NEGATIVE OPTIONS" .TP diff --git a/man/flac.sgml b/man/flac.sgml index 000710f..c527c0d 100644 --- a/man/flac.sgml +++ b/man/flac.sgml @@ -4,7 +4,7 @@ Matt"> Zimmerman"> - August 19, 2002"> + August 20, 2002"> 1"> @@ -572,10 +572,11 @@ - + - Force input to be treated as raw samples (even if filename ends + Force input (when encoding) or output (when decoding) + to be treated as raw samples (even if filename ends in .wav). diff --git a/src/flac/main.c b/src/flac/main.c index 31263c8..be71058 100644 --- a/src/flac/main.c +++ b/src/flac/main.c @@ -107,7 +107,7 @@ static struct FLAC__share__option long_options_[] = { { "fast", 0, 0, '0' }, { "super-secret-impractical-compression-level", 0, 0, 0 }, { "verify", 0, 0, 'V' }, - { "force-raw-input", 0, 0, 0 }, + { "force-raw-format", 0, 0, 0 }, { "lax", 0, 0, 0 }, { "sector-align", 0, 0, 0 }, { "seekpoint", 1, 0, 'S' }, @@ -314,6 +314,20 @@ int do_it() if(!FLAC__format_sample_rate_is_valid(option_values.format_sample_rate)) return usage_error("ERROR: invalid sample rate '%u', must be > 0 and <= %u\n", option_values.format_sample_rate, FLAC__MAX_SAMPLE_RATE); } + if(option_values.mode_decode) { + if(!option_values.force_raw_format) { + if(option_values.format_is_big_endian >= 0) + return usage_error("ERROR: --endian only allowed with --force-raw-format\n"); + if(option_values.format_is_unsigned_samples >= 0) + return usage_error("ERROR: --sign only allowed with --force-raw-format\n"); + } + if(option_values.format_channels >= 0) + return usage_error("ERROR: --channels not allowed with --decode\n"); + if(option_values.format_bps >= 0) + return usage_error("ERROR: --bps not allowed with --decode\n"); + if(option_values.format_sample_rate >= 0) + return usage_error("ERROR: --sample-rate not allowed with --decode\n"); + } if(!option_values.mode_decode && ((unsigned)option_values.blocksize < FLAC__MIN_BLOCK_SIZE || (unsigned)option_values.blocksize > FLAC__MAX_BLOCK_SIZE)) { return usage_error("ERROR: invalid blocksize '%u', must be >= %u and <= %u\n", (unsigned)option_values.blocksize, FLAC__MIN_BLOCK_SIZE, FLAC__MAX_BLOCK_SIZE); } @@ -449,7 +463,7 @@ void init_options() option_values.qlp_coeff_precision = 0; option_values.skip = 0; option_values.format_is_big_endian = -1; - option_values.format_is_unsigned_samples = false; + option_values.format_is_unsigned_samples = -1; option_values.format_channels = -1; option_values.format_bps = -1; option_values.format_sample_rate = -1; @@ -534,7 +548,7 @@ int parse_option(int short_option, const char *long_option, const char *option_a option_values.rice_parameter_search_dist = 0; option_values.max_lpc_order = 32; } - else if(0 == strcmp(long_option, "force-raw-input")) { + else if(0 == strcmp(long_option, "force-raw-format")) { option_values.force_raw_format = true; } else if(0 == strcmp(long_option, "lax")) { @@ -984,7 +998,7 @@ void show_help() printf(" --bps=# Number of bits per sample\n"); printf(" --sample-rate=# Sample rate in Hz\n"); printf(" --sign={signed|unsigned} Sign of samples\n"); - printf(" --force-raw-input Force input to be treated as raw samples\n"); + printf(" --force-raw-format Treat input or output as raw samples\n"); printf("negative options:\n"); printf(" --no-adaptive-mid-side\n"); printf(" --no-decode-through-errors\n"); @@ -1164,7 +1178,8 @@ void show_explain() printf(" --bps=# Number of bits per sample\n"); printf(" --sample-rate=# Sample rate in Hz\n"); printf(" --sign={signed|unsigned} Sign of samples (the default is signed)\n"); - printf(" --force-raw-input Force input to be treated as raw samples\n"); + printf(" --force-raw-format Force input (when encoding) or output (when\n"); + printf(" decoding) to be treated as raw samples\n"); printf("negative options:\n"); printf(" --no-adaptive-mid-side\n"); printf(" --no-decode-through-errors\n"); @@ -1253,8 +1268,8 @@ int encode_file(const char *infilename, const char *forced_outfilename, FLAC__bo } if(fmt == RAW) { - if(option_values.format_is_big_endian < 0 || option_values.format_channels < 0 || option_values.format_bps < 0 || option_values.format_sample_rate < 0) - return usage_error("ERROR: for encoding a raw file you must specify a value for --endian, --channels, --bps, and --sample-rate\n"); + if(option_values.format_is_big_endian < 0 || option_values.format_is_unsigned_samples < 0 || option_values.format_channels < 0 || option_values.format_bps < 0 || option_values.format_sample_rate < 0) + return usage_error("ERROR: for encoding a raw file you must specify a value for --endian, --sign, --channels, --bps, and --sample-rate\n"); } if(encode_infile == stdin || option_values.force_to_stdout) @@ -1348,8 +1363,8 @@ int decode_file(const char *infilename, const char *forced_outfilename) decode_options_t common_options; if(!option_values.test_only && !option_values.analyze) { - if(option_values.force_raw_format && option_values.format_is_big_endian < 0) - return usage_error("ERROR: for decoding to a raw file you must specify a value for --endian\n"); + if(option_values.force_raw_format && (option_values.format_is_big_endian < 0 || option_values.format_is_unsigned_samples < 0)) + return usage_error("ERROR: for decoding to a raw file you must specify a value for --endian and --sign\n"); } if(0 == strcmp(infilename, "-") || option_values.force_to_stdout) diff --git a/test/test_bins.sh b/test/test_bins.sh index 5de3f9e..07d3d7e 100755 --- a/test/test_bins.sh +++ b/test/test_bins.sh @@ -32,7 +32,7 @@ test_file () encode_options="$4" echo -n "$name: encode..." - cmd="flac --verify --silent --force-raw-input --endian=big --sample-rate=44100 --bps=$bps --channels=$channels $encode_options $name.bin" + cmd="flac --verify --silent --force-raw-format --endian=big --sign=signed --sample-rate=44100 --bps=$bps --channels=$channels $encode_options $name.bin" echo "### ENCODE $name #######################################################" >> ./streams.log echo "### cmd=$cmd" >> ./streams.log if $cmd 2>>./streams.log ; then : ; else @@ -40,7 +40,7 @@ test_file () exit 1 fi echo -n "decode..." - cmd="flac --silent --endian=big --decode --force-raw-input $name.flac"; + cmd="flac --silent --endian=big --decode --force-raw-format $name.flac"; echo "### DECODE $name #######################################################" >> ./streams.log echo "### cmd=$cmd" >> ./streams.log if $cmd 2>>./streams.log ; then : ; else diff --git a/test/test_metaflac.sh b/test/test_metaflac.sh index 2139170..08db080 100755 --- a/test/test_metaflac.sh +++ b/test/test_metaflac.sh @@ -30,7 +30,7 @@ metaflac --help 1>/dev/null 2>/dev/null || (echo "ERROR can't find metaflac exec if [ $? != 0 ] ; then exit 1 ; fi echo "Generating stream..." -if flac --verify -0 --output-name=$flacfile --force-raw-input --endian=big --channels=1 --bps=8 --sample-rate=44100 /bin/sh ; then +if flac --verify -0 --output-name=$flacfile --force-raw-format --endian=big --sign=signed --channels=1 --bps=8 --sample-rate=44100 /bin/sh ; then chmod +w $flacfile else echo "ERROR during generation" 1>&2 diff --git a/test/test_streams.sh b/test/test_streams.sh index 00b98df..4283765 100755 --- a/test/test_streams.sh +++ b/test/test_streams.sh @@ -43,7 +43,7 @@ fi # multi-file tests # echo "Generating multiple input files from noise..." -if flac --verify --silent --force-raw-input --endian=big --sample-rate=44100 --bps=16 --channels=2 noise.raw ; then : ; else +if flac --verify --silent --force-raw-format --endian=big --sign=signed --sample-rate=44100 --bps=16 --channels=2 noise.raw ; then : ; else echo "ERROR generating FLAC file" 1>&2 exit 1 fi @@ -135,7 +135,7 @@ test_file () encode_options="$4" echo -n "$name: encode..." - cmd="flac --verify --silent --force-raw-input --endian=big --sample-rate=44100 --bps=$bps --channels=$channels $encode_options $name.raw" + cmd="flac --verify --silent --force-raw-format --endian=big --sign=signed --sample-rate=44100 --bps=$bps --channels=$channels $encode_options $name.raw" echo "### ENCODE $name #######################################################" >> ./streams.log echo "### cmd=$cmd" >> ./streams.log if $cmd 2>>./streams.log ; then : ; else @@ -143,7 +143,7 @@ test_file () exit 1 fi echo -n "decode..." - cmd="flac --silent --endian=big --decode --force-raw-input --output-name=$name.cmp $name.flac" + cmd="flac --silent --endian=big --decode --force-raw-format --output-name=$name.cmp $name.flac" echo "### DECODE $name #######################################################" >> ./streams.log echo "### cmd=$cmd" >> ./streams.log if $cmd 2>>./streams.log ; then : ; else @@ -176,7 +176,7 @@ test_file_piped () echo -n "$name: encode via pipes..." if [ $is_win = yes ] ; then - cmd="flac --verify --silent --force-raw-input --endian=big --sample-rate=44100 --bps=$bps --channels=$channels $encode_options --stdout $name.raw" + cmd="flac --verify --silent --force-raw-format --endian=big --sign=signed --sample-rate=44100 --bps=$bps --channels=$channels $encode_options --stdout $name.raw" echo "### ENCODE $name #######################################################" >> ./streams.log echo "### cmd=$cmd" >> ./streams.log if $cmd 1>$name.flac 2>>./streams.log ; then : ; else @@ -184,7 +184,7 @@ test_file_piped () exit 1 fi else - cmd="flac --verify --silent --force-raw-input --endian=big --sample-rate=44100 --bps=$bps --channels=$channels $encode_options --stdout -" + cmd="flac --verify --silent --force-raw-format --endian=big --sign=signed --sample-rate=44100 --bps=$bps --channels=$channels $encode_options --stdout -" echo "### ENCODE $name #######################################################" >> ./streams.log echo "### cmd=$cmd" >> ./streams.log if cat $name.raw | $cmd 1>$name.flac 2>>./streams.log ; then : ; else @@ -194,7 +194,7 @@ test_file_piped () fi echo -n "decode via pipes..." if [ $is_win = yes ] ; then - cmd="flac --silent --endian=big --decode --force-raw-input --stdout $name.flac" + cmd="flac --silent --endian=big --decode --force-raw-format --stdout $name.flac" echo "### DECODE $name #######################################################" >> ./streams.log echo "### cmd=$cmd" >> ./streams.log if $cmd 1>$name.cmp 2>>./streams.log ; then : ; else @@ -202,7 +202,7 @@ test_file_piped () exit 1 fi else - cmd="flac --silent --endian=big --decode --force-raw-input --stdout -" + cmd="flac --silent --endian=big --decode --force-raw-format --stdout -" echo "### DECODE $name #######################################################" >> ./streams.log echo "### cmd=$cmd" >> ./streams.log if cat $name.flac | $cmd 1>$name.cmp 2>>./streams.log ; then : ; else