1
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
2
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
3
<title>include/FLAC/file_encoder.h Source File</title>
4
<link href="doxygen.css" rel="stylesheet" type="text/css">
6
<!-- Generated by Doxygen 1.2.14 -->
8
<a class="qindex" href="index.html">Main Page</a> <a class="qindex" href="modules.html">Modules</a> <a class="qindex" href="hierarchy.html">Class Hierarchy</a> <a class="qindex" href="classes.html">Alphabetical List</a> <a class="qindex" href="annotated.html">Compound List</a> <a class="qindex" href="files.html">File List</a> <a class="qindex" href="functions.html">Compound Members</a> <a class="qindex" href="globals.html">File Members</a> </center>
9
<hr><h1>include/FLAC/file_encoder.h</h1><a href="file__encoder_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre>00001 <font class="comment">/* libFLAC - Free Lossless Audio Codec library</font>
10
00002 <font class="comment"> * Copyright (C) 2002,2003 Josh Coalson</font>
11
00003 <font class="comment"> *</font>
12
00004 <font class="comment"> * This library is free software; you can redistribute it and/or</font>
13
00005 <font class="comment"> * modify it under the terms of the GNU Library General Public</font>
14
00006 <font class="comment"> * License as published by the Free Software Foundation; either</font>
15
00007 <font class="comment"> * version 2 of the License, or (at your option) any later version.</font>
16
00008 <font class="comment"> *</font>
17
00009 <font class="comment"> * This library is distributed in the hope that it will be useful,</font>
18
00010 <font class="comment"> * but WITHOUT ANY WARRANTY; without even the implied warranty of</font>
19
00011 <font class="comment"> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU</font>
20
00012 <font class="comment"> * Library General Public License for more details.</font>
21
00013 <font class="comment"> *</font>
22
00014 <font class="comment"> * You should have received a copy of the GNU Library General Public</font>
23
00015 <font class="comment"> * License along with this library; if not, write to the</font>
24
00016 <font class="comment"> * Free Software Foundation, Inc., 59 Temple Place - Suite 330,</font>
25
00017 <font class="comment"> * Boston, MA 02111-1307, USA.</font>
26
00018 <font class="comment"> */</font>
28
00020 <font class="preprocessor">#ifndef FLAC__FILE_ENCODER_H</font>
29
00021 <font class="preprocessor"></font><font class="preprocessor">#define FLAC__FILE_ENCODER_H</font>
30
00022 <font class="preprocessor"></font>
31
00023 <font class="preprocessor">#include "export.h"</font>
32
00024 <font class="preprocessor">#include "<a class="code" href="seekable__stream__encoder_8h.html">seekable_stream_encoder.h</a>"</font>
34
00026 <font class="preprocessor">#ifdef __cplusplus</font>
35
00027 <font class="preprocessor"></font><font class="keyword">extern</font> <font class="stringliteral">"C"</font> {
36
00028 <font class="preprocessor">#endif</font>
37
00029 <font class="preprocessor"></font>
39
<a name="l00093"></a><a class="code" href="group__flac__file__encoder.html#a52">00093</a> <font class="keyword">typedef</font> <font class="keyword">enum</font> {
41
00095 <a class="code" href="file__encoder_8h.html#a52a2">FLAC__FILE_ENCODER_OK</a> = 0,
42
00098 <a class="code" href="file__encoder_8h.html#a52a3">FLAC__FILE_ENCODER_NO_FILENAME</a>,
43
00103 <a class="code" href="file__encoder_8h.html#a52a4">FLAC__FILE_ENCODER_SEEKABLE_STREAM_ENCODER_ERROR</a>,
44
00108 <a class="code" href="file__encoder_8h.html#a52a5">FLAC__FILE_ENCODER_FATAL_ERROR_WHILE_WRITING</a>,
45
00111 <a class="code" href="file__encoder_8h.html#a52a6">FLAC__FILE_ENCODER_ERROR_OPENING_FILE</a>,
46
00114 <a class="code" href="file__encoder_8h.html#a52a7">FLAC__FILE_ENCODER_MEMORY_ALLOCATION_ERROR</a>,
47
00117 <a class="code" href="file__encoder_8h.html#a52a8">FLAC__FILE_ENCODER_ALREADY_INITIALIZED</a>,
48
00123 <a class="code" href="file__encoder_8h.html#a52a9">FLAC__FILE_ENCODER_UNINITIALIZED</a>
49
00126 } <a class="code" href="file__encoder_8h.html#a52">FLAC__FileEncoderState</a>;
51
<a name="l00133"></a><a class="code" href="group__flac__file__encoder.html#a0">00133</a> <font class="keyword">extern</font> FLAC_API <font class="keyword">const</font> <font class="keywordtype">char</font> * <font class="keyword">const</font> <a class="code" href="file__encoder_8h.html#a0">FLAC__FileEncoderStateString</a>[];
54
00136 <font class="comment">/***********************************************************************</font>
55
00137 <font class="comment"> *</font>
56
00138 <font class="comment"> * class FLAC__FileEncoder</font>
57
00139 <font class="comment"> *</font>
58
00140 <font class="comment"> ***********************************************************************/</font>
60
00142 <font class="keyword">struct </font>FLAC__FileEncoderProtected;
61
00143 <font class="keyword">struct </font>FLAC__FileEncoderPrivate;
62
<a name="l00148"></a><a class="code" href="structFLAC____FileEncoder.html">00148</a> <font class="keyword">typedef</font> <font class="keyword">struct </font>{
63
00149 <font class="keyword">struct </font>FLAC__FileEncoderProtected *protected_; <font class="comment">/* avoid the C++ keyword 'protected' */</font>
64
00150 <font class="keyword">struct </font>FLAC__FileEncoderPrivate *private_; <font class="comment">/* avoid the C++ keyword 'private' */</font>
65
00151 } <a class="code" href="structFLAC____FileEncoder.html">FLAC__FileEncoder</a>;
67
<a name="l00165"></a><a class="code" href="group__flac__file__encoder.html#a1">00165</a> <font class="keyword">typedef</font> void (*<a class="code" href="file__encoder_8h.html#a1">FLAC__FileEncoderProgressCallback</a>)(<font class="keyword">const</font> <a class="code" href="structFLAC____FileEncoder.html">FLAC__FileEncoder</a> *encoder, FLAC__uint64 bytes_written, FLAC__uint64 samples_written, <font class="keywordtype">unsigned</font> frames_written, <font class="keywordtype">unsigned</font> total_frames_estimate, <font class="keywordtype">void</font> *client_data);
70
00168 <font class="comment">/***********************************************************************</font>
71
00169 <font class="comment"> *</font>
72
00170 <font class="comment"> * Class constructor/destructor</font>
73
00171 <font class="comment"> *</font>
74
00172 <font class="comment"> ***********************************************************************/</font>
76
00181 FLAC_API <a class="code" href="structFLAC____FileEncoder.html">FLAC__FileEncoder</a> *<a class="code" href="file__encoder_8h.html#a2">FLAC__file_encoder_new</a>();
78
00189 FLAC_API <font class="keywordtype">void</font> <a class="code" href="file__encoder_8h.html#a3">FLAC__file_encoder_delete</a>(<a class="code" href="structFLAC____FileEncoder.html">FLAC__FileEncoder</a> *encoder);
80
00191 <font class="comment">/***********************************************************************</font>
81
00192 <font class="comment"> *</font>
82
00193 <font class="comment"> * Public class method prototypes</font>
83
00194 <font class="comment"> *</font>
84
00195 <font class="comment"> ***********************************************************************/</font>
86
00208 FLAC_API FLAC__bool <a class="code" href="file__encoder_8h.html#a4">FLAC__file_encoder_set_verify</a>(<a class="code" href="structFLAC____FileEncoder.html">FLAC__FileEncoder</a> *encoder, FLAC__bool value);
88
00221 FLAC_API FLAC__bool <a class="code" href="file__encoder_8h.html#a5">FLAC__file_encoder_set_streamable_subset</a>(<a class="code" href="structFLAC____FileEncoder.html">FLAC__FileEncoder</a> *encoder, FLAC__bool value);
90
00234 FLAC_API FLAC__bool <a class="code" href="file__encoder_8h.html#a6">FLAC__file_encoder_set_do_mid_side_stereo</a>(<a class="code" href="structFLAC____FileEncoder.html">FLAC__FileEncoder</a> *encoder, FLAC__bool value);
92
00247 FLAC_API FLAC__bool <a class="code" href="file__encoder_8h.html#a7">FLAC__file_encoder_set_loose_mid_side_stereo</a>(<a class="code" href="structFLAC____FileEncoder.html">FLAC__FileEncoder</a> *encoder, FLAC__bool value);
94
00260 FLAC_API FLAC__bool <a class="code" href="file__encoder_8h.html#a8">FLAC__file_encoder_set_channels</a>(<a class="code" href="structFLAC____FileEncoder.html">FLAC__FileEncoder</a> *encoder, <font class="keywordtype">unsigned</font> value);
96
00277 FLAC_API FLAC__bool <a class="code" href="file__encoder_8h.html#a9">FLAC__file_encoder_set_bits_per_sample</a>(<a class="code" href="structFLAC____FileEncoder.html">FLAC__FileEncoder</a> *encoder, <font class="keywordtype">unsigned</font> value);
98
00290 FLAC_API FLAC__bool <a class="code" href="file__encoder_8h.html#a10">FLAC__file_encoder_set_sample_rate</a>(<a class="code" href="structFLAC____FileEncoder.html">FLAC__FileEncoder</a> *encoder, <font class="keywordtype">unsigned</font> value);
100
00303 FLAC_API FLAC__bool <a class="code" href="file__encoder_8h.html#a11">FLAC__file_encoder_set_blocksize</a>(<a class="code" href="structFLAC____FileEncoder.html">FLAC__FileEncoder</a> *encoder, <font class="keywordtype">unsigned</font> value);
102
00316 FLAC_API FLAC__bool <a class="code" href="file__encoder_8h.html#a12">FLAC__file_encoder_set_max_lpc_order</a>(<a class="code" href="structFLAC____FileEncoder.html">FLAC__FileEncoder</a> *encoder, <font class="keywordtype">unsigned</font> value);
104
00333 FLAC_API FLAC__bool <a class="code" href="file__encoder_8h.html#a13">FLAC__file_encoder_set_qlp_coeff_precision</a>(<a class="code" href="structFLAC____FileEncoder.html">FLAC__FileEncoder</a> *encoder, <font class="keywordtype">unsigned</font> value);
106
00346 FLAC_API FLAC__bool <a class="code" href="file__encoder_8h.html#a14">FLAC__file_encoder_set_do_qlp_coeff_prec_search</a>(<a class="code" href="structFLAC____FileEncoder.html">FLAC__FileEncoder</a> *encoder, FLAC__bool value);
108
00359 FLAC_API FLAC__bool <a class="code" href="file__encoder_8h.html#a15">FLAC__file_encoder_set_do_escape_coding</a>(<a class="code" href="structFLAC____FileEncoder.html">FLAC__FileEncoder</a> *encoder, FLAC__bool value);
110
00372 FLAC_API FLAC__bool <a class="code" href="file__encoder_8h.html#a16">FLAC__file_encoder_set_do_exhaustive_model_search</a>(<a class="code" href="structFLAC____FileEncoder.html">FLAC__FileEncoder</a> *encoder, FLAC__bool value);
112
00385 FLAC_API FLAC__bool <a class="code" href="file__encoder_8h.html#a17">FLAC__file_encoder_set_min_residual_partition_order</a>(<a class="code" href="structFLAC____FileEncoder.html">FLAC__FileEncoder</a> *encoder, <font class="keywordtype">unsigned</font> value);
114
00398 FLAC_API FLAC__bool <a class="code" href="file__encoder_8h.html#a18">FLAC__file_encoder_set_max_residual_partition_order</a>(<a class="code" href="structFLAC____FileEncoder.html">FLAC__FileEncoder</a> *encoder, <font class="keywordtype">unsigned</font> value);
116
00411 FLAC_API FLAC__bool <a class="code" href="file__encoder_8h.html#a19">FLAC__file_encoder_set_rice_parameter_search_dist</a>(<a class="code" href="structFLAC____FileEncoder.html">FLAC__FileEncoder</a> *encoder, <font class="keywordtype">unsigned</font> value);
118
00424 FLAC_API FLAC__bool <a class="code" href="file__encoder_8h.html#a20">FLAC__file_encoder_set_total_samples_estimate</a>(<a class="code" href="structFLAC____FileEncoder.html">FLAC__FileEncoder</a> *encoder, FLAC__uint64 value);
120
00438 FLAC_API FLAC__bool <a class="code" href="file__encoder_8h.html#a21">FLAC__file_encoder_set_metadata</a>(<a class="code" href="structFLAC____FileEncoder.html">FLAC__FileEncoder</a> *encoder, <a class="code" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> **metadata, <font class="keywordtype">unsigned</font> num_blocks);
122
00459 FLAC_API FLAC__bool <a class="code" href="file__encoder_8h.html#a22">FLAC__file_encoder_set_filename</a>(<a class="code" href="structFLAC____FileEncoder.html">FLAC__FileEncoder</a> *encoder, <font class="keyword">const</font> <font class="keywordtype">char</font> *value);
124
00480 FLAC_API FLAC__bool <a class="code" href="file__encoder_8h.html#a23">FLAC__file_encoder_set_progress_callback</a>(<a class="code" href="structFLAC____FileEncoder.html">FLAC__FileEncoder</a> *encoder, <a class="code" href="file__encoder_8h.html#a1">FLAC__FileEncoderProgressCallback</a> value);
126
00494 FLAC_API FLAC__bool <a class="code" href="file__encoder_8h.html#a24">FLAC__file_encoder_set_client_data</a>(<a class="code" href="structFLAC____FileEncoder.html">FLAC__FileEncoder</a> *encoder, <font class="keywordtype">void</font> *value);
128
00504 FLAC_API <a class="code" href="file__encoder_8h.html#a52">FLAC__FileEncoderState</a> <a class="code" href="file__encoder_8h.html#a25">FLAC__file_encoder_get_state</a>(<font class="keyword">const</font> <a class="code" href="structFLAC____FileEncoder.html">FLAC__FileEncoder</a> *encoder);
130
00516 FLAC_API <a class="code" href="seekable__stream__encoder_8h.html#a53">FLAC__SeekableStreamEncoderState</a> <a class="code" href="file__encoder_8h.html#a26">FLAC__file_encoder_get_seekable_stream_encoder_state</a>(<font class="keyword">const</font> <a class="code" href="structFLAC____FileEncoder.html">FLAC__FileEncoder</a> *encoder);
132
00529 FLAC_API <a class="code" href="FLAC_2stream__encoder_8h.html#a52">FLAC__StreamEncoderState</a> <a class="code" href="file__encoder_8h.html#a27">FLAC__file_encoder_get_stream_encoder_state</a>(<font class="keyword">const</font> <a class="code" href="structFLAC____FileEncoder.html">FLAC__FileEncoder</a> *encoder);
134
00543 FLAC_API <a class="code" href="FLAC_2stream__decoder_8h.html#a34">FLAC__StreamDecoderState</a> <a class="code" href="file__encoder_8h.html#a28">FLAC__file_encoder_get_verify_decoder_state</a>(<font class="keyword">const</font> <a class="code" href="structFLAC____FileEncoder.html">FLAC__FileEncoder</a> *encoder);
136
00556 FLAC_API <font class="keyword">const</font> <font class="keywordtype">char</font> *<a class="code" href="file__encoder_8h.html#a29">FLAC__file_encoder_get_resolved_state_string</a>(<font class="keyword">const</font> <a class="code" href="structFLAC____FileEncoder.html">FLAC__FileEncoder</a> *encoder);
138
00578 FLAC_API <font class="keywordtype">void</font> <a class="code" href="file__encoder_8h.html#a30">FLAC__file_encoder_get_verify_decoder_error_stats</a>(<font class="keyword">const</font> <a class="code" href="structFLAC____FileEncoder.html">FLAC__FileEncoder</a> *encoder, FLAC__uint64 *absolute_sample, <font class="keywordtype">unsigned</font> *frame_number, <font class="keywordtype">unsigned</font> *channel, <font class="keywordtype">unsigned</font> *sample, FLAC__int32 *expected, FLAC__int32 *got);
140
00590 FLAC_API FLAC__bool <a class="code" href="file__encoder_8h.html#a31">FLAC__file_encoder_get_verify</a>(<font class="keyword">const</font> <a class="code" href="structFLAC____FileEncoder.html">FLAC__FileEncoder</a> *encoder);
142
00602 FLAC_API FLAC__bool <a class="code" href="file__encoder_8h.html#a32">FLAC__file_encoder_get_streamable_subset</a>(<font class="keyword">const</font> <a class="code" href="structFLAC____FileEncoder.html">FLAC__FileEncoder</a> *encoder);
144
00614 FLAC_API FLAC__bool <a class="code" href="file__encoder_8h.html#a33">FLAC__file_encoder_get_do_mid_side_stereo</a>(<font class="keyword">const</font> <a class="code" href="structFLAC____FileEncoder.html">FLAC__FileEncoder</a> *encoder);
146
00626 FLAC_API FLAC__bool <a class="code" href="file__encoder_8h.html#a34">FLAC__file_encoder_get_loose_mid_side_stereo</a>(<font class="keyword">const</font> <a class="code" href="structFLAC____FileEncoder.html">FLAC__FileEncoder</a> *encoder);
148
00638 FLAC_API <font class="keywordtype">unsigned</font> <a class="code" href="file__encoder_8h.html#a35">FLAC__file_encoder_get_channels</a>(<font class="keyword">const</font> <a class="code" href="structFLAC____FileEncoder.html">FLAC__FileEncoder</a> *encoder);
150
00650 FLAC_API <font class="keywordtype">unsigned</font> <a class="code" href="file__encoder_8h.html#a36">FLAC__file_encoder_get_bits_per_sample</a>(<font class="keyword">const</font> <a class="code" href="structFLAC____FileEncoder.html">FLAC__FileEncoder</a> *encoder);
152
00662 FLAC_API <font class="keywordtype">unsigned</font> <a class="code" href="file__encoder_8h.html#a37">FLAC__file_encoder_get_sample_rate</a>(<font class="keyword">const</font> <a class="code" href="structFLAC____FileEncoder.html">FLAC__FileEncoder</a> *encoder);
154
00674 FLAC_API <font class="keywordtype">unsigned</font> <a class="code" href="file__encoder_8h.html#a38">FLAC__file_encoder_get_blocksize</a>(<font class="keyword">const</font> <a class="code" href="structFLAC____FileEncoder.html">FLAC__FileEncoder</a> *encoder);
156
00686 FLAC_API <font class="keywordtype">unsigned</font> <a class="code" href="file__encoder_8h.html#a39">FLAC__file_encoder_get_max_lpc_order</a>(<font class="keyword">const</font> <a class="code" href="structFLAC____FileEncoder.html">FLAC__FileEncoder</a> *encoder);
158
00698 FLAC_API <font class="keywordtype">unsigned</font> <a class="code" href="file__encoder_8h.html#a40">FLAC__file_encoder_get_qlp_coeff_precision</a>(<font class="keyword">const</font> <a class="code" href="structFLAC____FileEncoder.html">FLAC__FileEncoder</a> *encoder);
160
00710 FLAC_API FLAC__bool <a class="code" href="file__encoder_8h.html#a41">FLAC__file_encoder_get_do_qlp_coeff_prec_search</a>(<font class="keyword">const</font> <a class="code" href="structFLAC____FileEncoder.html">FLAC__FileEncoder</a> *encoder);
162
00722 FLAC_API FLAC__bool <a class="code" href="file__encoder_8h.html#a42">FLAC__file_encoder_get_do_escape_coding</a>(<font class="keyword">const</font> <a class="code" href="structFLAC____FileEncoder.html">FLAC__FileEncoder</a> *encoder);
164
00734 FLAC_API FLAC__bool <a class="code" href="file__encoder_8h.html#a43">FLAC__file_encoder_get_do_exhaustive_model_search</a>(<font class="keyword">const</font> <a class="code" href="structFLAC____FileEncoder.html">FLAC__FileEncoder</a> *encoder);
166
00746 FLAC_API <font class="keywordtype">unsigned</font> <a class="code" href="file__encoder_8h.html#a44">FLAC__file_encoder_get_min_residual_partition_order</a>(<font class="keyword">const</font> <a class="code" href="structFLAC____FileEncoder.html">FLAC__FileEncoder</a> *encoder);
168
00758 FLAC_API <font class="keywordtype">unsigned</font> <a class="code" href="file__encoder_8h.html#a45">FLAC__file_encoder_get_max_residual_partition_order</a>(<font class="keyword">const</font> <a class="code" href="structFLAC____FileEncoder.html">FLAC__FileEncoder</a> *encoder);
170
00770 FLAC_API <font class="keywordtype">unsigned</font> <a class="code" href="file__encoder_8h.html#a46">FLAC__file_encoder_get_rice_parameter_search_dist</a>(<font class="keyword">const</font> <a class="code" href="structFLAC____FileEncoder.html">FLAC__FileEncoder</a> *encoder);
172
00782 FLAC_API FLAC__uint64 <a class="code" href="file__encoder_8h.html#a47">FLAC__file_encoder_get_total_samples_estimate</a>(<font class="keyword">const</font> <a class="code" href="structFLAC____FileEncoder.html">FLAC__FileEncoder</a> *encoder);
174
00798 FLAC_API <a class="code" href="file__encoder_8h.html#a52">FLAC__FileEncoderState</a> <a class="code" href="file__encoder_8h.html#a48">FLAC__file_encoder_init</a>(<a class="code" href="structFLAC____FileEncoder.html">FLAC__FileEncoder</a> *encoder);
176
00814 FLAC_API <font class="keywordtype">void</font> <a class="code" href="file__encoder_8h.html#a49">FLAC__file_encoder_finish</a>(<a class="code" href="structFLAC____FileEncoder.html">FLAC__FileEncoder</a> *encoder);
178
00831 FLAC_API FLAC__bool <a class="code" href="file__encoder_8h.html#a50">FLAC__file_encoder_process</a>(<a class="code" href="structFLAC____FileEncoder.html">FLAC__FileEncoder</a> *encoder, <font class="keyword">const</font> FLAC__int32 * <font class="keyword">const</font> buffer[], <font class="keywordtype">unsigned</font> samples);
180
00851 FLAC_API FLAC__bool <a class="code" href="file__encoder_8h.html#a51">FLAC__file_encoder_process_interleaved</a>(<a class="code" href="structFLAC____FileEncoder.html">FLAC__FileEncoder</a> *encoder, <font class="keyword">const</font> FLAC__int32 buffer[], <font class="keywordtype">unsigned</font> samples);
182
00853 <font class="comment">/* \} */</font>
184
00855 <font class="preprocessor">#ifdef __cplusplus</font>
185
00856 <font class="preprocessor"></font>}
186
00857 <font class="preprocessor">#endif</font>
187
00858 <font class="preprocessor"></font>
188
00859 <font class="preprocessor">#endif</font>
189
</pre></div><hr><address><small>Generated on Sat Jan 25 10:44:47 2003 for FLAC by
190
<a href="http://www.doxygen.org/index.html">
191
<img src="doxygen.gif" alt="doxygen" align="middle" border=0
192
width=110 height=53></a>1.2.14 written by <a href="mailto:dimitri@stack.nl">Dimitri van Heesch</a>,
193
© 1997-2002</small></address>