mirror of https://github.com/xiph/flac
Remove --explain option from flac command line program (#721)
The `flac` command had 4 levels of documentation: short help, help, explain and manpage. The explain is removed in favour of referring to the much more comprehensive manpage
This commit is contained in:
parent
ce91056644
commit
192bf227ae
395
src/flac/main.c
395
src/flac/main.c
|
@ -69,7 +69,6 @@ static int usage_error(const char *message, ...);
|
||||||
static void short_usage(void);
|
static void short_usage(void);
|
||||||
static void show_version(void);
|
static void show_version(void);
|
||||||
static void show_help(void);
|
static void show_help(void);
|
||||||
static void show_explain(void);
|
|
||||||
static void format_mistake(const char *infilename, FileFormat wrong, FileFormat right);
|
static void format_mistake(const char *infilename, FileFormat wrong, FileFormat right);
|
||||||
|
|
||||||
static int encode_file(const char *infilename, FLAC__bool is_first_file, FLAC__bool is_last_file);
|
static int encode_file(const char *infilename, FLAC__bool is_first_file, FLAC__bool is_last_file);
|
||||||
|
@ -92,7 +91,6 @@ static struct share__option long_options_[] = {
|
||||||
* general options
|
* general options
|
||||||
*/
|
*/
|
||||||
{ "help" , share__no_argument, 0, 'h' },
|
{ "help" , share__no_argument, 0, 'h' },
|
||||||
{ "explain" , share__no_argument, 0, 'H' },
|
|
||||||
{ "version" , share__no_argument, 0, 'v' },
|
{ "version" , share__no_argument, 0, 'v' },
|
||||||
{ "decode" , share__no_argument, 0, 'd' },
|
{ "decode" , share__no_argument, 0, 'd' },
|
||||||
{ "analyze" , share__no_argument, 0, 'a' },
|
{ "analyze" , share__no_argument, 0, 'a' },
|
||||||
|
@ -227,7 +225,6 @@ static struct share__option long_options_[] = {
|
||||||
|
|
||||||
static struct {
|
static struct {
|
||||||
FLAC__bool show_help;
|
FLAC__bool show_help;
|
||||||
FLAC__bool show_explain;
|
|
||||||
FLAC__bool show_version;
|
FLAC__bool show_version;
|
||||||
FLAC__bool mode_decode;
|
FLAC__bool mode_decode;
|
||||||
FLAC__bool verify;
|
FLAC__bool verify;
|
||||||
|
@ -360,10 +357,6 @@ int do_it(void)
|
||||||
show_version();
|
show_version();
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
else if(option_values.show_explain) {
|
|
||||||
show_explain();
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
else if(option_values.show_help) {
|
else if(option_values.show_help) {
|
||||||
show_help();
|
show_help();
|
||||||
return 0;
|
return 0;
|
||||||
|
@ -551,7 +544,6 @@ int do_it(void)
|
||||||
FLAC__bool init_options(void)
|
FLAC__bool init_options(void)
|
||||||
{
|
{
|
||||||
option_values.show_help = false;
|
option_values.show_help = false;
|
||||||
option_values.show_explain = false;
|
|
||||||
option_values.show_version = false;
|
option_values.show_version = false;
|
||||||
option_values.mode_decode = false;
|
option_values.mode_decode = false;
|
||||||
option_values.verify = false;
|
option_values.verify = false;
|
||||||
|
@ -631,7 +623,7 @@ int parse_options(int argc, char *argv[])
|
||||||
int short_option;
|
int short_option;
|
||||||
int option_index = 1;
|
int option_index = 1;
|
||||||
FLAC__bool had_error = false;
|
FLAC__bool had_error = false;
|
||||||
const char *short_opts = "0123456789aA:b:cdefFhHj:l:mMo:pP:q:r:sS:tT:vVw";
|
const char *short_opts = "0123456789aA:b:cdefFhj:l:mMo:pP:q:r:sS:tT:vVw";
|
||||||
|
|
||||||
while ((short_option = share__getopt_long(argc, argv, short_opts, long_options_, &option_index)) != -1) {
|
while ((short_option = share__getopt_long(argc, argv, short_opts, long_options_, &option_index)) != -1) {
|
||||||
switch (short_option) {
|
switch (short_option) {
|
||||||
|
@ -949,9 +941,6 @@ int parse_option(int short_option, const char *long_option, const char *option_a
|
||||||
case 'h':
|
case 'h':
|
||||||
option_values.show_help = true;
|
option_values.show_help = true;
|
||||||
break;
|
break;
|
||||||
case 'H':
|
|
||||||
option_values.show_explain = true;
|
|
||||||
break;
|
|
||||||
case 'v':
|
case 'v':
|
||||||
option_values.show_version = true;
|
option_values.show_version = true;
|
||||||
break;
|
break;
|
||||||
|
@ -1249,20 +1238,16 @@ static void usage_summary(void)
|
||||||
printf(" Testing: flac -t [<general options>] [FLACFILE [...]]\n");
|
printf(" Testing: flac -t [<general options>] [FLACFILE [...]]\n");
|
||||||
printf("Analyzing: flac -a [<general/analysis options>] [FLACFILE [...]]\n");
|
printf("Analyzing: flac -a [<general/analysis options>] [FLACFILE [...]]\n");
|
||||||
printf("\n");
|
printf("\n");
|
||||||
printf("Be sure to read the list of known bugs at:\n");
|
|
||||||
printf("http://xiph.org/flac/documentation_bugs.html\n");
|
|
||||||
printf("\n");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void short_usage(void)
|
void short_usage(void)
|
||||||
{
|
{
|
||||||
usage_header();
|
usage_header();
|
||||||
printf("\n");
|
printf("\n");
|
||||||
printf("This is the short help; for all options use 'flac --help'; for even more\n");
|
printf("This is the short help; for all options use 'flac --help'; for more explanation\n");
|
||||||
printf("instructions use 'flac --explain'\n");
|
printf("and examples please consult the manual. This manual is often distributed\n");
|
||||||
printf("\n");
|
printf("alongside the program as a man page or an HTML file. It can also be found\n");
|
||||||
printf("Be sure to read the list of known bugs at:\n");
|
printf("online at https://xiph.org/flac/documentation_tools_flac.html\n");
|
||||||
printf("http://xiph.org/flac/documentation_bugs.html\n");
|
|
||||||
printf("\n");
|
printf("\n");
|
||||||
printf("To encode:\n");
|
printf("To encode:\n");
|
||||||
printf(" flac [-#] [INPUTFILE [...]]\n");
|
printf(" flac [-#] [INPUTFILE [...]]\n");
|
||||||
|
@ -1281,10 +1266,14 @@ void show_help(void)
|
||||||
usage_header();
|
usage_header();
|
||||||
usage_summary();
|
usage_summary();
|
||||||
printf("\n");
|
printf("\n");
|
||||||
|
printf("This help text summarizes all available options, for more explanation and\n");
|
||||||
|
printf("examples please consult the manual. This manual is often distributed\n");
|
||||||
|
printf("alongside the program as a man page or an HTML file. It can also be found\n");
|
||||||
|
printf("online at https://xiph.org/flac/documentation_tools_flac.html\n");
|
||||||
|
printf("\n");
|
||||||
printf("General options:\n");
|
printf("General options:\n");
|
||||||
printf(" -v, --version Show the flac version number\n");
|
printf(" -v, --version Show the flac version number\n");
|
||||||
printf(" -h, --help Show this screen\n");
|
printf(" -h, --help Show this screen\n");
|
||||||
printf(" -H, --explain Show detailed explanation of usage and options\n");
|
|
||||||
printf(" -d, --decode Decode (the default behavior is to encode)\n");
|
printf(" -d, --decode Decode (the default behavior is to encode)\n");
|
||||||
printf(" -t, --test As -d except no decoded file is written,\n");
|
printf(" -t, --test As -d except no decoded file is written,\n");
|
||||||
printf(" and with some additional checks.\n");
|
printf(" and with some additional checks.\n");
|
||||||
|
@ -1400,370 +1389,6 @@ void show_help(void)
|
||||||
printf(" --no-warnings-as-errors\n");
|
printf(" --no-warnings-as-errors\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
void show_explain(void)
|
|
||||||
{
|
|
||||||
usage_header();
|
|
||||||
usage_summary();
|
|
||||||
printf("For encoding:\n");
|
|
||||||
printf(" The input file(s) may be a PCM WAVE, Wave64, RF64 file, AIFF (or uncompressed\n");
|
|
||||||
printf(" AIFF-C) file, or raw samples. The output file(s) will be in native FLAC\n");
|
|
||||||
printf(" or Ogg FLAC format\n");
|
|
||||||
printf("For decoding, the reverse is true.\n");
|
|
||||||
printf("\n");
|
|
||||||
printf("A single INPUTFILE may be - for stdin. No INPUTFILE implies stdin. Use of\n");
|
|
||||||
printf("stdin implies -c (write to stdout). Normally you should use:\n");
|
|
||||||
printf(" flac [options] -o outfilename or flac -d [options] -o outfilename\n");
|
|
||||||
printf("instead of:\n");
|
|
||||||
printf(" flac [options] > outfilename or flac -d [options] > outfilename\n");
|
|
||||||
printf("since the former allows flac to seek backwards to write the STREAMINFO or\n");
|
|
||||||
printf("WAVE/AIFF header contents when necessary.\n");
|
|
||||||
printf("\n");
|
|
||||||
printf("general options:\n");
|
|
||||||
printf(" -v, --version Show the flac version number\n");
|
|
||||||
printf(" -h, --help Show basic usage a list of all options\n");
|
|
||||||
printf(" -H, --explain Show this screen\n");
|
|
||||||
printf(" -d, --decode Decode (the default behavior is to encode)\n");
|
|
||||||
printf(" -t, --test Same as -d except no decoded file is written,\n");
|
|
||||||
printf(" with some additional checks.\n");
|
|
||||||
printf(" -a, --analyze Same as -d except an analysis file is written\n");
|
|
||||||
printf(" -c, --stdout Write output to stdout\n");
|
|
||||||
printf(" -s, --silent Do not write runtime encode/decode statistics\n");
|
|
||||||
printf(" --totally-silent Do not print anything of any kind, including\n");
|
|
||||||
printf(" warnings or errors. The exit code will be the\n");
|
|
||||||
printf(" only way to determine successful completion.\n");
|
|
||||||
printf(" --no-utf8-convert Do not convert tags from local charset to UTF-8.\n");
|
|
||||||
printf(" This is useful for scripts, and setting tags in\n");
|
|
||||||
printf(" situations where the locale is wrong. This\n");
|
|
||||||
printf(" option must appear before any tag options!\n");
|
|
||||||
printf(" -w, --warnings-as-errors Treat all warnings as errors\n");
|
|
||||||
printf(" -f, --force Force overwriting of output files\n");
|
|
||||||
printf(" -o, --output-name=FILENAME Force the output file name; usually flac just\n");
|
|
||||||
printf(" changes the extension. May only be used when\n");
|
|
||||||
printf(" encoding a single file. May not be used in\n");
|
|
||||||
printf(" conjunction with --output-prefix.\n");
|
|
||||||
printf(" --output-prefix=STRING Prefix each output file name with the given\n");
|
|
||||||
printf(" STRING. This can be useful for encoding or\n");
|
|
||||||
printf(" decoding files to a different directory. Make\n");
|
|
||||||
printf(" sure if your STRING is a path name that it ends\n");
|
|
||||||
printf(" with a '/' slash.\n");
|
|
||||||
printf(" --delete-input-file Automatically delete the input file after a\n");
|
|
||||||
printf(" successful encode or decode. If there was an\n");
|
|
||||||
printf(" error (including a verify error) the input file\n");
|
|
||||||
printf(" is left intact.\n");
|
|
||||||
printf(" --preserve-modtime Output files have their timestamps/permissions\n");
|
|
||||||
printf(" set to match those of their inputs (this is\n");
|
|
||||||
printf(" default). Use --no-preserve-modtime to make\n");
|
|
||||||
printf(" output files have the current time and default\n");
|
|
||||||
printf(" permissions.\n");
|
|
||||||
printf(" --keep-foreign-metadata If encoding, save WAVE or AIFF non-audio chunks\n");
|
|
||||||
printf(" in FLAC metadata. If decoding, restore any saved\n");
|
|
||||||
printf(" non-audio chunks from FLAC metadata when writing\n");
|
|
||||||
printf(" the decoded file. Foreign metadata cannot be\n");
|
|
||||||
printf(" transcoded, e.g. WAVE chunks saved in a FLAC file\n");
|
|
||||||
printf(" cannot be restored when decoding to AIFF. Input\n");
|
|
||||||
printf(" and output must be regular files, not stdin/out.\n");
|
|
||||||
printf(" With this option, FLAC will pick the right\n");
|
|
||||||
printf(" output format on decoding.\n");
|
|
||||||
printf(" --keep-foreign-metadata-if-present As previous option, but do not throw\n");
|
|
||||||
printf(" an error in case no foreign metadata is found,\n");
|
|
||||||
printf(" the wrong kind of foreign metadata is found (on\n");
|
|
||||||
printf(" decoding) or if the foreign could not be parsed,\n");
|
|
||||||
printf(" i.e. all foreign metadata related errors are\n");
|
|
||||||
printf(" treated as warnings.\n");
|
|
||||||
printf(" --skip={#|mm:ss.ss} Skip the first # samples of each input file; can\n");
|
|
||||||
printf(" be used both for encoding and decoding. The\n");
|
|
||||||
printf(" alternative form mm:ss.ss can be used to specify\n");
|
|
||||||
printf(" minutes, seconds, and fractions of a second.\n");
|
|
||||||
printf(" --until={#|[+|-]mm:ss.ss} Stop at the given sample number for each input\n");
|
|
||||||
printf(" file. The given sample number is not included\n");
|
|
||||||
printf(" in the decoded output. The alternative form\n");
|
|
||||||
printf(" mm:ss.ss can be used to specify minutes,\n");
|
|
||||||
printf(" seconds, and fractions of a second. If a `+'\n");
|
|
||||||
printf(" sign is at the beginning, the --until point is\n");
|
|
||||||
printf(" relative to the --skip point. If a `-' sign is\n");
|
|
||||||
printf(" at the beginning, the --until point is relative\n");
|
|
||||||
printf(" to end of the audio.\n");
|
|
||||||
#if FLAC__HAS_OGG
|
|
||||||
printf(" --ogg When encoding, generate Ogg FLAC output instead\n");
|
|
||||||
printf(" of native FLAC. Ogg FLAC streams are FLAC\n");
|
|
||||||
printf(" streams wrapped in an Ogg transport layer. The\n");
|
|
||||||
printf(" resulting file should have an '.oga' extension\n");
|
|
||||||
printf(" and will still be decodable by flac. When\n");
|
|
||||||
printf(" decoding, force the input to be treated as\n");
|
|
||||||
printf(" Ogg FLAC. This is useful when piping input\n");
|
|
||||||
printf(" from stdin or when the filename does not end in\n");
|
|
||||||
printf(" '.oga' or '.ogg'.\n");
|
|
||||||
printf(" --serial-number Serial number to use for the FLAC stream. When\n");
|
|
||||||
printf(" encoding and no serial number is given, flac\n");
|
|
||||||
printf(" uses a random one. If encoding to multiple files\n");
|
|
||||||
printf(" the serial number is incremented for each file.\n");
|
|
||||||
printf(" When decoding and no number is given, flac uses\n");
|
|
||||||
printf(" the serial number of the first page.\n");
|
|
||||||
#endif
|
|
||||||
printf("analysis options:\n");
|
|
||||||
printf(" --residual-text Include residual signal in text output. This\n");
|
|
||||||
printf(" will make the file very big, much larger than\n");
|
|
||||||
printf(" even the decoded file.\n");
|
|
||||||
printf(" --residual-gnuplot Generate gnuplot files of residual distribution\n");
|
|
||||||
printf(" of each subframe\n");
|
|
||||||
printf("decoding options:\n");
|
|
||||||
printf(" -F, --decode-through-errors By default flac stops decoding with an error\n");
|
|
||||||
printf(" and removes the partially decoded file if it\n");
|
|
||||||
printf(" encounters a bitstream error. With -F, errors\n");
|
|
||||||
printf(" are still printed but flac will continue\n");
|
|
||||||
printf(" decoding to completion. Note that errors may\n");
|
|
||||||
printf(" cause the decoded audio to be missing some\n");
|
|
||||||
printf(" samples or have silent sections.\n");
|
|
||||||
printf(" --cue=[#.#][-[#.#]] Set the beginning and ending cuepoints to\n");
|
|
||||||
printf(" decode. The optional first #.# is the track and\n");
|
|
||||||
printf(" index point at which decoding will start; the\n");
|
|
||||||
printf(" default is the beginning of the stream. The\n");
|
|
||||||
printf(" optional second #.# is the track and index point\n");
|
|
||||||
printf(" at which decoding will end; the default is the\n");
|
|
||||||
printf(" end of the stream. If the cuepoint does not\n");
|
|
||||||
printf(" exist, the closest one before it (for the start\n");
|
|
||||||
printf(" point) or after it (for the end point) will be\n");
|
|
||||||
printf(" used. The cuepoints are merely translated into\n");
|
|
||||||
printf(" sample numbers then used as --skip and --until.\n");
|
|
||||||
printf(" A CD track can always be cued by, for example,\n");
|
|
||||||
printf(" --cue=9.1-10.1 for track 9, even if the CD has\n");
|
|
||||||
printf(" no 10th track.\n");
|
|
||||||
printf("encoding options:\n");
|
|
||||||
printf(" -V, --verify Verify a correct encoding by decoding the\n");
|
|
||||||
printf(" output in parallel and comparing to the\n");
|
|
||||||
printf(" original\n");
|
|
||||||
printf(" --lax Allow encoder to generate non-Subset files\n");
|
|
||||||
printf(" --ignore-chunk-sizes Ignore data chunk sizes in WAVE/AIFF files;\n");
|
|
||||||
printf(" useful when piping data from programs which\n");
|
|
||||||
printf(" generate bogus data chunk sizes.\n");
|
|
||||||
printf(" --replay-gain Calculate ReplayGain values and store them as\n");
|
|
||||||
printf(" FLAC tags. Title gains/peaks will be computed\n");
|
|
||||||
printf(" for each file, and an album gain/peak will be\n");
|
|
||||||
printf(" computed for all files. All input files must\n");
|
|
||||||
printf(" have the same resolution, sample rate, and\n");
|
|
||||||
printf(" number of channels. Only mono and stereo files\n");
|
|
||||||
printf(" are allowed, and the sample rate must be 8,\n");
|
|
||||||
printf(" 11.025, 12, 16, 18.9, 22.05, 24, 28, 32, 36,\n");
|
|
||||||
printf(" 37.8, 44.1, 48, 56, 64, 72, 75.6, 88.2, 96, 112,\n");
|
|
||||||
printf(" 128, 144, 151.2, 176.4, 192, 224, 256, 288,\n");
|
|
||||||
printf(" 302.4, 352.8, 384, 448, 512, 576, or 604.8 kHz.\n");
|
|
||||||
printf(" NOTE: this option may also leave a few extra\n");
|
|
||||||
printf(" bytes in the PADDING block.\n");
|
|
||||||
printf(" --cuesheet=FILENAME Import the given cuesheet file and store it in\n");
|
|
||||||
printf(" a CUESHEET metadata block. This option may only\n");
|
|
||||||
printf(" be used when encoding a single file. A\n");
|
|
||||||
printf(" seekpoint will be added for each index point in\n");
|
|
||||||
printf(" the cuesheet to the SEEKTABLE unless\n");
|
|
||||||
printf(" --no-cued-seekpoints is specified.\n");
|
|
||||||
printf(" --picture=SPECIFICATION Import a picture and store it in a PICTURE block.\n");
|
|
||||||
printf(" More than one --picture command can be specified.\n");
|
|
||||||
printf(" The SPECIFICATION can either be a simple filename\n");
|
|
||||||
printf(" for the picture file, or a complete specification\n");
|
|
||||||
printf(" whose parts are separated by | characters. Some\n");
|
|
||||||
printf(" parts may be left empty to invoke default values.\n");
|
|
||||||
printf(" Using a filename is shorthand for \"||||FILE\".\n");
|
|
||||||
printf(" The SPECIFICATION format is:\n");
|
|
||||||
printf(" [TYPE]|[MIME-TYPE]|[DESCRIPTION]|[WIDTHxHEIGHTxDEPTH[/COLORS]]|FILE\n");
|
|
||||||
printf(" TYPE is optional; it is a number from one of:\n");
|
|
||||||
printf(" 0: Other\n");
|
|
||||||
printf(" 1: 32x32 pixels 'file icon' (PNG only)\n");
|
|
||||||
printf(" 2: Other file icon\n");
|
|
||||||
printf(" 3: Cover (front)\n");
|
|
||||||
printf(" 4: Cover (back)\n");
|
|
||||||
printf(" 5: Leaflet page\n");
|
|
||||||
printf(" 6: Media (e.g. label side of CD)\n");
|
|
||||||
printf(" 7: Lead artist/lead performer/soloist\n");
|
|
||||||
printf(" 8: Artist/performer\n");
|
|
||||||
printf(" 9: Conductor\n");
|
|
||||||
printf(" 10: Band/Orchestra\n");
|
|
||||||
printf(" 11: Composer\n");
|
|
||||||
printf(" 12: Lyricist/text writer\n");
|
|
||||||
printf(" 13: Recording Location\n");
|
|
||||||
printf(" 14: During recording\n");
|
|
||||||
printf(" 15: During performance\n");
|
|
||||||
printf(" 16: Movie/video screen capture\n");
|
|
||||||
printf(" 17: A bright coloured fish\n");
|
|
||||||
printf(" 18: Illustration\n");
|
|
||||||
printf(" 19: Band/artist logotype\n");
|
|
||||||
printf(" 20: Publisher/Studio logotype\n");
|
|
||||||
printf(" The default is 3 (front cover). There may only be one picture each\n");
|
|
||||||
printf(" of type 1 and 2 in a file.\n");
|
|
||||||
printf(" MIME-TYPE is optional; if left blank, it will be detected from the\n");
|
|
||||||
printf(" file. For best compatibility with players, use pictures with MIME\n");
|
|
||||||
printf(" type image/jpeg or image/png. The MIME type can also be --> to\n");
|
|
||||||
printf(" mean that FILE is actually a URL to an image, though this use is\n");
|
|
||||||
printf(" discouraged.\n");
|
|
||||||
printf(" DESCRIPTION is optional; the default is an empty string\n");
|
|
||||||
printf(" The next part specifies the resolution and color information. If\n");
|
|
||||||
printf(" the MIME-TYPE is image/jpeg, image/png, or image/gif, you can\n");
|
|
||||||
printf(" usually leave this empty and they can be detected from the file.\n");
|
|
||||||
printf(" Otherwise, you must specify the width in pixels, height in pixels,\n");
|
|
||||||
printf(" and color depth in bits-per-pixel. If the image has indexed colors\n");
|
|
||||||
printf(" you should also specify the number of colors used.\n");
|
|
||||||
printf(" FILE is the path to the picture file to be imported, or the URL if\n");
|
|
||||||
printf(" MIME type is -->\n");
|
|
||||||
printf(" -T, --tag=FIELD=VALUE Add a FLAC tag. Make sure to quote the\n");
|
|
||||||
printf(" comment if necessary. This option may appear\n");
|
|
||||||
printf(" more than once to add several comments. NOTE:\n");
|
|
||||||
printf(" all tags will be added to all encoded files.\n");
|
|
||||||
printf(" --tag-from-file=FIELD=FILENAME Like --tag, except FILENAME is a file\n");
|
|
||||||
printf(" whose contents will be read verbatim to set the\n");
|
|
||||||
printf(" tag value. The contents will be converted to\n");
|
|
||||||
printf(" UTF-8 from the local charset. This can be used\n");
|
|
||||||
printf(" to store a cuesheet in a tag (e.g.\n");
|
|
||||||
printf(" --tag-from-file=\"CUESHEET=image.cue\"). Do not\n");
|
|
||||||
printf(" try to store binary data in tag fields! Use\n");
|
|
||||||
printf(" APPLICATION blocks for that.\n");
|
|
||||||
printf(" -S, --seekpoint={#|X|#x|#s} Include a point or points in a SEEKTABLE\n");
|
|
||||||
printf(" # : a specific sample number for a seek point\n");
|
|
||||||
printf(" X : a placeholder point (always goes at the end of the SEEKTABLE)\n");
|
|
||||||
printf(" #x : # evenly spaced seekpoints, the first being at sample 0\n");
|
|
||||||
printf(" #s : a seekpoint every # seconds; # does not have to be a whole number\n");
|
|
||||||
printf(" You may use many -S options; the resulting SEEKTABLE will be the unique-\n");
|
|
||||||
printf(" ified union of all such values.\n");
|
|
||||||
printf(" With no -S options, flac defaults to '-S 10s'. Use -S- for no SEEKTABLE.\n");
|
|
||||||
printf(" Note: -S #x and -S #s will not work if the encoder can't determine the\n");
|
|
||||||
printf(" input size before starting.\n");
|
|
||||||
printf(" Note: if you use -S # and # is >= samples in the input, there will be\n");
|
|
||||||
printf(" either no seek point entered (if the input size is determinable\n");
|
|
||||||
printf(" before encoding starts) or a placeholder point (if input size is not\n");
|
|
||||||
printf(" determinable)\n");
|
|
||||||
printf(" -P, --padding=# Tell the encoder to write a PADDING metadata\n");
|
|
||||||
printf(" block of the given length (in bytes) after the\n");
|
|
||||||
printf(" STREAMINFO block. This is useful if you plan\n");
|
|
||||||
printf(" to tag the file later with an APPLICATION\n");
|
|
||||||
printf(" block; instead of having to rewrite the entire\n");
|
|
||||||
printf(" file later just to insert your block, you can\n");
|
|
||||||
printf(" write directly over the PADDING block. Note\n");
|
|
||||||
printf(" that the total length of the PADDING block will\n");
|
|
||||||
printf(" be 4 bytes longer than the length given because\n");
|
|
||||||
printf(" of the 4 metadata block header bytes. You can\n");
|
|
||||||
printf(" force no PADDING block at all to be written with\n");
|
|
||||||
printf(" --no-padding. The encoder writes a PADDING\n");
|
|
||||||
printf(" block of 8192 bytes by default, or 65536 bytes\n");
|
|
||||||
printf(" if the input audio is more than 20 minutes long.\n");
|
|
||||||
printf(" -b, --blocksize=# Specify the blocksize in samples; the default is\n");
|
|
||||||
printf(" 1152 for -l 0, else 4096; for subset streams this\n");
|
|
||||||
printf(" must be <= 4608 if the samplerate <= 48kHz,\n");
|
|
||||||
printf(" for subset streams with a higher samplerates it\n");
|
|
||||||
printf(" must be <= 16384.\n");
|
|
||||||
printf(" -0, --compression-level-0, --fast Synonymous with -l 0 -b 1152 -r 3\n");
|
|
||||||
printf(" --no-mid-side\n");
|
|
||||||
printf(" -1, --compression-level-1 Synonymous with -l 0 -b 1152 -M -r 3\n");
|
|
||||||
printf(" -2, --compression-level-2 Synonymous with -l 0 -b 1152 -m -r 3\n");
|
|
||||||
printf(" -3, --compression-level-3 Synonymous with -l 6 -b 4096 -r 4\n");
|
|
||||||
printf(" --no-mid-side\n");
|
|
||||||
printf(" -4, --compression-level-4 Synonymous with -l 8 -b 4096 -M -r 4\n");
|
|
||||||
printf(" -5, --compression-level-5 Synonymous with -l 8 -b 4096 -m -r 5\n");
|
|
||||||
printf(" -5 is the default setting\n");
|
|
||||||
printf(" -6, --compression-level-6 Synonymous with -l 8 -b 4096 -m -r 6\n");
|
|
||||||
printf(" -A subdivide_tukey(2)\n");
|
|
||||||
printf(" -7, --compression-level-7 Synonymous with -l 12 -b 4096 -m -r 6\n");
|
|
||||||
printf(" -A subdivide_tukey(2)\n");
|
|
||||||
printf(" -8, --compression-level-8, --best Synonymous with -l 12 -b 4096 -m -r 6\n");
|
|
||||||
printf(" -A subdivide_tukey(3)\n");
|
|
||||||
printf(" -m, --mid-side Try mid-side coding for each frame\n");
|
|
||||||
printf(" (stereo only)\n");
|
|
||||||
printf(" -M, --adaptive-mid-side Adaptive mid-side coding for all frames\n");
|
|
||||||
printf(" (stereo only)\n");
|
|
||||||
printf(" -e, --exhaustive-model-search Do exhaustive model search (expensive!)\n");
|
|
||||||
printf(" -A, --apodization=\"function\" Window audio data with given the function.\n");
|
|
||||||
printf(" The functions are: bartlett, bartlett_hann,\n");
|
|
||||||
printf(" blackman, blackman_harris_4term_92db,\n");
|
|
||||||
printf(" connes, flattop, gauss(STDDEV), hamming,\n");
|
|
||||||
printf(" hann, kaiser_bessel, nuttall, rectangle,\n");
|
|
||||||
printf(" triangle, tukey(P), welch, partial_tukey(n)\n");
|
|
||||||
printf(" punchout_tukey(n) and subdivide_tukey(n).\n");
|
|
||||||
printf(" More than one may be specified but encoding\n");
|
|
||||||
printf(" time is a multiple of the number of\n");
|
|
||||||
printf(" functions since they are each tried in \n");
|
|
||||||
printf(" turn. The encoder chooses suitable\n");
|
|
||||||
printf(" defaults in the absence of any -A options.\n");
|
|
||||||
printf(" -l, --max-lpc-order=# Max LPC order; 0 => only fixed predictors.\n");
|
|
||||||
printf(" Must be <= 12 for Subset streams if sample\n");
|
|
||||||
printf(" rate is <=48kHz.\n");
|
|
||||||
printf(" -p, --qlp-coeff-precision-search Do exhaustive search of LP coefficient\n");
|
|
||||||
printf(" quantization (expensive!); overrides -q;\n");
|
|
||||||
printf(" does nothing if using -l 0\n");
|
|
||||||
printf(" -q, --qlp-coeff-precision=# Specify precision in bits of quantized\n");
|
|
||||||
printf(" linear-predictor coefficients; 0 => let\n");
|
|
||||||
printf(" encoder decide (the minimum is %u, the\n", FLAC__MIN_QLP_COEFF_PRECISION);
|
|
||||||
printf(" default is -q 0)\n");
|
|
||||||
printf(" -r, --rice-partition-order=[#,]# Set [min,]max residual partition order\n");
|
|
||||||
printf(" (# is 0 to 15 inclusive; min defaults to 0;\n");
|
|
||||||
printf(" the default is -r 0; above 4 does not\n");
|
|
||||||
printf(" usually help much)\n");
|
|
||||||
printf(" --limit-min-bitrate Limit minimum bitrate by not allowing\n");
|
|
||||||
printf(" frames consisting of only constant\n");
|
|
||||||
printf(" subframes. This ensures a bitrate of at\n");
|
|
||||||
printf(" least 1 bit/sample, for example 48kbit/s\n");
|
|
||||||
printf(" for 48kHz input. This is mostly beneficial\n");
|
|
||||||
printf(" for internet streaming.\n");
|
|
||||||
printf(" -j, --threads=# Set the number of encoding threads.\n");
|
|
||||||
printf("format options:\n");
|
|
||||||
printf(" --force-raw-format Force input (when encoding) or output (when\n");
|
|
||||||
printf(" decoding) to be treated as raw samples\n");
|
|
||||||
printf(" --force-aiff-format\n");
|
|
||||||
printf(" --force-rf64-format\n");
|
|
||||||
printf(" --force-wave64-format\n");
|
|
||||||
printf(" Force the decoder to output AIFF/RF64/WAVE64 format respectively.\n");
|
|
||||||
printf(" This option is not needed if the output filename (as set by -o)\n");
|
|
||||||
printf(" ends with *.aif* or *.aiff*, *.rf64* and *.w64* respectively. Also,\n");
|
|
||||||
printf(" this option has no effect when encoding since input is\n");
|
|
||||||
printf(" auto-detected. When none of these options nor\n");
|
|
||||||
printf(" --keep-foreign-metadata are given and no output filename is set,\n");
|
|
||||||
printf(" the output format is WAV by default.\n");
|
|
||||||
printf(" --force-legacy-wave-format\n");
|
|
||||||
printf(" --force-extensible-wave-format\n");
|
|
||||||
printf(" Instruct the decoder to output a WAVE file with WAVE_FORMAT_PCM and\n");
|
|
||||||
printf(" WAVE_FORMAT_EXTENSIBLE respectively. If none of these options nor\n");
|
|
||||||
printf(" --keep-foreign-metadata are given, FLAC outputs WAVE_FORMAT_PCM\n");
|
|
||||||
printf(" for mono or stereo with a bit depth of 8 or 16 bits, and\n");
|
|
||||||
printf(" WAVE_FORMAT_EXTENSIBLE for all other audio formats.\n");
|
|
||||||
printf(" --force-aiff-c-none-format\n");
|
|
||||||
printf(" --force-aiff-c-sowt-format\n");
|
|
||||||
printf(" Instruct the decoder to output an AIFF-C file with format NONE and\n");
|
|
||||||
printf(" sowt respectively.\n");
|
|
||||||
printf("raw format options:\n");
|
|
||||||
printf(" --endian={big|little} Set byte order for samples\n");
|
|
||||||
printf(" --channels=# Number of channels\n");
|
|
||||||
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(" --input-size=# Size of the raw input in bytes. If you are\n");
|
|
||||||
printf(" encoding raw samples from stdin, you must set\n");
|
|
||||||
printf(" this option in order to be able to use --skip,\n");
|
|
||||||
printf(" --until, --cuesheet, or other options that need\n");
|
|
||||||
printf(" to know the size of the input beforehand. If\n");
|
|
||||||
printf(" the size given is greater than what is found in\n");
|
|
||||||
printf(" the input stream, the encoder will complain\n");
|
|
||||||
printf(" about an unexpected end-of-file. If the size\n");
|
|
||||||
printf(" given is less, samples will be truncated.\n");
|
|
||||||
printf("negative options:\n");
|
|
||||||
printf(" --no-adaptive-mid-side\n");
|
|
||||||
printf(" --no-cued-seekpoints\n");
|
|
||||||
printf(" --no-decode-through-errors\n");
|
|
||||||
printf(" --no-delete-input-file\n");
|
|
||||||
printf(" --no-preserve-modtime\n");
|
|
||||||
printf(" --no-keep-foreign-metadata\n");
|
|
||||||
printf(" --no-exhaustive-model-search\n");
|
|
||||||
printf(" --no-lax\n");
|
|
||||||
printf(" --no-mid-side\n");
|
|
||||||
#if FLAC__HAS_OGG
|
|
||||||
printf(" --no-ogg\n");
|
|
||||||
#endif
|
|
||||||
printf(" --no-padding\n");
|
|
||||||
printf(" --no-qlp-coeff-prec-search\n");
|
|
||||||
printf(" --no-residual-gnuplot\n");
|
|
||||||
printf(" --no-residual-text\n");
|
|
||||||
printf(" --no-ignore-chunk-sizes\n");
|
|
||||||
printf(" --no-seektable\n");
|
|
||||||
printf(" --no-silent\n");
|
|
||||||
printf(" --no-force\n");
|
|
||||||
printf(" --no-verify\n");
|
|
||||||
printf(" --no-warnings-as-errors\n");
|
|
||||||
}
|
|
||||||
|
|
||||||
void format_mistake(const char *infilename, FileFormat wrong, FileFormat right)
|
void format_mistake(const char *infilename, FileFormat wrong, FileFormat right)
|
||||||
{
|
{
|
||||||
/* WATCHOUT: indexed by FileFormat */
|
/* WATCHOUT: indexed by FileFormat */
|
||||||
|
|
Loading…
Reference in New Issue