| Index: include/FLAC/stream_encoder.h
|
| diff --git a/include/FLAC/stream_encoder.h b/include/FLAC/stream_encoder.h
|
| index dbbbb23ee113031452f1f515bdb8db54c245dba8..efc213aee5d134066b3ccd3bbb94dde76c12b203 100644
|
| --- a/include/FLAC/stream_encoder.h
|
| +++ b/include/FLAC/stream_encoder.h
|
| @@ -1,5 +1,6 @@
|
| /* libFLAC - Free Lossless Audio Codec library
|
| - * Copyright (C) 2000,2001,2002,2003,2004,2005,2006,2007 Josh Coalson
|
| + * Copyright (C) 2000-2009 Josh Coalson
|
| + * Copyright (C) 2011-2014 Xiph.Org Foundation
|
| *
|
| * Redistribution and use in source and binary forms, with or without
|
| * modification, are permitted provided that the following conditions
|
| @@ -128,7 +129,7 @@ extern "C" {
|
| * Unlike the decoders, the stream encoder has many options that can
|
| * affect the speed and compression ratio. When setting these parameters
|
| * you should have some basic knowledge of the format (see the
|
| - * <A HREF="../documentation.html#format">user-level documentation</A>
|
| + * <A HREF="../documentation_format_overview.html">user-level documentation</A>
|
| * or the <A HREF="../format.html">formal description</A>). The
|
| * FLAC__stream_encoder_set_*() functions themselves do not validate the
|
| * values as many are interdependent. The FLAC__stream_encoder_init_*()
|
| @@ -829,28 +830,28 @@ FLAC_API FLAC__bool FLAC__stream_encoder_set_sample_rate(FLAC__StreamEncoder *en
|
| * The actual values set for each level are:
|
| * <table>
|
| * <tr>
|
| - * <td><b>level</b><td>
|
| - * <td>do mid-side stereo<td>
|
| - * <td>loose mid-side stereo<td>
|
| - * <td>apodization<td>
|
| - * <td>max lpc order<td>
|
| - * <td>qlp coeff precision<td>
|
| - * <td>qlp coeff prec search<td>
|
| - * <td>escape coding<td>
|
| - * <td>exhaustive model search<td>
|
| - * <td>min residual partition order<td>
|
| - * <td>max residual partition order<td>
|
| - * <td>rice parameter search dist<td>
|
| + * <td><b>level</b></td>
|
| + * <td>do mid-side stereo</td>
|
| + * <td>loose mid-side stereo</td>
|
| + * <td>apodization</td>
|
| + * <td>max lpc order</td>
|
| + * <td>qlp coeff precision</td>
|
| + * <td>qlp coeff prec search</td>
|
| + * <td>escape coding</td>
|
| + * <td>exhaustive model search</td>
|
| + * <td>min residual partition order</td>
|
| + * <td>max residual partition order</td>
|
| + * <td>rice parameter search dist</td>
|
| * </tr>
|
| - * <tr> <td><b>0</b><td> <td>false<td> <td>false<td> <td>tukey(0.5)<td> <td>0<td> <td>0<td> <td>false<td> <td>false<td> <td>false<td> <td>0<td> <td>3<td> <td>0<td> </tr>
|
| - * <tr> <td><b>1</b><td> <td>true<td> <td>true<td> <td>tukey(0.5)<td> <td>0<td> <td>0<td> <td>false<td> <td>false<td> <td>false<td> <td>0<td> <td>3<td> <td>0<td> </tr>
|
| - * <tr> <td><b>2</b><td> <td>true<td> <td>false<td> <td>tukey(0.5)<td> <td>0<td> <td>0<td> <td>false<td> <td>false<td> <td>false<td> <td>0<td> <td>3<td> <td>0<td> </tr>
|
| - * <tr> <td><b>3</b><td> <td>false<td> <td>false<td> <td>tukey(0.5)<td> <td>6<td> <td>0<td> <td>false<td> <td>false<td> <td>false<td> <td>0<td> <td>4<td> <td>0<td> </tr>
|
| - * <tr> <td><b>4</b><td> <td>true<td> <td>true<td> <td>tukey(0.5)<td> <td>8<td> <td>0<td> <td>false<td> <td>false<td> <td>false<td> <td>0<td> <td>4<td> <td>0<td> </tr>
|
| - * <tr> <td><b>5</b><td> <td>true<td> <td>false<td> <td>tukey(0.5)<td> <td>8<td> <td>0<td> <td>false<td> <td>false<td> <td>false<td> <td>0<td> <td>5<td> <td>0<td> </tr>
|
| - * <tr> <td><b>6</b><td> <td>true<td> <td>false<td> <td>tukey(0.5)<td> <td>8<td> <td>0<td> <td>false<td> <td>false<td> <td>false<td> <td>0<td> <td>6<td> <td>0<td> </tr>
|
| - * <tr> <td><b>7</b><td> <td>true<td> <td>false<td> <td>tukey(0.5)<td> <td>8<td> <td>0<td> <td>false<td> <td>false<td> <td>true<td> <td>0<td> <td>6<td> <td>0<td> </tr>
|
| - * <tr> <td><b>8</b><td> <td>true<td> <td>false<td> <td>tukey(0.5)<td> <td>12<td> <td>0<td> <td>false<td> <td>false<td> <td>true<td> <td>0<td> <td>6<td> <td>0<td> </tr>
|
| + * <tr> <td><b>0</b></td> <td>false</td> <td>false</td> <td>tukey(0.5)<td> <td>0</td> <td>0</td> <td>false</td> <td>false</td> <td>false</td> <td>0</td> <td>3</td> <td>0</td> </tr>
|
| + * <tr> <td><b>1</b></td> <td>true</td> <td>true</td> <td>tukey(0.5)<td> <td>0</td> <td>0</td> <td>false</td> <td>false</td> <td>false</td> <td>0</td> <td>3</td> <td>0</td> </tr>
|
| + * <tr> <td><b>2</b></td> <td>true</td> <td>false</td> <td>tukey(0.5)<td> <td>0</td> <td>0</td> <td>false</td> <td>false</td> <td>false</td> <td>0</td> <td>3</td> <td>0</td> </tr>
|
| + * <tr> <td><b>3</b></td> <td>false</td> <td>false</td> <td>tukey(0.5)<td> <td>6</td> <td>0</td> <td>false</td> <td>false</td> <td>false</td> <td>0</td> <td>4</td> <td>0</td> </tr>
|
| + * <tr> <td><b>4</b></td> <td>true</td> <td>true</td> <td>tukey(0.5)<td> <td>8</td> <td>0</td> <td>false</td> <td>false</td> <td>false</td> <td>0</td> <td>4</td> <td>0</td> </tr>
|
| + * <tr> <td><b>5</b></td> <td>true</td> <td>false</td> <td>tukey(0.5)<td> <td>8</td> <td>0</td> <td>false</td> <td>false</td> <td>false</td> <td>0</td> <td>5</td> <td>0</td> </tr>
|
| + * <tr> <td><b>6</b></td> <td>true</td> <td>false</td> <td>tukey(0.5);partial_tukey(2)<td> <td>8</td> <td>0</td> <td>false</td> <td>false</td> <td>false</td> <td>0</td> <td>6</td> <td>0</td> </tr>
|
| + * <tr> <td><b>7</b></td> <td>true</td> <td>false</td> <td>tukey(0.5);partial_tukey(2)<td> <td>12</td> <td>0</td> <td>false</td> <td>false</td> <td>false</td> <td>0</td> <td>6</td> <td>0</td> </tr>
|
| + * <tr> <td><b>8</b></td> <td>true</td> <td>false</td> <td>tukey(0.5);partial_tukey(2);punchout_tukey(3)</td> <td>12</td> <td>0</td> <td>false</td> <td>false</td> <td>false</td> <td>0</td> <td>6</td> <td>0</td> </tr>
|
| * </table>
|
| *
|
| * \default \c 5
|
| @@ -919,7 +920,8 @@ FLAC_API FLAC__bool FLAC__stream_encoder_set_loose_mid_side_stereo(FLAC__StreamE
|
| * The available functions are \c bartlett, \c bartlett_hann,
|
| * \c blackman, \c blackman_harris_4term_92db, \c connes, \c flattop,
|
| * \c gauss(STDDEV), \c hamming, \c hann, \c kaiser_bessel, \c nuttall,
|
| - * \c rectangle, \c triangle, \c tukey(P), \c welch.
|
| + * \c rectangle, \c triangle, \c tukey(P), \c partial_tukey(n[/ov[/P]]),
|
| + * \c punchout_tukey(n[/ov[/P]]), \c welch.
|
| *
|
| * For \c gauss(STDDEV), STDDEV specifies the standard deviation
|
| * (0<STDDEV<=0.5).
|
| @@ -928,6 +930,24 @@ FLAC_API FLAC__bool FLAC__stream_encoder_set_loose_mid_side_stereo(FLAC__StreamE
|
| * tapered (0<=P<=1). P=0 corresponds to \c rectangle and P=1
|
| * corresponds to \c hann.
|
| *
|
| + * Specifying \c partial_tukey or \c punchout_tukey works a little
|
| + * different. These do not specify a single apodization function, but
|
| + * a series of them with some overlap. partial_tukey specifies a series
|
| + * of small windows (all treated separately) while punchout_tukey
|
| + * specifies a series of windows that have a hole in them. In this way,
|
| + * the predictor is constructed with only a part of the block, which
|
| + * helps in case a block consists of dissimilar parts.
|
| + *
|
| + * The three parameters that can be specified for the functions are
|
| + * n, ov and P. n is the number of functions to add, ov is the overlap
|
| + * of the windows in case of partial_tukey and the overlap in the gaps
|
| + * in case of punchout_tukey. P is the fraction of the window that is
|
| + * tapered, like with a regular tukey window. The function can be
|
| + * specified with only a number, a number and an overlap, or a number
|
| + * an overlap and a P, for example, partial_tukey(3), partial_tukey(3/0.3)
|
| + * and partial_tukey(3/0.3/0.5) are all valid. ov should be smaller than 1
|
| + * and can be negative.
|
| + *
|
| * Example specifications are \c "blackman" or
|
| * \c "hann;triangle;tukey(0.5);tukey(0.25);tukey(0.125)"
|
| *
|
| @@ -940,7 +960,9 @@ FLAC_API FLAC__bool FLAC__stream_encoder_set_loose_mid_side_stereo(FLAC__StreamE
|
| * results in the smallest compressed subframe.
|
| *
|
| * Note that each function specified causes the encoder to occupy a
|
| - * floating point array in which to store the window.
|
| + * floating point array in which to store the window. Also note that the
|
| + * values of P, STDDEV and ov are locale-specific, so if the comma
|
| + * separator specified by the locale is a comma, a comma should be used.
|
| *
|
| * \default \c "tukey(0.5)"
|
| * \param encoder An encoder instance to set.
|
|
|