diff --git a/doc/html/documentation.html b/doc/html/documentation.html
index 6f70da81..8b2c4c30 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 76188c3a..41ddea0a 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 000710ff..c527c0d2 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 31263c85..be710582 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 5de3f9e7..07d3d7e9 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 21391706..08db0806 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 00b98dfc..42837652 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
|