Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(573)

Side by Side Diff: include/FLAC/stream_encoder.h

Issue 1961133002: Update FLAC to 1.3.1 (Closed) Base URL: https://chromium.googlesource.com/chromium/deps/flac.git@master
Patch Set: build config tweaks for Windows Created 4 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « include/FLAC/stream_decoder.h ('k') | include/share/compat.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* libFLAC - Free Lossless Audio Codec library 1 /* libFLAC - Free Lossless Audio Codec library
2 * Copyright (C) 2000,2001,2002,2003,2004,2005,2006,2007 Josh Coalson 2 * Copyright (C) 2000-2009 Josh Coalson
3 * Copyright (C) 2011-2014 Xiph.Org Foundation
3 * 4 *
4 * Redistribution and use in source and binary forms, with or without 5 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions 6 * modification, are permitted provided that the following conditions
6 * are met: 7 * are met:
7 * 8 *
8 * - Redistributions of source code must retain the above copyright 9 * - Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer. 10 * notice, this list of conditions and the following disclaimer.
10 * 11 *
11 * - Redistributions in binary form must reproduce the above copyright 12 * - Redistributions in binary form must reproduce the above copyright
12 * notice, this list of conditions and the following disclaimer in the 13 * notice, this list of conditions and the following disclaimer in the
(...skipping 108 matching lines...) Expand 10 before | Expand all | Expand 10 after
121 * In more detail, the stream encoder functions similarly to the 122 * In more detail, the stream encoder functions similarly to the
122 * \link flac_stream_decoder stream decoder \endlink, but has fewer 123 * \link flac_stream_decoder stream decoder \endlink, but has fewer
123 * callbacks and more options. Typically the client will create a new 124 * callbacks and more options. Typically the client will create a new
124 * instance by calling FLAC__stream_encoder_new(), then set the necessary 125 * instance by calling FLAC__stream_encoder_new(), then set the necessary
125 * parameters with FLAC__stream_encoder_set_*(), and initialize it by 126 * parameters with FLAC__stream_encoder_set_*(), and initialize it by
126 * calling one of the FLAC__stream_encoder_init_*() functions. 127 * calling one of the FLAC__stream_encoder_init_*() functions.
127 * 128 *
128 * Unlike the decoders, the stream encoder has many options that can 129 * Unlike the decoders, the stream encoder has many options that can
129 * affect the speed and compression ratio. When setting these parameters 130 * affect the speed and compression ratio. When setting these parameters
130 * you should have some basic knowledge of the format (see the 131 * you should have some basic knowledge of the format (see the
131 * <A HREF="../documentation.html#format">user-level documentation</A> 132 * <A HREF="../documentation_format_overview.html">user-level documentation</A>
132 * or the <A HREF="../format.html">formal description</A>). The 133 * or the <A HREF="../format.html">formal description</A>). The
133 * FLAC__stream_encoder_set_*() functions themselves do not validate the 134 * FLAC__stream_encoder_set_*() functions themselves do not validate the
134 * values as many are interdependent. The FLAC__stream_encoder_init_*() 135 * values as many are interdependent. The FLAC__stream_encoder_init_*()
135 * functions will do this, so make sure to pay attention to the state 136 * functions will do this, so make sure to pay attention to the state
136 * returned by FLAC__stream_encoder_init_*() to make sure that it is 137 * returned by FLAC__stream_encoder_init_*() to make sure that it is
137 * FLAC__STREAM_ENCODER_INIT_STATUS_OK. Any parameters that are not set 138 * FLAC__STREAM_ENCODER_INIT_STATUS_OK. Any parameters that are not set
138 * before FLAC__stream_encoder_init_*() will take on the defaults from 139 * before FLAC__stream_encoder_init_*() will take on the defaults from
139 * the constructor. 140 * the constructor.
140 * 141 *
141 * There are three initialization functions for native FLAC, one for 142 * There are three initialization functions for native FLAC, one for
(...skipping 680 matching lines...) Expand 10 before | Expand all | Expand 10 after
822 * - FLAC__stream_encoder_set_do_qlp_coeff_prec_search() 823 * - FLAC__stream_encoder_set_do_qlp_coeff_prec_search()
823 * - FLAC__stream_encoder_set_do_escape_coding() 824 * - FLAC__stream_encoder_set_do_escape_coding()
824 * - FLAC__stream_encoder_set_do_exhaustive_model_search() 825 * - FLAC__stream_encoder_set_do_exhaustive_model_search()
825 * - FLAC__stream_encoder_set_min_residual_partition_order() 826 * - FLAC__stream_encoder_set_min_residual_partition_order()
826 * - FLAC__stream_encoder_set_max_residual_partition_order() 827 * - FLAC__stream_encoder_set_max_residual_partition_order()
827 * - FLAC__stream_encoder_set_rice_parameter_search_dist() 828 * - FLAC__stream_encoder_set_rice_parameter_search_dist()
828 * 829 *
829 * The actual values set for each level are: 830 * The actual values set for each level are:
830 * <table> 831 * <table>
831 * <tr> 832 * <tr>
832 * <td><b>level</b><td> 833 * <td><b>level</b></td>
833 * <td>do mid-side stereo<td> 834 * <td>do mid-side stereo</td>
834 * <td>loose mid-side stereo<td> 835 * <td>loose mid-side stereo</td>
835 * <td>apodization<td> 836 * <td>apodization</td>
836 * <td>max lpc order<td> 837 * <td>max lpc order</td>
837 * <td>qlp coeff precision<td> 838 * <td>qlp coeff precision</td>
838 * <td>qlp coeff prec search<td> 839 * <td>qlp coeff prec search</td>
839 * <td>escape coding<td> 840 * <td>escape coding</td>
840 * <td>exhaustive model search<td> 841 * <td>exhaustive model search</td>
841 * <td>min residual partition order<td> 842 * <td>min residual partition order</td>
842 * <td>max residual partition order<td> 843 * <td>max residual partition order</td>
843 * <td>rice parameter search dist<td> 844 * <td>rice parameter search dist</td>
844 * </tr> 845 * </tr>
845 * <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> 846 * <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>
846 * <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> 847 * <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>
847 * <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> 848 * <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>
848 * <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> 849 * <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>
849 * <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> 850 * <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>
850 * <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> 851 * <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>
851 * <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> 852 * <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>
852 * <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> 853 * <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>
853 * <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> 854 * <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>
854 * </table> 855 * </table>
855 * 856 *
856 * \default \c 5 857 * \default \c 5
857 * \param encoder An encoder instance to set. 858 * \param encoder An encoder instance to set.
858 * \param value See above. 859 * \param value See above.
859 * \assert 860 * \assert
860 * \code encoder != NULL \endcode 861 * \code encoder != NULL \endcode
861 * \retval FLAC__bool 862 * \retval FLAC__bool
862 * \c false if the encoder is already initialized, else \c true. 863 * \c false if the encoder is already initialized, else \c true.
863 */ 864 */
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after
912 * audio data for LPC analysis. 913 * audio data for LPC analysis.
913 * 914 *
914 * The \a specification is a plain ASCII string which specifies exactly 915 * The \a specification is a plain ASCII string which specifies exactly
915 * which functions to use. There may be more than one (up to 32), 916 * which functions to use. There may be more than one (up to 32),
916 * separated by \c ';' characters. Some functions take one or more 917 * separated by \c ';' characters. Some functions take one or more
917 * comma-separated arguments in parentheses. 918 * comma-separated arguments in parentheses.
918 * 919 *
919 * The available functions are \c bartlett, \c bartlett_hann, 920 * The available functions are \c bartlett, \c bartlett_hann,
920 * \c blackman, \c blackman_harris_4term_92db, \c connes, \c flattop, 921 * \c blackman, \c blackman_harris_4term_92db, \c connes, \c flattop,
921 * \c gauss(STDDEV), \c hamming, \c hann, \c kaiser_bessel, \c nuttall, 922 * \c gauss(STDDEV), \c hamming, \c hann, \c kaiser_bessel, \c nuttall,
922 * \c rectangle, \c triangle, \c tukey(P), \c welch. 923 * \c rectangle, \c triangle, \c tukey(P), \c partial_tukey(n[/ov[/P]]),
924 * \c punchout_tukey(n[/ov[/P]]), \c welch.
923 * 925 *
924 * For \c gauss(STDDEV), STDDEV specifies the standard deviation 926 * For \c gauss(STDDEV), STDDEV specifies the standard deviation
925 * (0<STDDEV<=0.5). 927 * (0<STDDEV<=0.5).
926 * 928 *
927 * For \c tukey(P), P specifies the fraction of the window that is 929 * For \c tukey(P), P specifies the fraction of the window that is
928 * tapered (0<=P<=1). P=0 corresponds to \c rectangle and P=1 930 * tapered (0<=P<=1). P=0 corresponds to \c rectangle and P=1
929 * corresponds to \c hann. 931 * corresponds to \c hann.
930 * 932 *
933 * Specifying \c partial_tukey or \c punchout_tukey works a little
934 * different. These do not specify a single apodization function, but
935 * a series of them with some overlap. partial_tukey specifies a series
936 * of small windows (all treated separately) while punchout_tukey
937 * specifies a series of windows that have a hole in them. In this way,
938 * the predictor is constructed with only a part of the block, which
939 * helps in case a block consists of dissimilar parts.
940 *
941 * The three parameters that can be specified for the functions are
942 * n, ov and P. n is the number of functions to add, ov is the overlap
943 * of the windows in case of partial_tukey and the overlap in the gaps
944 * in case of punchout_tukey. P is the fraction of the window that is
945 * tapered, like with a regular tukey window. The function can be
946 * specified with only a number, a number and an overlap, or a number
947 * an overlap and a P, for example, partial_tukey(3), partial_tukey(3/0.3)
948 * and partial_tukey(3/0.3/0.5) are all valid. ov should be smaller than 1
949 * and can be negative.
950 *
931 * Example specifications are \c "blackman" or 951 * Example specifications are \c "blackman" or
932 * \c "hann;triangle;tukey(0.5);tukey(0.25);tukey(0.125)" 952 * \c "hann;triangle;tukey(0.5);tukey(0.25);tukey(0.125)"
933 * 953 *
934 * Any function that is specified erroneously is silently dropped. Up 954 * Any function that is specified erroneously is silently dropped. Up
935 * to 32 functions are kept, the rest are dropped. If the specification 955 * to 32 functions are kept, the rest are dropped. If the specification
936 * is empty the encoder defaults to \c "tukey(0.5)". 956 * is empty the encoder defaults to \c "tukey(0.5)".
937 * 957 *
938 * When more than one function is specified, then for every subframe the 958 * When more than one function is specified, then for every subframe the
939 * encoder will try each of them separately and choose the window that 959 * encoder will try each of them separately and choose the window that
940 * results in the smallest compressed subframe. 960 * results in the smallest compressed subframe.
941 * 961 *
942 * Note that each function specified causes the encoder to occupy a 962 * Note that each function specified causes the encoder to occupy a
943 * floating point array in which to store the window. 963 * floating point array in which to store the window. Also note that the
964 * values of P, STDDEV and ov are locale-specific, so if the comma
965 * separator specified by the locale is a comma, a comma should be used.
944 * 966 *
945 * \default \c "tukey(0.5)" 967 * \default \c "tukey(0.5)"
946 * \param encoder An encoder instance to set. 968 * \param encoder An encoder instance to set.
947 * \param specification See above. 969 * \param specification See above.
948 * \assert 970 * \assert
949 * \code encoder != NULL \endcode 971 * \code encoder != NULL \endcode
950 * \code specification != NULL \endcode 972 * \code specification != NULL \endcode
951 * \retval FLAC__bool 973 * \retval FLAC__bool
952 * \c false if the encoder is already initialized, else \c true. 974 * \c false if the encoder is already initialized, else \c true.
953 */ 975 */
(...skipping 805 matching lines...) Expand 10 before | Expand all | Expand 10 after
1759 */ 1781 */
1760 FLAC_API FLAC__bool FLAC__stream_encoder_process_interleaved(FLAC__StreamEncoder *encoder, const FLAC__int32 buffer[], unsigned samples); 1782 FLAC_API FLAC__bool FLAC__stream_encoder_process_interleaved(FLAC__StreamEncoder *encoder, const FLAC__int32 buffer[], unsigned samples);
1761 1783
1762 /* \} */ 1784 /* \} */
1763 1785
1764 #ifdef __cplusplus 1786 #ifdef __cplusplus
1765 } 1787 }
1766 #endif 1788 #endif
1767 1789
1768 #endif 1790 #endif
OLDNEW
« no previous file with comments | « include/FLAC/stream_decoder.h ('k') | include/share/compat.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698