flac now supports FLAC as input to the encoder (i.e. can re-encode FLAC to FLAC) and preserve all the metadata like tags, etc.
-
New PICTURE metadata block for storing things like cover art, new --picture option to flac and --import-picture option to metaflac for importing pictures, new --export-picture-to option to metaflac for exporting pictures, and metadata API additions for searching for suitable pictures based on type, size and color constraints.
+
New PICTURE metadata block for storing things like cover art, new --picture option to flac and --import-picture-from option to metaflac for importing pictures, new --export-picture-to option to metaflac for exporting pictures, and metadata API additions for searching for suitable pictures based on type, size and color constraints.
Support for new REPLAYGAIN_REFERENCE_LOUDNESS tag.
In the developer libraries, the interface has been simplfied by merging the three decoding layers into a single class; ditto for the encoders. Also, libOggFLAC has been merged into libFLAC and libOggFLAC++ has been merged into libFLAC++ so there is a single API supporting both native FLAC and Ogg FLAC.
@@ -78,7 +78,7 @@
FLAC format:
-
New PICTURE metadata block for storing things like cover art.
+
New PICTURE metadata block for storing things like cover art.
Speaker assignments and channel orders for 3-6 channels (see frame header).
Further restrictions on the FLAC subset when the sample rate is <=48kHz; in this case the maximum LPC order is now 12 and maximum blocksize is 4608. This is to further limit the processing and memory requirements for hardware implementations while not measurably affecting compression.
@@ -92,14 +92,14 @@
flac:
-
Improved the -F option to allow decoding of FLAC files whose metadata is corrupted, and other kinds of severe corruption.
+
Improved the -F option to allow decoding of FLAC files whose metadata is corrupted, and other kinds of severe corruption.
Encoder can now take FLAC as input. The output FLAC file will have all the same metadata as the original unless overridden with options on the command line.
Encoder can now take WAVEFORMATEXTENSIBLE WAVE files as input; decoder will output WAVEFORMATEXTENSIBLE WAVE files when necessary to conform to the latest Microsoft specifications.
Now properly supports AIFF and WAVEFORMATEXTENSIBLE multichannel input, performing necessary channel reordering both for encoding and decoding. WAVEFORMATEXTENSIBLE channel mask is also saved to a tag on encoding and restored on decoding for situations when there is no natural mapping to FLAC channel assignments.
Expanded support for "odd" sample resolutions to WAVE and AIFF input; all resolutions from 4 to 24 bits-per-sample now supported for all input types.
-
Added a new option --tag-from-file for setting a tag from file (e.g. for importing a cuesheet as a tag).
+
Added a new option --tag-from-file for setting a tag from file (e.g. for importing a cuesheet as a tag).
Importing of non-CDDA-compliant cuesheets now issues a warning.
Removed the following deprecated tag editing options; you should use the new option names shown instead:
@@ -245,7 +245,7 @@
flac:
-
New option --input-size to manually specify the input size when encoding raw samples from stdin.
+
New option --input-size to manually specify the input size when encoding raw samples from stdin.
@@ -352,16 +352,16 @@
Ogg FLAC format:
-
First official FLAC->Ogg bitstream mapping standardized (see new FLAC-to-Ogg mapping specification). See the documentation for the --ogg switch about having to re-encode older Ogg FLAC files.
+
First official FLAC->Ogg bitstream mapping standardized (see new FLAC-to-Ogg mapping specification). See the documentation for the --ogg switch about having to re-encode older Ogg FLAC files.
flac:
Print an error when output file already exists instead of automatically overwriting.
-
New option -f (--force) to force overwriting if the output file already exists.
-
New option --cue to select a specific section to decode using cuesheet track/index points.
New (but undocumented) option --apply-replaygain-which-is-not-lossless which applies ReplayGain to the decoded output. See this thread for usage and caveats.
When encoding to Ogg FLAC, use a random serial number (instead of 0 as was done before) when a serial number is not specified.
When encoding multiple Ogg FLAC streams, --serial-number or random serial number sets the first number, which is then incremented for subsequent streams (before, the same serial number was used for all streams).
Import a picture and store it in a PICTURE metadata block. See the flac option --picture for an explanation of the SPECIFICATION syntax.
diff --git a/man/metaflac.sgml b/man/metaflac.sgml
index 2fbca4b4..3a80a37a 100644
--- a/man/metaflac.sgml
+++ b/man/metaflac.sgml
@@ -301,9 +301,9 @@ manpage.1: manpage.sgml
- =SPECIFICATION
+ =SPECIFICATION
- Import a picture and store it in a PICTURE metadata block. More than one --import-picture command can be specified. The SPECIFICATION is a string whose parts are separated by | (pipe) characters. Some parts may be left empty to invoke default values. The format of SPECIFICATION is
+ Import a picture and store it in a PICTURE metadata block. More than one --import-picture-from command can be specified. The SPECIFICATION is a string whose parts are separated by | (pipe) characters. Some parts may be left empty to invoke default values. The format of SPECIFICATION is[TYPE]|MIME-TYPE|[DESCRIPTION]|[WIDTHxHEIGHTxDEPTH[/COLORS]]|FILETYPE is optional; it is a number from one of:0: Other
diff --git a/src/metaflac/operations.c b/src/metaflac/operations.c
index 764f47a5..06bfd39b 100644
--- a/src/metaflac/operations.c
+++ b/src/metaflac/operations.c
@@ -359,7 +359,7 @@ FLAC__bool do_shorthand_operation(const char *filename, FLAC__bool prefix_with_f
case OP__EXPORT_CUESHEET_TO:
ok = do_shorthand_operation__cuesheet(filename, chain, operation, needs_write);
break;
- case OP__IMPORT_PICTURE:
+ case OP__IMPORT_PICTURE_FROM:
case OP__EXPORT_PICTURE_TO:
ok = do_shorthand_operation__picture(filename, chain, operation, needs_write);
break;
diff --git a/src/metaflac/operations_shorthand_picture.c b/src/metaflac/operations_shorthand_picture.c
index 8685cf56..21cfeb46 100644
--- a/src/metaflac/operations_shorthand_picture.c
+++ b/src/metaflac/operations_shorthand_picture.c
@@ -42,7 +42,7 @@ FLAC__bool do_shorthand_operation__picture(const char *filename, FLAC__Metadata_
FLAC__metadata_iterator_init(iterator, chain);
switch(operation->type) {
- case OP__IMPORT_PICTURE:
+ case OP__IMPORT_PICTURE_FROM:
ok = import_pic_from(filename, &picture, operation->argument.specification.value, needs_write);
if(ok) {
/* append PICTURE block */
diff --git a/src/metaflac/options.c b/src/metaflac/options.c
index 86b217c0..be9d77cc 100644
--- a/src/metaflac/options.c
+++ b/src/metaflac/options.c
@@ -72,7 +72,7 @@ struct share__option long_options_[] = {
{ "export-tags-to", 1, 0, 0 },
{ "import-cuesheet-from", 1, 0, 0 },
{ "export-cuesheet-to", 1, 0, 0 },
- { "import-picture", 1, 0, 0 },
+ { "import-picture-from", 1, 0, 0 },
{ "export-picture-to", 1, 0, 0 },
{ "add-seekpoint", 1, 0, 0 },
{ "add-replay-gain", 0, 0, 0 },
@@ -275,7 +275,7 @@ void free_options(CommandLineOptions *options)
if(0 != op->argument.import_cuesheet_from.filename)
free(op->argument.import_cuesheet_from.filename);
break;
- case OP__IMPORT_PICTURE:
+ case OP__IMPORT_PICTURE_FROM:
if(0 != op->argument.specification.value)
free(op->argument.specification.value);
break;
@@ -559,8 +559,8 @@ FLAC__bool parse_option(int option_index, const char *option_argument, CommandLi
ok = false;
}
}
- else if(0 == strcmp(opt, "import-picture")) {
- op = append_shorthand_operation(options, OP__IMPORT_PICTURE);
+ else if(0 == strcmp(opt, "import-picture-from")) {
+ op = append_shorthand_operation(options, OP__IMPORT_PICTURE_FROM);
FLAC__ASSERT(0 != option_argument);
if(!parse_string(option_argument, &(op->argument.specification.value))) {
fprintf(stderr, "ERROR (--%s): missing specification\n", opt);
diff --git a/src/metaflac/options.h b/src/metaflac/options.h
index 47bc0dd3..4be81659 100644
--- a/src/metaflac/options.h
+++ b/src/metaflac/options.h
@@ -60,7 +60,7 @@ typedef enum {
OP__EXPORT_VC_TO,
OP__IMPORT_CUESHEET_FROM,
OP__EXPORT_CUESHEET_TO,
- OP__IMPORT_PICTURE,
+ OP__IMPORT_PICTURE_FROM,
OP__EXPORT_PICTURE_TO,
OP__ADD_SEEKPOINT,
OP__ADD_REPLAY_GAIN,
diff --git a/src/metaflac/usage.c b/src/metaflac/usage.c
index ef83448f..366fb8dd 100644
--- a/src/metaflac/usage.c
+++ b/src/metaflac/usage.c
@@ -149,10 +149,10 @@ int long_usage(const char *message, ...)
fprintf(out, "--export-cuesheet-to=FILE Export CUESHEET block to a cuesheet file, suitable\n");
fprintf(out, " for use by CD authoring software. Use '-' for stdout.\n");
fprintf(out, " Only one FLAC file may be specified on the command line.\n");
- fprintf(out, "--import-picture=SPECIFICATION Import a picture and store it in a PICTURE block.\n");
- fprintf(out, " The SPECIFICATION is a string whose parts are separated\n");
- fprintf(out, " by | characters. Some parts may be left empty to invoke\n");
- fprintf(out, " default values. The specification format is:\n");
+ fprintf(out, "--import-picture-from=SPECIFICATION Import a picture and store it in a PICTURE\n");
+ fprintf(out, " block. The SPECIFICATION is a string whose parts are\n");
+ fprintf(out, " separated by | characters. Some parts may be left empty\n");
+ fprintf(out, " to invoke default values. The specification format is:\n");
fprintf(out, " [TYPE]|MIME-TYPE|[DESCRIPTION]|[WIDTHxHEIGHTxDEPTH[/COLORS]]|FILE\n");
fprintf(out, " TYPE is optional; it is a number from one of:\n");
fprintf(out, " 0: Other\n");
diff --git a/test/test_metaflac.sh b/test/test_metaflac.sh
index 050d1553..2e21fb6d 100755
--- a/test/test_metaflac.sh
+++ b/test/test_metaflac.sh
@@ -320,18 +320,18 @@ for f in \
1.gif \
2.gif \
; do
- run_metaflac --import-picture="|image/gif|$f||pictures/$f" $flacfile
+ run_metaflac --import-picture-from="|image/gif|$f||pictures/$f" $flacfile
check_flac
- metaflac_test "case$ncase" "--import-picture" "--list"
+ metaflac_test "case$ncase" "--import-picture-from" "--list"
ncase=`expr $ncase + 1`
done
for f in \
0.jpg \
4.jpg \
; do
- run_metaflac --import-picture="4|image/jpeg|$f||pictures/$f" $flacfile
+ run_metaflac --import-picture-from="4|image/jpeg|$f||pictures/$f" $flacfile
check_flac
- metaflac_test "case$ncase" "--import-picture" "--list"
+ metaflac_test "case$ncase" "--import-picture-from" "--list"
ncase=`expr $ncase + 1`
done
for f in \
@@ -345,9 +345,9 @@ for f in \
7.png \
8.png \
; do
- run_metaflac --import-picture="5|image/png|$f||pictures/$f" $flacfile
+ run_metaflac --import-picture-from="5|image/png|$f||pictures/$f" $flacfile
check_flac
- metaflac_test "case$ncase" "--import-picture" "--list"
+ metaflac_test "case$ncase" "--import-picture-from" "--list"
ncase=`expr $ncase + 1`
done
[ $ncase = 60 ] || die "expected case# to be 60"
@@ -369,12 +369,12 @@ rm -f $fn
run_metaflac --remove --block-type=PICTURE $flacfile
check_flac
metaflac_test case60 "--remove --block-type=PICTURE" "--list"
-run_metaflac --import-picture="1|image/png|standard_icon|32x32x24|pictures/0.png" $flacfile
+run_metaflac --import-picture-from="1|image/png|standard_icon|32x32x24|pictures/0.png" $flacfile
check_flac
-metaflac_test case61 "--import-picture" "--list"
-run_metaflac --import-picture="2|image/png|icon|64x64x24|pictures/1.png" $flacfile
+metaflac_test case61 "--import-picture-from" "--list"
+run_metaflac --import-picture-from="2|image/png|icon|64x64x24|pictures/1.png" $flacfile
check_flac
-metaflac_test case62 "--import-picture" "--list"
+metaflac_test case62 "--import-picture-from" "--list"
# UNKNOWN blocks
echo -n "Testing FLAC file with unknown metadata... "