<li>Better multichannel support</li>
<li>Large file (>2GB) support everywhere</li>
<li><span class="commandname">flac</span> now supports FLAC as input to the encoder (i.e. can re-encode FLAC to FLAC) and preserve all the metadata like tags, etc.</li>
- <li>New <a href="format.html#def_PICTURE"><span class="code">PICTURE</span></a> metadata block for storing things like cover art, new <span class="argument"><a href="documentation.html#flac_options_picture">--picture</a></span> option to <span class="commandname">flac</span> and <span class="argument"><a href="documentation.html#metaflac_shorthand_import_picture">--import-picture</a></span> option to <span class="commandname">metaflac</span> for importing pictures, new <a href="documentation.html#metaflac_shorthand_export_picture_to">--export-picture-to</a></span> option to <span class="commandname">metaflac</span> for exporting pictures, and metadata API <a href="api/group__flac__metadata__level0.html#ga3">additions</a> for searching for suitable pictures based on type, size and color constraints.</li>
+ <li>New <span class="code"><a href="format.html#def_PICTURE">PICTURE</a></span> metadata block for storing things like cover art, new <span class="argument"><a href="documentation.html#flac_options_picture">--picture</a></span> option to <span class="commandname">flac</span> and <span class="argument"><a href="documentation.html#metaflac_shorthand_import_picture_from">--import-picture-from</a></span> option to <span class="commandname">metaflac</span> for importing pictures, new <span class="argument"><a href="documentation.html#metaflac_shorthand_export_picture_to">--export-picture-to</a></span> option to <span class="commandname">metaflac</span> for exporting pictures, and metadata API <a href="api/group__flac__metadata__level0.html#ga3">additions</a> for searching for suitable pictures based on type, size and color constraints.</li>
<li>Support for new <tt>REPLAYGAIN_REFERENCE_LOUDNESS</tt> tag.</li>
<li>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.</li>
</ul>
<li>
FLAC format:
<ul>
- <li>New <a href="format.html#def_PICTURE"><span class="code">PICTURE</span></a> metadata block for storing things like cover art.</li>
+ <li>New <span class="code"><a href="format.html#def_PICTURE">PICTURE</a></span> metadata block for storing things like cover art.</li>
<li>Speaker assignments and channel orders for 3-6 channels (see <a href="format.html#frame_header">frame header</a>).</li>
<li>Further restrictions on the <a href="format.html#subset">FLAC subset</a> 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.</li>
</ul>
<li>
flac:
<ul>
- <li>Improved the <a href="documentation.html#flac_options_decode_through_errors"><span class="argument">-F</span></a> option to allow decoding of FLAC files whose metadata is corrupted, and other kinds of severe corruption.</li>
+ <li>Improved the <span class="argument"><a href="documentation.html#flac_options_decode_through_errors">-F</a></span> option to allow decoding of FLAC files whose metadata is corrupted, and other kinds of severe corruption.</li>
<li>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.</li>
<li>Encoder can now take WAVEFORMATEXTENSIBLE WAVE files as input; decoder will output WAVEFORMATEXTENSIBLE WAVE files when necessary to conform to the latest Microsoft specifications.</li>
<li>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.</li>
<li>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.</li>
- <li>Added a new option <a href="documentation.html#flac_options_tag_from_file"><span class="argument">--tag-from-file</span></a> for setting a tag from file (e.g. for importing a cuesheet as a tag).</li>
+ <li>Added a new option <span class="argument"><a href="documentation.html#flac_options_tag_from_file">--tag-from-file</a></span> for setting a tag from file (e.g. for importing a cuesheet as a tag).</li>
<li>Added a new option <span class="argument"><a href="documentation.html#flac_options_picture">--picture</a></span> for adding pictures.</li>
- <li>Added a new option <a href="documentation.html#flac_options_apodization"><span class="argument">--apodization</span></a> for specifying the window function(s) to be used in LPC analysis.</li>
+ <li>Added a new option <span class="argument"><a href="documentation.html#flac_options_apodization">--apodization</a></span> for specifying the window function(s) to be used in LPC analysis.</li>
<li>Added support for encoding from non-compressed AIFF-C (<a href="https://sourceforge.net/tracker/?func=detail&atid=113478&aid=1090933&group_id=13478">SF #1090933</a>).</li>
<li>Importing of non-CDDA-compliant cuesheets now only issues a warning, not an error (see <a href="http://www.hydrogenaudio.org/forums/index.php?showtopic=31282">here</a>).</li>
<li>MD5 comparison failures on decoding are now an error instead of a warning and will also return a non-zero exit code (<a href="https://sourceforge.net/tracker/index.php?func=detail&aid=1493725&group_id=13478&atid=113478">SF #1493725</a>).</li>
<li>
metaflac:
<ul>
- <li>Added a new option <a href="documentation.html#metaflac_shorthand_set_tag_from_file"><span class="argument">--set-tag-from-file</span></a> for setting a tag from file (e.g. for importing a cuesheet as a tag).</li>
- <li>Added a new option <span class="argument"><a href="documentation.html#metaflac_shorthand_import_picture">--import-picture</a></span> for importing pictures.</li>
+ <li>Added a new option <span class="argument"><a href="documentation.html#metaflac_shorthand_set_tag_from_file">--set-tag-from-file</a></span> for setting a tag from file (e.g. for importing a cuesheet as a tag).</li>
+ <li>Added a new option <span class="argument"><a href="documentation.html#metaflac_shorthand_import_picture_from">--import-picture-from</a></span> for importing pictures.</li>
<li>Added a new option <span class="argument"><a href="documentation.html#metaflac_shorthand_export_picture_to">--export-picture-to</a></span> for exporting pictures.</li>
- <li>Added shorthand operation <a href="documentation.html#metaflac_shorthand_remove_replay_gain"><span class="argument">--remove-replay-gain</span></a> for removing ReplayGain tags.</li>
- <li><a href="documentation.html#metaflac_shorthand_export_cuesheet_to"><span class="argument">--export-cuesheet-to</span></a> now properly specifies the FLAC file name (<a href="https://sourceforge.net/tracker/index.php?func=detail&aid=1272825&group_id=13478&atid=363478">SF #1272825</a>).</li>
+ <li>Added shorthand operation <span class="argument"><a href="documentation.html#metaflac_shorthand_remove_replay_gain">--remove-replay-gain</a></span> for removing ReplayGain tags.</li>
+ <li><span class="argument"><a href="documentation.html#metaflac_shorthand_export_cuesheet_to">--export-cuesheet-to</a></span> now properly specifies the FLAC file name (<a href="https://sourceforge.net/tracker/index.php?func=detail&aid=1272825&group_id=13478&atid=363478">SF #1272825</a>).</li>
<li>Importing of non-CDDA-compliant cuesheets now issues a warning.</li>
<li>Removed the following deprecated tag editing options; you should use the new option names shown instead:
<ul>
<li>
flac:
<ul>
- <li>New option <a href="documentation.html#flac_options_input_size"><span class="argument">--input-size</span></a> to manually specify the input size when encoding raw samples from stdin.</li>
+ <li>New option <span class="argument"><a href="documentation.html#flac_options_input_size">--input-size</a></span> to manually specify the input size when encoding raw samples from stdin.</li>
</ul>
</li>
<li>
<li>
Ogg FLAC format:
<ul>
- <li>First official FLAC->Ogg bitstream mapping standardized (see new <a href="ogg_mapping.html">FLAC-to-Ogg mapping specification</a>). See the documentation for the <a href="documentation.html#flac_options_ogg"><span class="argument">--ogg</span></a> switch about having to re-encode older Ogg FLAC files.</li>
+ <li>First official FLAC->Ogg bitstream mapping standardized (see new <a href="ogg_mapping.html">FLAC-to-Ogg mapping specification</a>). See the documentation for the <span class="argument"><a href="documentation.html#flac_options_ogg">--ogg</a></span> switch about having to re-encode older Ogg FLAC files.</li>
</ul>
</li>
<li>
flac:
<ul>
<li>Print an error when output file already exists instead of automatically overwriting.</li>
- <li>New option <a href="documentation.html#flac_options_force"><span class="argument">-f</span> (<span class="argument">--force</span>)</a> to force overwriting if the output file already exists.</li>
- <li>New option <a href="documentation.html#flac_options_cue"><span class="argument">--cue</span></a> to select a specific section to decode using cuesheet track/index points.</li>
- <li>New option <a href="documentation.html#flac_options_totally_silent"><span class="argument">--totally-silent</span></a> to suppress all output.</li>
+ <li>New option <span class="argument"><a href="documentation.html#flac_options_force">-f</a></span> (<span class="argument"><a href="documentation.html#flac_options_force">--force</a></span>) to force overwriting if the output file already exists.</li>
+ <li>New option <span class="argument"><a href="documentation.html#flac_options_cue">--cue</a></span> to select a specific section to decode using cuesheet track/index points.</li>
+ <li>New option <span class="argument"><a href="documentation.html#flac_options_totally_silent">--totally-silent</a></span> to suppress all output.</li>
<li>New (but undocumented) option <span class="argument">--apply-replaygain-which-is-not-lossless</span> which applies ReplayGain to the decoded output. See <a href="http://www.hydrogenaudio.org/forums/index.php?showtopic=17293&st=11">this thread</a> for usage and caveats.</li>
<li>When encoding to Ogg FLAC, use a random serial number (instead of 0 as was done before) when a serial number is not specified.</li>
<li>When encoding multiple Ogg FLAC streams, <span class="argument">--serial-number</span> 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).</li>
</tr>
<tr>
<td nowrap="nowrap" align="right" valign="top" bgcolor="#F4F4CC">
- <a name="metaflac_shorthand_import_picture" />
- <span class="argument">--import-picture=SPECIFICATION</span>
+ <a name="metaflac_shorthand_import_picture_from" />
+ <span class="argument">--import-picture-from=SPECIFICATION</span>
</td>
<td>
Import a picture and store it in a <a href="format.html#def_PICTURE"><span class="code">PICTURE</span></a> metadata block. See the <span class="commandname">flac</span> option <span class="argument"><a href="#flac_options_picture">--picture</a></span> for an explanation of the <span class="argument">SPECIFICATION</span> syntax.
</listitem>
</varlistentry>
<varlistentry>
- <term><option>--import-picture</option>=<replaceable>SPECIFICATION</replaceable></term>
+ <term><option>--import-picture-from</option>=<replaceable>SPECIFICATION</replaceable></term>
<listitem>
- <para>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</para>
+ <para>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</para>
<para>[TYPE]|MIME-TYPE|[DESCRIPTION]|[WIDTHxHEIGHTxDEPTH[/COLORS]]|FILE</para>
<para>TYPE is optional; it is a number from one of:</para>
<para>0: Other</para>
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;
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 */
{ "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 },
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;
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);
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,
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");
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 \
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"
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... "