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/OggFLAC++/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/OggFLAC++/encoder.h</h1><a href="OggFLAC++_2encoder_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre>00001 <font class="comment">/* libOggFLAC++ - Free Lossless Audio Codec + Ogg library</font>
10
00002 <font class="comment"> * Copyright (C) 2002,2003,2004,2005 Josh Coalson</font>
11
00003 <font class="comment"> *</font>
12
00004 <font class="comment"> * Redistribution and use in source and binary forms, with or without</font>
13
00005 <font class="comment"> * modification, are permitted provided that the following conditions</font>
14
00006 <font class="comment"> * are met:</font>
15
00007 <font class="comment"> *</font>
16
00008 <font class="comment"> * - Redistributions of source code must retain the above copyright</font>
17
00009 <font class="comment"> * notice, this list of conditions and the following disclaimer.</font>
18
00010 <font class="comment"> *</font>
19
00011 <font class="comment"> * - Redistributions in binary form must reproduce the above copyright</font>
20
00012 <font class="comment"> * notice, this list of conditions and the following disclaimer in the</font>
21
00013 <font class="comment"> * documentation and/or other materials provided with the distribution.</font>
22
00014 <font class="comment"> *</font>
23
00015 <font class="comment"> * - Neither the name of the Xiph.org Foundation nor the names of its</font>
24
00016 <font class="comment"> * contributors may be used to endorse or promote products derived from</font>
25
00017 <font class="comment"> * this software without specific prior written permission.</font>
26
00018 <font class="comment"> *</font>
27
00019 <font class="comment"> * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS</font>
28
00020 <font class="comment"> * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT</font>
29
00021 <font class="comment"> * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR</font>
30
00022 <font class="comment"> * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR</font>
31
00023 <font class="comment"> * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,</font>
32
00024 <font class="comment"> * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,</font>
33
00025 <font class="comment"> * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR</font>
34
00026 <font class="comment"> * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF</font>
35
00027 <font class="comment"> * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING</font>
36
00028 <font class="comment"> * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS</font>
37
00029 <font class="comment"> * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.</font>
38
00030 <font class="comment"> */</font>
40
00032 <font class="preprocessor">#ifndef OggFLACPP__ENCODER_H</font>
41
00033 <font class="preprocessor"></font><font class="preprocessor">#define OggFLACPP__ENCODER_H</font>
42
00034 <font class="preprocessor"></font>
43
00035 <font class="preprocessor">#include "export.h"</font>
45
00037 <font class="preprocessor">#include "<a class="code" href="OggFLAC_2file__encoder_8h.html">OggFLAC/file_encoder.h</a>"</font>
46
00038 <font class="preprocessor">#include "<a class="code" href="OggFLAC_2seekable__stream__encoder_8h.html">OggFLAC/seekable_stream_encoder.h</a>"</font>
47
00039 <font class="preprocessor">#include "<a class="code" href="OggFLAC_2stream__encoder_8h.html">OggFLAC/stream_encoder.h</a>"</font>
48
00040 <font class="preprocessor">#include "<a class="code" href="OggFLAC++_2decoder_8h.html">decoder.h</a>"</font>
49
00041 <font class="comment">// we only need these for the state abstractions really...</font>
50
00042 <font class="preprocessor">#include "<a class="code" href="OggFLAC++_2decoder_8h.html">FLAC++/decoder.h</a>"</font>
51
00043 <font class="preprocessor">#include "<a class="code" href="OggFLAC++_2encoder_8h.html">FLAC++/encoder.h</a>"</font>
54
00073 <font class="keyword">namespace </font>OggFLAC {
55
00074 <font class="keyword">namespace </font>Encoder {
57
00076 <font class="comment">// ============================================================</font>
58
00077 <font class="comment">//</font>
59
00078 <font class="comment">// Equivalent: OggFLAC__StreamEncoder</font>
60
00079 <font class="comment">//</font>
61
00080 <font class="comment">// ============================================================</font>
63
<a name="l00095"></a><a class="code" href="classOggFLAC_1_1Encoder_1_1Stream.html">00095</a> <font class="keyword">class </font>OggFLACPP_API Stream {
64
00096 <font class="keyword">public</font>:
65
00097 <font class="keyword">class </font>OggFLACPP_API State {
66
00098 <font class="keyword">public</font>:
67
00099 <font class="keyword">inline</font> State(::<a class="code" href="OggFLAC_2stream__encoder_8h.html#a53">OggFLAC__StreamEncoderState</a> state): state_(state) { }
68
00100 <font class="keyword">inline</font> <a class="code" href="OggFLAC_2stream__encoder_8h.html#a53">operator ::OggFLAC__StreamEncoderState</a>()<font class="keyword"> const </font>{ <font class="keywordflow">return</font> state_; }
69
00101 <font class="keyword">inline</font> <font class="keyword">const</font> <font class="keywordtype">char</font> *as_cstring()<font class="keyword"> const </font>{ return ::OggFLAC__StreamEncoderStateString[state_]; }
70
00102 <font class="keyword">inline</font> <font class="keyword">const</font> <font class="keywordtype">char</font> *resolved_as_cstring(<font class="keyword">const</font> Stream &encoder)<font class="keyword"> const </font>{ <a class="code" href="OggFLAC_2stream__encoder_8h.html#a30">return ::OggFLAC__stream_encoder_get_resolved_state_string</a>(encoder.encoder_); }
71
00103 <font class="keyword">protected</font>:
72
00104 ::OggFLAC__StreamEncoderState state_;
76
00108 <font class="keyword">virtual</font> ~Stream();
78
00110 <font class="keywordtype">bool</font> is_valid() <font class="keyword">const</font>;
79
00111 <font class="keyword">inline</font> operator bool()<font class="keyword"> const </font>{ <font class="keywordflow">return</font> is_valid(); }
81
00113 <font class="keywordtype">bool</font> set_serial_number(<font class="keywordtype">long</font> value);
82
00114 <font class="keywordtype">bool</font> set_verify(<font class="keywordtype">bool</font> value);
83
00115 <font class="keywordtype">bool</font> set_streamable_subset(<font class="keywordtype">bool</font> value);
84
00116 <font class="keywordtype">bool</font> set_do_mid_side_stereo(<font class="keywordtype">bool</font> value);
85
00117 <font class="keywordtype">bool</font> set_loose_mid_side_stereo(<font class="keywordtype">bool</font> value);
86
00118 <font class="keywordtype">bool</font> set_channels(<font class="keywordtype">unsigned</font> value);
87
00119 <font class="keywordtype">bool</font> set_bits_per_sample(<font class="keywordtype">unsigned</font> value);
88
00120 <font class="keywordtype">bool</font> set_sample_rate(<font class="keywordtype">unsigned</font> value);
89
00121 <font class="keywordtype">bool</font> set_blocksize(<font class="keywordtype">unsigned</font> value);
90
00122 <font class="keywordtype">bool</font> set_max_lpc_order(<font class="keywordtype">unsigned</font> value);
91
00123 <font class="keywordtype">bool</font> set_qlp_coeff_precision(<font class="keywordtype">unsigned</font> value);
92
00124 <font class="keywordtype">bool</font> set_do_qlp_coeff_prec_search(<font class="keywordtype">bool</font> value);
93
00125 <font class="keywordtype">bool</font> set_do_escape_coding(<font class="keywordtype">bool</font> value);
94
00126 <font class="keywordtype">bool</font> set_do_exhaustive_model_search(<font class="keywordtype">bool</font> value);
95
00127 <font class="keywordtype">bool</font> set_min_residual_partition_order(<font class="keywordtype">unsigned</font> value);
96
00128 <font class="keywordtype">bool</font> set_max_residual_partition_order(<font class="keywordtype">unsigned</font> value);
97
00129 <font class="keywordtype">bool</font> set_rice_parameter_search_dist(<font class="keywordtype">unsigned</font> value);
98
00130 <font class="keywordtype">bool</font> set_total_samples_estimate(FLAC__uint64 value);
99
00131 <font class="keywordtype">bool</font> set_metadata(::<a class="code" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> **metadata, <font class="keywordtype">unsigned</font> num_blocks);
101
00133 State get_state() <font class="keyword">const</font>;
102
00134 FLAC::Encoder::Stream::State get_FLAC_stream_encoder_state() <font class="keyword">const</font>;
103
00135 FLAC::Decoder::Stream::State get_verify_decoder_state() <font class="keyword">const</font>;
104
00136 <font class="keywordtype">void</font> get_verify_decoder_error_stats(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);
105
00137 <font class="keywordtype">bool</font> get_verify() <font class="keyword">const</font>;
106
00138 <font class="keywordtype">bool</font> get_streamable_subset() <font class="keyword">const</font>;
107
00139 <font class="keywordtype">bool</font> get_do_mid_side_stereo() <font class="keyword">const</font>;
108
00140 <font class="keywordtype">bool</font> get_loose_mid_side_stereo() <font class="keyword">const</font>;
109
00141 <font class="keywordtype">unsigned</font> get_channels() <font class="keyword">const</font>;
110
00142 <font class="keywordtype">unsigned</font> get_bits_per_sample() <font class="keyword">const</font>;
111
00143 <font class="keywordtype">unsigned</font> get_sample_rate() <font class="keyword">const</font>;
112
00144 <font class="keywordtype">unsigned</font> get_blocksize() <font class="keyword">const</font>;
113
00145 <font class="keywordtype">unsigned</font> get_max_lpc_order() <font class="keyword">const</font>;
114
00146 <font class="keywordtype">unsigned</font> get_qlp_coeff_precision() <font class="keyword">const</font>;
115
00147 <font class="keywordtype">bool</font> get_do_qlp_coeff_prec_search() <font class="keyword">const</font>;
116
00148 <font class="keywordtype">bool</font> get_do_escape_coding() <font class="keyword">const</font>;
117
00149 <font class="keywordtype">bool</font> get_do_exhaustive_model_search() <font class="keyword">const</font>;
118
00150 <font class="keywordtype">unsigned</font> get_min_residual_partition_order() <font class="keyword">const</font>;
119
00151 <font class="keywordtype">unsigned</font> get_max_residual_partition_order() <font class="keyword">const</font>;
120
00152 <font class="keywordtype">unsigned</font> get_rice_parameter_search_dist() <font class="keyword">const</font>;
121
00153 FLAC__uint64 get_total_samples_estimate() <font class="keyword">const</font>;
125
00157 <font class="keywordtype">void</font> finish();
127
00159 <font class="keywordtype">bool</font> process(<font class="keyword">const</font> FLAC__int32 * <font class="keyword">const</font> buffer[], <font class="keywordtype">unsigned</font> samples);
128
00160 <font class="keywordtype">bool</font> process_interleaved(<font class="keyword">const</font> FLAC__int32 buffer[], <font class="keywordtype">unsigned</font> samples);
129
00161 <font class="keyword">protected</font>:
130
00162 virtual ::FLAC__StreamEncoderWriteStatus write_callback(<font class="keyword">const</font> FLAC__byte buffer[], <font class="keywordtype">unsigned</font> bytes, <font class="keywordtype">unsigned</font> samples, <font class="keywordtype">unsigned</font> current_frame) = 0;
131
00163 <font class="keyword">virtual</font> <font class="keywordtype">void</font> metadata_callback(<font class="keyword">const</font> ::<a class="code" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> *metadata) = 0;
133
00165 <font class="preprocessor">#if (defined _MSC_VER) || (defined __GNUG__ && (__GNUG__ < 2 || (__GNUG__ == 2 && __GNUC_MINOR__ < 96))) || (defined __SUNPRO_CC)</font>
134
00166 <font class="preprocessor"></font> <font class="comment">// lame hack: some MSVC/GCC versions can't see a protected encoder_ from nested State::resolved_as_cstring()</font>
135
00167 <font class="keyword">friend</font> State;
136
00168 <font class="preprocessor">#endif</font>
137
00169 <font class="preprocessor"></font> ::OggFLAC__StreamEncoder *encoder_;
138
00170 <font class="keyword">private</font>:
139
00171 static ::FLAC__StreamEncoderWriteStatus write_callback_(<font class="keyword">const</font> ::<a class="code" href="structOggFLAC____StreamEncoder.html">OggFLAC__StreamEncoder</a> *encoder, <font class="keyword">const</font> FLAC__byte buffer[], <font class="keywordtype">unsigned</font> bytes, <font class="keywordtype">unsigned</font> samples, <font class="keywordtype">unsigned</font> current_frame, <font class="keywordtype">void</font> *client_data);
140
00172 <font class="keyword">static</font> <font class="keywordtype">void</font> metadata_callback_(<font class="keyword">const</font> ::<a class="code" href="structOggFLAC____StreamEncoder.html">OggFLAC__StreamEncoder</a> *encoder, <font class="keyword">const</font> ::<a class="code" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> *metadata, <font class="keywordtype">void</font> *client_data);
142
00174 <font class="comment">// Private and undefined so you can't use them:</font>
143
00175 Stream(<font class="keyword">const</font> Stream &);
144
00176 <font class="keywordtype">void</font> operator=(<font class="keyword">const</font> Stream &);
147
00179 <font class="comment">/* \} */</font>
149
<a name="l00194"></a><a class="code" href="classOggFLAC_1_1Encoder_1_1SeekableStream.html">00194</a> <font class="keyword">class </font>OggFLACPP_API SeekableStream {
150
00195 <font class="keyword">public</font>:
151
00196 <font class="keyword">class </font>OggFLACPP_API State {
152
00197 <font class="keyword">public</font>:
153
00198 <font class="keyword">inline</font> State(::<a class="code" href="OggFLAC_2seekable__stream__encoder_8h.html#a58">OggFLAC__SeekableStreamEncoderState</a> state): state_(state) { }
154
00199 <font class="keyword">inline</font> <a class="code" href="OggFLAC_2seekable__stream__encoder_8h.html#a58">operator ::OggFLAC__SeekableStreamEncoderState</a>()<font class="keyword"> const </font>{ <font class="keywordflow">return</font> state_; }
155
00200 <font class="keyword">inline</font> <font class="keyword">const</font> <font class="keywordtype">char</font> *as_cstring()<font class="keyword"> const </font>{ return ::OggFLAC__SeekableStreamEncoderStateString[state_]; }
156
00201 <font class="keyword">inline</font> <font class="keyword">const</font> <font class="keywordtype">char</font> *resolved_as_cstring(<font class="keyword">const</font> SeekableStream &encoder)<font class="keyword"> const </font>{ <a class="code" href="OggFLAC_2seekable__stream__encoder_8h.html#a35">return ::OggFLAC__seekable_stream_encoder_get_resolved_state_string</a>(encoder.encoder_); }
157
00202 <font class="keyword">protected</font>:
158
00203 ::OggFLAC__SeekableStreamEncoderState state_;
161
00206 SeekableStream();
162
00207 <font class="keyword">virtual</font> ~SeekableStream();
164
00209 <font class="keywordtype">bool</font> is_valid() <font class="keyword">const</font>;
165
00210 <font class="keyword">inline</font> operator bool()<font class="keyword"> const </font>{ <font class="keywordflow">return</font> is_valid(); }
167
00212 <font class="keywordtype">bool</font> set_serial_number(<font class="keywordtype">long</font> value);
168
00213 <font class="keywordtype">bool</font> set_verify(<font class="keywordtype">bool</font> value);
169
00214 <font class="keywordtype">bool</font> set_streamable_subset(<font class="keywordtype">bool</font> value);
170
00215 <font class="keywordtype">bool</font> set_do_mid_side_stereo(<font class="keywordtype">bool</font> value);
171
00216 <font class="keywordtype">bool</font> set_loose_mid_side_stereo(<font class="keywordtype">bool</font> value);
172
00217 <font class="keywordtype">bool</font> set_channels(<font class="keywordtype">unsigned</font> value);
173
00218 <font class="keywordtype">bool</font> set_bits_per_sample(<font class="keywordtype">unsigned</font> value);
174
00219 <font class="keywordtype">bool</font> set_sample_rate(<font class="keywordtype">unsigned</font> value);
175
00220 <font class="keywordtype">bool</font> set_blocksize(<font class="keywordtype">unsigned</font> value);
176
00221 <font class="keywordtype">bool</font> set_max_lpc_order(<font class="keywordtype">unsigned</font> value);
177
00222 <font class="keywordtype">bool</font> set_qlp_coeff_precision(<font class="keywordtype">unsigned</font> value);
178
00223 <font class="keywordtype">bool</font> set_do_qlp_coeff_prec_search(<font class="keywordtype">bool</font> value);
179
00224 <font class="keywordtype">bool</font> set_do_escape_coding(<font class="keywordtype">bool</font> value);
180
00225 <font class="keywordtype">bool</font> set_do_exhaustive_model_search(<font class="keywordtype">bool</font> value);
181
00226 <font class="keywordtype">bool</font> set_min_residual_partition_order(<font class="keywordtype">unsigned</font> value);
182
00227 <font class="keywordtype">bool</font> set_max_residual_partition_order(<font class="keywordtype">unsigned</font> value);
183
00228 <font class="keywordtype">bool</font> set_rice_parameter_search_dist(<font class="keywordtype">unsigned</font> value);
184
00229 <font class="keywordtype">bool</font> set_total_samples_estimate(FLAC__uint64 value);
185
00230 <font class="keywordtype">bool</font> set_metadata(::<a class="code" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> **metadata, <font class="keywordtype">unsigned</font> num_blocks);
187
00232 State get_state() <font class="keyword">const</font>;
188
00233 FLAC::Encoder::Stream::State get_FLAC_stream_encoder_state() <font class="keyword">const</font>;
189
00234 FLAC::Decoder::Stream::State get_verify_decoder_state() <font class="keyword">const</font>;
190
00235 <font class="keywordtype">void</font> get_verify_decoder_error_stats(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);
191
00236 <font class="keywordtype">bool</font> get_verify() <font class="keyword">const</font>;
192
00237 <font class="keywordtype">bool</font> get_streamable_subset() <font class="keyword">const</font>;
193
00238 <font class="keywordtype">bool</font> get_do_mid_side_stereo() <font class="keyword">const</font>;
194
00239 <font class="keywordtype">bool</font> get_loose_mid_side_stereo() <font class="keyword">const</font>;
195
00240 <font class="keywordtype">unsigned</font> get_channels() <font class="keyword">const</font>;
196
00241 <font class="keywordtype">unsigned</font> get_bits_per_sample() <font class="keyword">const</font>;
197
00242 <font class="keywordtype">unsigned</font> get_sample_rate() <font class="keyword">const</font>;
198
00243 <font class="keywordtype">unsigned</font> get_blocksize() <font class="keyword">const</font>;
199
00244 <font class="keywordtype">unsigned</font> get_max_lpc_order() <font class="keyword">const</font>;
200
00245 <font class="keywordtype">unsigned</font> get_qlp_coeff_precision() <font class="keyword">const</font>;
201
00246 <font class="keywordtype">bool</font> get_do_qlp_coeff_prec_search() <font class="keyword">const</font>;
202
00247 <font class="keywordtype">bool</font> get_do_escape_coding() <font class="keyword">const</font>;
203
00248 <font class="keywordtype">bool</font> get_do_exhaustive_model_search() <font class="keyword">const</font>;
204
00249 <font class="keywordtype">unsigned</font> get_min_residual_partition_order() <font class="keyword">const</font>;
205
00250 <font class="keywordtype">unsigned</font> get_max_residual_partition_order() <font class="keyword">const</font>;
206
00251 <font class="keywordtype">unsigned</font> get_rice_parameter_search_dist() <font class="keyword">const</font>;
207
00252 FLAC__uint64 get_total_samples_estimate() <font class="keyword">const</font>;
211
00256 <font class="keywordtype">void</font> finish();
213
00258 <font class="keywordtype">bool</font> process(<font class="keyword">const</font> FLAC__int32 * <font class="keyword">const</font> buffer[], <font class="keywordtype">unsigned</font> samples);
214
00259 <font class="keywordtype">bool</font> process_interleaved(<font class="keyword">const</font> FLAC__int32 buffer[], <font class="keywordtype">unsigned</font> samples);
215
00260 <font class="keyword">protected</font>:
216
00261 virtual ::OggFLAC__SeekableStreamEncoderReadStatus read_callback(FLAC__byte buffer[], <font class="keywordtype">unsigned</font> *bytes) = 0;
217
00262 virtual ::FLAC__SeekableStreamEncoderSeekStatus seek_callback(FLAC__uint64 absolute_byte_offset) = 0;
218
00263 virtual ::FLAC__SeekableStreamEncoderTellStatus tell_callback(FLAC__uint64 *absolute_byte_offset) = 0;
219
00264 virtual ::FLAC__StreamEncoderWriteStatus write_callback(<font class="keyword">const</font> FLAC__byte buffer[], <font class="keywordtype">unsigned</font> bytes, <font class="keywordtype">unsigned</font> samples, <font class="keywordtype">unsigned</font> current_frame) = 0;
221
00266 <font class="preprocessor">#if (defined _MSC_VER) || (defined __GNUG__ && (__GNUG__ < 2 || (__GNUG__ == 2 && __GNUC_MINOR__ < 96))) || (defined __SUNPRO_CC)</font>
222
00267 <font class="preprocessor"></font> <font class="comment">// lame hack: some MSVC/GCC versions can't see a protected encoder_ from nested State::resolved_as_cstring()</font>
223
00268 <font class="keyword">friend</font> State;
224
00269 <font class="preprocessor">#endif</font>
225
00270 <font class="preprocessor"></font> ::OggFLAC__SeekableStreamEncoder *encoder_;
226
00271 <font class="keyword">private</font>:
227
00272 static ::OggFLAC__SeekableStreamEncoderReadStatus read_callback_(<font class="keyword">const</font> <a class="code" href="structOggFLAC____SeekableStreamEncoder.html">OggFLAC__SeekableStreamEncoder</a> *encoder, FLAC__byte buffer[], <font class="keywordtype">unsigned</font> *bytes, <font class="keywordtype">void</font> *client_data);
228
00273 static ::FLAC__SeekableStreamEncoderSeekStatus seek_callback_(<font class="keyword">const</font> <a class="code" href="structOggFLAC____SeekableStreamEncoder.html">OggFLAC__SeekableStreamEncoder</a> *encoder, FLAC__uint64 absolute_byte_offset, <font class="keywordtype">void</font> *client_data);
229
00274 static ::FLAC__SeekableStreamEncoderTellStatus tell_callback_(<font class="keyword">const</font> <a class="code" href="structOggFLAC____SeekableStreamEncoder.html">OggFLAC__SeekableStreamEncoder</a> *encoder, FLAC__uint64 *absolute_byte_offset, <font class="keywordtype">void</font> *client_data);
230
00275 static ::FLAC__StreamEncoderWriteStatus write_callback_(<font class="keyword">const</font> <a class="code" href="structOggFLAC____SeekableStreamEncoder.html">OggFLAC__SeekableStreamEncoder</a> *encoder, <font class="keyword">const</font> FLAC__byte buffer[], <font class="keywordtype">unsigned</font> bytes, <font class="keywordtype">unsigned</font> samples, <font class="keywordtype">unsigned</font> current_frame, <font class="keywordtype">void</font> *client_data);
232
00277 <font class="comment">// Private and undefined so you can't use them:</font>
233
00278 SeekableStream(<font class="keyword">const</font> SeekableStream &);
234
00279 <font class="keywordtype">void</font> operator=(<font class="keyword">const</font> SeekableStream &);
237
00282 <font class="comment">/* \} */</font>
239
<a name="l00297"></a><a class="code" href="classOggFLAC_1_1Encoder_1_1File.html">00297</a> <font class="keyword">class </font>OggFLACPP_API File {
240
00298 <font class="keyword">public</font>:
241
00299 <font class="keyword">class </font>OggFLACPP_API State {
242
00300 <font class="keyword">public</font>:
243
00301 <font class="keyword">inline</font> State(::<a class="code" href="OggFLAC_2file__encoder_8h.html#a53">OggFLAC__FileEncoderState</a> state): state_(state) { }
244
00302 <font class="keyword">inline</font> <a class="code" href="OggFLAC_2file__encoder_8h.html#a53">operator ::OggFLAC__FileEncoderState</a>()<font class="keyword"> const </font>{ <font class="keywordflow">return</font> state_; }
245
00303 <font class="keyword">inline</font> <font class="keyword">const</font> <font class="keywordtype">char</font> *as_cstring()<font class="keyword"> const </font>{ return ::OggFLAC__FileEncoderStateString[state_]; }
246
00304 <font class="keyword">inline</font> <font class="keyword">const</font> <font class="keywordtype">char</font> *resolved_as_cstring(<font class="keyword">const</font> File &encoder)<font class="keyword"> const </font>{ <a class="code" href="OggFLAC_2file__encoder_8h.html#a30">return ::OggFLAC__file_encoder_get_resolved_state_string</a>(encoder.encoder_); }
247
00305 <font class="keyword">protected</font>:
248
00306 ::OggFLAC__FileEncoderState state_;
252
00310 <font class="keyword">virtual</font> ~File();
254
00312 <font class="keywordtype">bool</font> is_valid() <font class="keyword">const</font>;
255
00313 <font class="keyword">inline</font> operator bool()<font class="keyword"> const </font>{ <font class="keywordflow">return</font> is_valid(); }
257
00315 <font class="keywordtype">bool</font> set_serial_number(<font class="keywordtype">long</font> value);
258
00316 <font class="keywordtype">bool</font> set_verify(<font class="keywordtype">bool</font> value);
259
00317 <font class="keywordtype">bool</font> set_streamable_subset(<font class="keywordtype">bool</font> value);
260
00318 <font class="keywordtype">bool</font> set_do_mid_side_stereo(<font class="keywordtype">bool</font> value);
261
00319 <font class="keywordtype">bool</font> set_loose_mid_side_stereo(<font class="keywordtype">bool</font> value);
262
00320 <font class="keywordtype">bool</font> set_channels(<font class="keywordtype">unsigned</font> value);
263
00321 <font class="keywordtype">bool</font> set_bits_per_sample(<font class="keywordtype">unsigned</font> value);
264
00322 <font class="keywordtype">bool</font> set_sample_rate(<font class="keywordtype">unsigned</font> value);
265
00323 <font class="keywordtype">bool</font> set_blocksize(<font class="keywordtype">unsigned</font> value);
266
00324 <font class="keywordtype">bool</font> set_max_lpc_order(<font class="keywordtype">unsigned</font> value);
267
00325 <font class="keywordtype">bool</font> set_qlp_coeff_precision(<font class="keywordtype">unsigned</font> value);
268
00326 <font class="keywordtype">bool</font> set_do_qlp_coeff_prec_search(<font class="keywordtype">bool</font> value);
269
00327 <font class="keywordtype">bool</font> set_do_escape_coding(<font class="keywordtype">bool</font> value);
270
00328 <font class="keywordtype">bool</font> set_do_exhaustive_model_search(<font class="keywordtype">bool</font> value);
271
00329 <font class="keywordtype">bool</font> set_min_residual_partition_order(<font class="keywordtype">unsigned</font> value);
272
00330 <font class="keywordtype">bool</font> set_max_residual_partition_order(<font class="keywordtype">unsigned</font> value);
273
00331 <font class="keywordtype">bool</font> set_rice_parameter_search_dist(<font class="keywordtype">unsigned</font> value);
274
00332 <font class="keywordtype">bool</font> set_total_samples_estimate(FLAC__uint64 value);
275
00333 <font class="keywordtype">bool</font> set_metadata(::<a class="code" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> **metadata, <font class="keywordtype">unsigned</font> num_blocks);
276
00334 <font class="keywordtype">bool</font> set_filename(<font class="keyword">const</font> <font class="keywordtype">char</font> *value);
278
00336 State get_state() <font class="keyword">const</font>;
279
00337 SeekableStream::State get_seekable_stream_encoder_state() <font class="keyword">const</font>;
280
00338 FLAC::Encoder::Stream::State get_FLAC_stream_encoder_state() <font class="keyword">const</font>;
281
00339 FLAC::Decoder::Stream::State get_verify_decoder_state() <font class="keyword">const</font>;
282
00340 <font class="keywordtype">void</font> get_verify_decoder_error_stats(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);
283
00341 <font class="keywordtype">bool</font> get_verify() <font class="keyword">const</font>;
284
00342 <font class="keywordtype">bool</font> get_streamable_subset() <font class="keyword">const</font>;
285
00343 <font class="keywordtype">bool</font> get_do_mid_side_stereo() <font class="keyword">const</font>;
286
00344 <font class="keywordtype">bool</font> get_loose_mid_side_stereo() <font class="keyword">const</font>;
287
00345 <font class="keywordtype">unsigned</font> get_channels() <font class="keyword">const</font>;
288
00346 <font class="keywordtype">unsigned</font> get_bits_per_sample() <font class="keyword">const</font>;
289
00347 <font class="keywordtype">unsigned</font> get_sample_rate() <font class="keyword">const</font>;
290
00348 <font class="keywordtype">unsigned</font> get_blocksize() <font class="keyword">const</font>;
291
00349 <font class="keywordtype">unsigned</font> get_max_lpc_order() <font class="keyword">const</font>;
292
00350 <font class="keywordtype">unsigned</font> get_qlp_coeff_precision() <font class="keyword">const</font>;
293
00351 <font class="keywordtype">bool</font> get_do_qlp_coeff_prec_search() <font class="keyword">const</font>;
294
00352 <font class="keywordtype">bool</font> get_do_escape_coding() <font class="keyword">const</font>;
295
00353 <font class="keywordtype">bool</font> get_do_exhaustive_model_search() <font class="keyword">const</font>;
296
00354 <font class="keywordtype">unsigned</font> get_min_residual_partition_order() <font class="keyword">const</font>;
297
00355 <font class="keywordtype">unsigned</font> get_max_residual_partition_order() <font class="keyword">const</font>;
298
00356 <font class="keywordtype">unsigned</font> get_rice_parameter_search_dist() <font class="keyword">const</font>;
299
00357 FLAC__uint64 get_total_samples_estimate() <font class="keyword">const</font>;
303
00361 <font class="keywordtype">void</font> finish();
305
00363 <font class="keywordtype">bool</font> process(<font class="keyword">const</font> FLAC__int32 * <font class="keyword">const</font> buffer[], <font class="keywordtype">unsigned</font> samples);
306
00364 <font class="keywordtype">bool</font> process_interleaved(<font class="keyword">const</font> FLAC__int32 buffer[], <font class="keywordtype">unsigned</font> samples);
307
00365 <font class="keyword">protected</font>:
308
00366 <font class="keyword">virtual</font> <font class="keywordtype">void</font> progress_callback(FLAC__uint64 bytes_written, FLAC__uint64 samples_written, <font class="keywordtype">unsigned</font> frames_written, <font class="keywordtype">unsigned</font> total_frames_estimate);
310
00368 <font class="preprocessor">#if (defined _MSC_VER) || (defined __GNUG__ && (__GNUG__ < 2 || (__GNUG__ == 2 && __GNUC_MINOR__ < 96))) || (defined __SUNPRO_CC)</font>
311
00369 <font class="preprocessor"></font> <font class="comment">// lame hack: some MSVC/GCC versions can't see a protected encoder_ from nested State::resolved_as_cstring()</font>
312
00370 <font class="keyword">friend</font> State;
313
00371 <font class="preprocessor">#endif</font>
314
00372 <font class="preprocessor"></font> ::OggFLAC__FileEncoder *encoder_;
315
00373 <font class="keyword">private</font>:
316
00374 <font class="keyword">static</font> <font class="keywordtype">void</font> progress_callback_(<font class="keyword">const</font> ::<a class="code" href="structOggFLAC____FileEncoder.html">OggFLAC__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);
318
00376 <font class="comment">// Private and undefined so you can't use them:</font>
319
00377 File(<font class="keyword">const</font> Stream &);
320
00378 <font class="keywordtype">void</font> operator=(<font class="keyword">const</font> Stream &);
323
00381 <font class="comment">/* \} */</font>
328
00386 <font class="preprocessor">#endif</font>
329
</pre></div><hr><address><small>Generated on Fri Feb 4 18:39:09 2005 for FLAC by
330
<a href="http://www.doxygen.org/index.html">
331
<img src="doxygen.gif" alt="doxygen" align="middle" border=0
332
width=110 height=53></a>1.2.14 written by <a href="mailto:dimitri@stack.nl">Dimitri van Heesch</a>,
333
© 1997-2002</small></address>