~ubuntu-branches/ubuntu/precise/flac/precise-updates

« back to all changes in this revision

Viewing changes to doc/html/api/OggFLAC++_2encoder_8h-source.html

  • Committer: Bazaar Package Importer
  • Author(s): Joshua Kwan
  • Date: 2007-05-29 22:56:36 UTC
  • mfrom: (1.1.4 upstream)
  • Revision ID: james.westby@ubuntu.com-20070529225636-ljeff8xxip09qaap
Tags: 1.1.4-1
* New upstream release. closes: #405167, #411311
  - libOggFLAC and libOggFLAC++ have been merged into libFLAC, so
    remove their corresponding packages.
  - Because of the API changes required to effect the above, there has
    been yet another soname bump. libflac7 -> libflac8 and
    libflac++5 -> libflac++6. Emails have been dispatched to the
    maintainers of dependent packages.
* Some notes on patches that were removed:
  - 02_stdin_stdout, 06_manpage_mention_utf8_convert: merged upstream
  - 08_manpage_warnings: Upstream has changed the manpage so it defintely
    can't fit in in 80 cols, so just forget about it. We'll live.
  - 05_eof_warnings_are_errors: Upstream decided to add a -w option to
    flac to treat all warnings as errors. I am going to defer to that
    for now, but if people think it's stupid let me know and I'll port
    the patch forward.
  - 04_stack_smasher: was a backport from 1.1.3, so it's obsolete.

Show diffs side-by-side

added added

removed removed

Lines of Context:
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">
5
 
</head><body>
6
 
<!-- Generated by Doxygen 1.2.14 -->
7
 
<center>
8
 
<a class="qindex" href="index.html">Main Page</a> &nbsp; <a class="qindex" href="modules.html">Modules</a> &nbsp; <a class="qindex" href="hierarchy.html">Class Hierarchy</a> &nbsp; <a class="qindex" href="classes.html">Alphabetical List</a> &nbsp; <a class="qindex" href="annotated.html">Compound List</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="functions.html">Compound Members</a> &nbsp; <a class="qindex" href="globals.html">File Members</a> &nbsp; </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>
39
 
00031 
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>
44
 
00036 
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>
52
 
00044 
53
 
00045 
54
 
00073 <font class="keyword">namespace </font>OggFLAC {
55
 
00074     <font class="keyword">namespace </font>Encoder {
56
 
00075 
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>
62
 
00081 
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 &amp;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_;
73
 
00105             };
74
 
00106 
75
 
00107             Stream();
76
 
00108             <font class="keyword">virtual</font> ~Stream();
77
 
00109 
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(); }
80
 
00112 
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);
100
 
00132 
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>;
122
 
00154 
123
 
00155             State init();
124
 
00156 
125
 
00157             <font class="keywordtype">void</font> finish();
126
 
00158 
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;
132
 
00164 
133
 
00165 <font class="preprocessor">#if (defined _MSC_VER) || (defined __GNUG__ &amp;&amp; (__GNUG__ &lt; 2 || (__GNUG__ == 2 &amp;&amp; __GNUC_MINOR__ &lt; 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);
141
 
00173 
142
 
00174             <font class="comment">// Private and undefined so you can't use them:</font>
143
 
00175             Stream(<font class="keyword">const</font> Stream &amp;);
144
 
00176             <font class="keywordtype">void</font> operator=(<font class="keyword">const</font> Stream &amp;);
145
 
00177         };
146
 
00178 
147
 
00179         <font class="comment">/* \} */</font>
148
 
00180 
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 &amp;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_;
159
 
00204             };
160
 
00205 
161
 
00206             SeekableStream();
162
 
00207             <font class="keyword">virtual</font> ~SeekableStream();
163
 
00208 
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(); }
166
 
00211 
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);
186
 
00231 
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>;
208
 
00253 
209
 
00254             State init();
210
 
00255 
211
 
00256             <font class="keywordtype">void</font> finish();
212
 
00257 
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;
220
 
00265 
221
 
00266 <font class="preprocessor">#if (defined _MSC_VER) || (defined __GNUG__ &amp;&amp; (__GNUG__ &lt; 2 || (__GNUG__ == 2 &amp;&amp; __GNUC_MINOR__ &lt; 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);
231
 
00276 
232
 
00277             <font class="comment">// Private and undefined so you can't use them:</font>
233
 
00278             SeekableStream(<font class="keyword">const</font> SeekableStream &amp;);
234
 
00279             <font class="keywordtype">void</font> operator=(<font class="keyword">const</font> SeekableStream &amp;);
235
 
00280         };
236
 
00281 
237
 
00282         <font class="comment">/* \} */</font>
238
 
00283 
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 &amp;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_;
249
 
00307             };
250
 
00308 
251
 
00309             File();
252
 
00310             <font class="keyword">virtual</font> ~File();
253
 
00311 
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(); }
256
 
00314 
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);
277
 
00335 
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>;
300
 
00358 
301
 
00359             State init();
302
 
00360 
303
 
00361             <font class="keywordtype">void</font> finish();
304
 
00362 
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);
309
 
00367 
310
 
00368 <font class="preprocessor">#if (defined _MSC_VER) || (defined __GNUG__ &amp;&amp; (__GNUG__ &lt; 2 || (__GNUG__ == 2 &amp;&amp; __GNUC_MINOR__ &lt; 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);
317
 
00375 
318
 
00376             <font class="comment">// Private and undefined so you can't use them:</font>
319
 
00377             File(<font class="keyword">const</font> Stream &amp;);
320
 
00378             <font class="keywordtype">void</font> operator=(<font class="keyword">const</font> Stream &amp;);
321
 
00379         };
322
 
00380 
323
 
00381         <font class="comment">/* \} */</font>
324
 
00382 
325
 
00383     }
326
 
00384 }
327
 
00385 
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
 
 &copy;&nbsp;1997-2002</small></address>
334
 
</body>
335
 
</html>