1159b3361Sopenharmony_ci<html>
2159b3361Sopenharmony_ci
3159b3361Sopenharmony_ci<head>
4159b3361Sopenharmony_ci<meta http-equiv="Content-Type"
5159b3361Sopenharmony_cicontent="text/html; charset=iso-8859-1">
6159b3361Sopenharmony_ci<meta name="GENERATOR" content="Microsoft FrontPage Express 2.0">
7159b3361Sopenharmony_ci<title>Lame-</title>
8159b3361Sopenharmony_ci</head>
9159b3361Sopenharmony_ci
10159b3361Sopenharmony_ci<body bgcolor="#FFFFFF">
11159b3361Sopenharmony_ci
12159b3361Sopenharmony_ci<p align="center">&nbsp; </p>
13159b3361Sopenharmony_ci
14159b3361Sopenharmony_ci<p align="center"><font size="7">Lame-enc DLL</font> <br>
15159b3361Sopenharmony_ci<font size="5">Interface version 1.32</font> (and above)<br>
16159b3361Sopenharmony_ci(Lame engine version: 3.93 or higher) <br>
17159b3361Sopenharmony_ci<font size="6">Programmers Manual</font></p>
18159b3361Sopenharmony_ci
19159b3361Sopenharmony_ci<p align="center"><i>The lame_enc.dll and this manual is
20159b3361Sopenharmony_cicopyright by Albert L Faber<br>
21159b3361Sopenharmony_ciOriginally the the DLL interface is modeled after the BladeEnc
22159b3361Sopenharmony_ciDLL interface<br>
23159b3361Sopenharmony_ciwhich is copyrighted by Tord Jansson and Jukka Poikolainen<br>
24159b3361Sopenharmony_ciThis document and the DLL interface may be distributed freely</i>
25159b3361Sopenharmony_ci<br>
26159b3361Sopenharmony_ci<i>as long as modifications are released under the LGPL license.</i>
27159b3361Sopenharmony_ci</p>
28159b3361Sopenharmony_ci
29159b3361Sopenharmony_ci<p align="center">&nbsp; </p>
30159b3361Sopenharmony_ci
31159b3361Sopenharmony_ci<p align="center"><b>Homepage</b>: <a
32159b3361Sopenharmony_cihref="http://www.cdex.n3.net">http://www.cdex.n3.net</a><br>
33159b3361Sopenharmony_ci<b>E-mail:</b> mailto: <a
34159b3361Sopenharmony_cihref="mailto:afaber@users.sourceforge.net">afaber@users.sourceforge.net</a>
35159b3361Sopenharmony_ci</p>
36159b3361Sopenharmony_ci
37159b3361Sopenharmony_ci<p><br>
38159b3361Sopenharmony_ci<br>
39159b3361Sopenharmony_ci<br>
40159b3361Sopenharmony_ci<br>
41159b3361Sopenharmony_ci</p>
42159b3361Sopenharmony_ci
43159b3361Sopenharmony_ci<p><font size="5">Distribution</font> </p>
44159b3361Sopenharmony_ci
45159b3361Sopenharmony_ci<p>People and companies&nbsp; who wants to distribute
46159b3361Sopenharmony_cilame_enc.dll with their commercial products are free to do so as
47159b3361Sopenharmony_cifar as I'm concerned (LGPL license), but should be aware that
48159b3361Sopenharmony_cilame_enc.dll might infringe certain MP3 related software patents
49159b3361Sopenharmony_ciheld by Fraunhofer IIS in certain countries. </p>
50159b3361Sopenharmony_ci
51159b3361Sopenharmony_ci<p><br>
52159b3361Sopenharmony_ci&nbsp; </p>
53159b3361Sopenharmony_ci
54159b3361Sopenharmony_ci<p><font size="5">Disclaimer</font> </p>
55159b3361Sopenharmony_ci
56159b3361Sopenharmony_ci<p>lame_enc.dll and this manual is distributed 'as is' with no
57159b3361Sopenharmony_ciwarranty of any kind. The Author is not to be held responsible
58159b3361Sopenharmony_cifor the result of any use or misuse of this product. <br>
59159b3361Sopenharmony_ci&nbsp; <br>
60159b3361Sopenharmony_ci&nbsp; </p>
61159b3361Sopenharmony_ci
62159b3361Sopenharmony_ci<p><font size="5">Current Bugs and Limitations</font> </p>
63159b3361Sopenharmony_ci
64159b3361Sopenharmony_ci<p>Although the interface is designed to be able to handle
65159b3361Sopenharmony_cimultiple parallel streams it can't be done yet due to limitations
66159b3361Sopenharmony_ciin the engine, only one stream is allowed. <br>
67159b3361Sopenharmony_ci&nbsp; </p>
68159b3361Sopenharmony_ci
69159b3361Sopenharmony_ci<p><font size="5">Future Compatibility</font> </p>
70159b3361Sopenharmony_ci
71159b3361Sopenharmony_ci<p>This interface should be compatible with all future versions
72159b3361Sopenharmony_ciof lame_enc.DLL without any need to recompile your programs. You
73159b3361Sopenharmony_cishould therefore <b>not</b> check the version number upon start
74159b3361Sopenharmony_ciand prevent users from running your program with a later version
75159b3361Sopenharmony_ciof lame_enc.DLL. <br>
76159b3361Sopenharmony_ci&nbsp; </p>
77159b3361Sopenharmony_ci
78159b3361Sopenharmony_ci<hr>
79159b3361Sopenharmony_ci
80159b3361Sopenharmony_ci<p><font size="5">How to use the DLL</font> </p>
81159b3361Sopenharmony_ci
82159b3361Sopenharmony_ci<p>1. Fill in a <a href="#The BE_CONFIG Structure">BE_CONFIG </a>structure
83159b3361Sopenharmony_ciand send it to <a href="#beInitStream()">beInitStream()</a>. Make
84159b3361Sopenharmony_cisure that BE_ERR_SUCCESSFUL is returned. </p>
85159b3361Sopenharmony_ci
86159b3361Sopenharmony_ci<p>2. Reserve at least the amount of memory returned in
87159b3361Sopenharmony_cidwBufferSize as your output buffer. </p>
88159b3361Sopenharmony_ci
89159b3361Sopenharmony_ci<p>3. Call <a href="#beEncodeChunk()">beEncodeChunk()</a> until
90159b3361Sopenharmony_ciyou've encoded everything you want. </p>
91159b3361Sopenharmony_ci
92159b3361Sopenharmony_ci<p>4. Call <a href="#beDeinitStream()">beDeinitStream()</a> to
93159b3361Sopenharmony_cimake sure that all encoded data is flushed out before closing the
94159b3361Sopenharmony_cistream. </p>
95159b3361Sopenharmony_ci
96159b3361Sopenharmony_ci<p>5. Close the stream using <a href="#beCloseStream()">beCloseStream()
97159b3361Sopenharmony_ci</a></p>
98159b3361Sopenharmony_ci
99159b3361Sopenharmony_ci<p>6. Finally, call the <a href="#beWriteVBRHeader()">beWriteVBRHeader()</a>
100159b3361Sopenharmony_cifunctions, to insert the INFO tag MP3 Header. This is an
101159b3361Sopenharmony_ciextension of the Xing VBR tag which is also used for CBR
102159b3361Sopenharmony_ciencodings. This call can only be omitted if the INFO tag was
103159b3361Sopenharmony_ciexplicilty disabled in the BE_CONFIG Structure.</p>
104159b3361Sopenharmony_ci
105159b3361Sopenharmony_ci<p>A handy feature is the available <a
106159b3361Sopenharmony_cihref="#Lame_enc.dll debug option">Lame_enc.dll debug option</a>,
107159b3361Sopenharmony_ciwhich will dump the important lame internal settings to a text
108159b3361Sopenharmony_cifile.<br>
109159b3361Sopenharmony_ci&nbsp; </p>
110159b3361Sopenharmony_ci
111159b3361Sopenharmony_ci<p>&nbsp;</p>
112159b3361Sopenharmony_ci
113159b3361Sopenharmony_ci<p><font size="5">Return Values</font> </p>
114159b3361Sopenharmony_ci
115159b3361Sopenharmony_ci<p>See the header-file for a complete list of function return
116159b3361Sopenharmony_civalues. All functions should return BE_ERR_SUCCESSFUL unless
117159b3361Sopenharmony_cisomething went wrong. <br>
118159b3361Sopenharmony_ci&nbsp; </p>
119159b3361Sopenharmony_ci
120159b3361Sopenharmony_ci<hr>
121159b3361Sopenharmony_ci
122159b3361Sopenharmony_ci<h1><a name="Type definitions"><font size="5">Type definitions</font></a></h1>
123159b3361Sopenharmony_ci
124159b3361Sopenharmony_ci<p>The DLL is by default compiled with the MS Visual C/C++
125159b3361Sopenharmony_cicompiler, which has the following type definitions:</p>
126159b3361Sopenharmony_ci
127159b3361Sopenharmony_ci<table border="0">
128159b3361Sopenharmony_ci    <tr>
129159b3361Sopenharmony_ci        <td>Type </td>
130159b3361Sopenharmony_ci        <td>Description</td>
131159b3361Sopenharmony_ci    </tr>
132159b3361Sopenharmony_ci    <tr>
133159b3361Sopenharmony_ci        <td>CHAR</td>
134159b3361Sopenharmony_ci        <td>signed char (8 bits)</td>
135159b3361Sopenharmony_ci    </tr>
136159b3361Sopenharmony_ci    <tr>
137159b3361Sopenharmony_ci        <td>BYTE</td>
138159b3361Sopenharmony_ci        <td>unsigned char (8 bits)</td>
139159b3361Sopenharmony_ci    </tr>
140159b3361Sopenharmony_ci    <tr>
141159b3361Sopenharmony_ci        <td>SHORT</td>
142159b3361Sopenharmony_ci        <td>signed short (16 bits)</td>
143159b3361Sopenharmony_ci    </tr>
144159b3361Sopenharmony_ci    <tr>
145159b3361Sopenharmony_ci        <td>WORD</td>
146159b3361Sopenharmony_ci        <td>unsigned short (16 bits)</td>
147159b3361Sopenharmony_ci    </tr>
148159b3361Sopenharmony_ci    <tr>
149159b3361Sopenharmony_ci        <td>INT</td>
150159b3361Sopenharmony_ci        <td>signed long (32 bits)</td>
151159b3361Sopenharmony_ci    </tr>
152159b3361Sopenharmony_ci    <tr>
153159b3361Sopenharmony_ci        <td>LONG</td>
154159b3361Sopenharmony_ci        <td>signed long (32 bits)</td>
155159b3361Sopenharmony_ci    </tr>
156159b3361Sopenharmony_ci    <tr>
157159b3361Sopenharmony_ci        <td>BOOL</td>
158159b3361Sopenharmony_ci        <td>signed long (32 bits) (YES, 32 bits for a one bit
159159b3361Sopenharmony_ci        value)<br>
160159b3361Sopenharmony_ci        TRUE = 0<br>
161159b3361Sopenharmony_ci        FALSE=-1</td>
162159b3361Sopenharmony_ci    </tr>
163159b3361Sopenharmony_ci    <tr>
164159b3361Sopenharmony_ci        <td>DWORD</td>
165159b3361Sopenharmony_ci        <td>unsigned long (32 bits)</td>
166159b3361Sopenharmony_ci    </tr>
167159b3361Sopenharmony_ci    <tr>
168159b3361Sopenharmony_ci        <td>FLOAT</td>
169159b3361Sopenharmony_ci        <td>floating point (32 bits)</td>
170159b3361Sopenharmony_ci    </tr>
171159b3361Sopenharmony_ci    <tr>
172159b3361Sopenharmony_ci        <td>DOUBLE</td>
173159b3361Sopenharmony_ci        <td>float point (64 bits)</td>
174159b3361Sopenharmony_ci    </tr>
175159b3361Sopenharmony_ci    <tr>
176159b3361Sopenharmony_ci        <td>LPCSTR</td>
177159b3361Sopenharmony_ci        <td>const char* (32 bits pointer to zero terminated
178159b3361Sopenharmony_ci        character string)</td>
179159b3361Sopenharmony_ci    </tr>
180159b3361Sopenharmony_ci</table>
181159b3361Sopenharmony_ci
182159b3361Sopenharmony_ci<p>Within the lame_enc.dll All the structure elements are one
183159b3361Sopenharmony_cibyte alligned (due to backwards compatibility with BladEnc.DLL!</p>
184159b3361Sopenharmony_ci
185159b3361Sopenharmony_ci<p>&nbsp;</p>
186159b3361Sopenharmony_ci
187159b3361Sopenharmony_ci<hr>
188159b3361Sopenharmony_ci
189159b3361Sopenharmony_ci<h1><a name="The BE_CONFIG Structure"><font size="5">The
190159b3361Sopenharmony_ciBE_CONFIG Structure </font></a></h1>
191159b3361Sopenharmony_ci
192159b3361Sopenharmony_ci<p><font size="3">Currently there the BE_CONFIG structure has to
193159b3361Sopenharmony_civarians, the old MP3 config structure that is truly compatible
194159b3361Sopenharmony_ciwith the old BladeEnc interface, and the new defined LHV1
195159b3361Sopenharmony_cistructure, which can set far more options in the lame encoder</font></p>
196159b3361Sopenharmony_ci
197159b3361Sopenharmony_ci<p>&nbsp;</p>
198159b3361Sopenharmony_ci
199159b3361Sopenharmony_ci<h2><font size="5">The MP3 BE_CONFIG - structure (OBSOLETE)</font></h2>
200159b3361Sopenharmony_ci
201159b3361Sopenharmony_ci<p>This is the old structure as it was originally defined by the
202159b3361Sopenharmony_ciBladeEnc.DLL interface. However, I do highly recommend to use the
203159b3361Sopenharmony_cinew Lame specific config structure, since it gives you more
204159b3361Sopenharmony_cicontrol over the Lame encoder settings.</p>
205159b3361Sopenharmony_ci
206159b3361Sopenharmony_ci<p>These are the members of the BE_CONFIG structure you need to
207159b3361Sopenharmony_cifill in before you call beInitStream(): <br>
208159b3361Sopenharmony_ci&nbsp; </p>
209159b3361Sopenharmony_ci
210159b3361Sopenharmony_ci<table border="0">
211159b3361Sopenharmony_ci    <tr>
212159b3361Sopenharmony_ci        <td><b>dwConfig</b></td>
213159b3361Sopenharmony_ci        <td>Specifies what kind of output you want. Since only
214159b3361Sopenharmony_ci        MP3 currently is supported you must set this to <b>BE_CONFIG_MP3</b></td>
215159b3361Sopenharmony_ci    </tr>
216159b3361Sopenharmony_ci    <tr>
217159b3361Sopenharmony_ci        <td><b>format.mp3.dwSampleRate</b>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td>
218159b3361Sopenharmony_ci        <td>Samplerate in Hz for MP3 file. This can be set to
219159b3361Sopenharmony_ci        either <b>32000</b>, <b>44100</b> or <b>48000</b>.</td>
220159b3361Sopenharmony_ci    </tr>
221159b3361Sopenharmony_ci    <tr>
222159b3361Sopenharmony_ci        <td><b>format.mp3.byMode</b></td>
223159b3361Sopenharmony_ci        <td>Stereomode for MP3 file. This can be either <b>BE_MP3_MODE_STEREO</b>,
224159b3361Sopenharmony_ci        <b>BE_MP3_MODE_DUALCHANNEL</b> or <b>BE_MP3_MODE_MONO.</b></td>
225159b3361Sopenharmony_ci    </tr>
226159b3361Sopenharmony_ci    <tr>
227159b3361Sopenharmony_ci        <td><b>format.mp3.bitrate</b></td>
228159b3361Sopenharmony_ci        <td>Bitrate (i.e. size) of MP3 file in kBit/s. Allowed
229159b3361Sopenharmony_ci        bitrates are: <b>32, 40, 48, 56, 64, 80, 96, 112, 128,
230159b3361Sopenharmony_ci        160, 192, 224, 256</b> and <b>320</b>.</td>
231159b3361Sopenharmony_ci    </tr>
232159b3361Sopenharmony_ci    <tr>
233159b3361Sopenharmony_ci        <td><b>format.mp3.bCopyright</b></td>
234159b3361Sopenharmony_ci        <td>If this is set to TRUE the Copyright bit in the MP3
235159b3361Sopenharmony_ci        stream will be set.</td>
236159b3361Sopenharmony_ci    </tr>
237159b3361Sopenharmony_ci    <tr>
238159b3361Sopenharmony_ci        <td><b>format.mp3.bCRC</b></td>
239159b3361Sopenharmony_ci        <td>Set this to TRUE in order to enable CRC-checksum in
240159b3361Sopenharmony_ci        the bitstream.</td>
241159b3361Sopenharmony_ci    </tr>
242159b3361Sopenharmony_ci    <tr>
243159b3361Sopenharmony_ci        <td><b>format.mp3.bOriginal</b></td>
244159b3361Sopenharmony_ci        <td>If this is set to TRUE the Original bit in the MP3
245159b3361Sopenharmony_ci        stream will be set.</td>
246159b3361Sopenharmony_ci    </tr>
247159b3361Sopenharmony_ci    <tr>
248159b3361Sopenharmony_ci        <td><b>format.mp3.bPrivate</b></td>
249159b3361Sopenharmony_ci        <td>If this is set to TRUE the Private bit in the MP3
250159b3361Sopenharmony_ci        stream will be set.</td>
251159b3361Sopenharmony_ci    </tr>
252159b3361Sopenharmony_ci</table>
253159b3361Sopenharmony_ci
254159b3361Sopenharmony_ci<p>&nbsp;</p>
255159b3361Sopenharmony_ci
256159b3361Sopenharmony_ci<h2><font size="5">The LHV1 BE_CONFIG - structure (recommended)</font></h2>
257159b3361Sopenharmony_ci
258159b3361Sopenharmony_ci<p>These are the members of the LHV1 BE_CONFIG structure, you
259159b3361Sopenharmony_cineed to fill in before you call beInitStream(): <br>
260159b3361Sopenharmony_ci</p>
261159b3361Sopenharmony_ci
262159b3361Sopenharmony_ci<table border="0">
263159b3361Sopenharmony_ci    <tr>
264159b3361Sopenharmony_ci        <td><b>dwConfig</b></td>
265159b3361Sopenharmony_ci        <td>Specifies what kind of output you want. Since only
266159b3361Sopenharmony_ci        MP3 currently is supported you must set this to <b>BE_CONFIG_LAME</b></td>
267159b3361Sopenharmony_ci    </tr>
268159b3361Sopenharmony_ci    <tr>
269159b3361Sopenharmony_ci        <td>&nbsp;</td>
270159b3361Sopenharmony_ci        <td>&nbsp;</td>
271159b3361Sopenharmony_ci    </tr>
272159b3361Sopenharmony_ci    <tr>
273159b3361Sopenharmony_ci        <td><b>format.LHV1.dwStructVersion</b></td>
274159b3361Sopenharmony_ci        <td>Indicates the version number of the structure,
275159b3361Sopenharmony_ci        current version number is 1</td>
276159b3361Sopenharmony_ci    </tr>
277159b3361Sopenharmony_ci    <tr>
278159b3361Sopenharmony_ci        <td><b>format.LHV1.dwStructSize</b></td>
279159b3361Sopenharmony_ci        <td>Specifies the size of the BE_CONFIG structure
280159b3361Sopenharmony_ci        (currently 331 bytes)</td>
281159b3361Sopenharmony_ci    </tr>
282159b3361Sopenharmony_ci    <tr>
283159b3361Sopenharmony_ci        <td>&nbsp;</td>
284159b3361Sopenharmony_ci        <td>&nbsp;</td>
285159b3361Sopenharmony_ci    </tr>
286159b3361Sopenharmony_ci    <tr>
287159b3361Sopenharmony_ci        <td><b>format.LHV1.dwSampleRate</b>&nbsp;</td>
288159b3361Sopenharmony_ci        <td>Samplerate in Hz for MP3 file. This can be set to
289159b3361Sopenharmony_ci        either:<br>
290159b3361Sopenharmony_ci        <b>32000</b>, <b>44100</b> or <b>48000</b> for MPEG-I<br>
291159b3361Sopenharmony_ci        <b>16000</b>, <b>22050</b> or <b>24000</b> for MPEG-I<br>
292159b3361Sopenharmony_ci        <b>8000</b>, <b>11025</b> or <b>12000</b> for MPEG-II.5</td>
293159b3361Sopenharmony_ci    </tr>
294159b3361Sopenharmony_ci    <tr>
295159b3361Sopenharmony_ci        <td><b>format.LHV1.dwReSampleRate</b></td>
296159b3361Sopenharmony_ci        <td>Specifies to which sample rate the input stream has
297159b3361Sopenharmony_ci        to be resampled, if set to 0, the encoder will decide
298159b3361Sopenharmony_ci        which ReSample rate to use</td>
299159b3361Sopenharmony_ci    </tr>
300159b3361Sopenharmony_ci    <tr>
301159b3361Sopenharmony_ci        <td><b>format.LHV1.nMode</b></td>
302159b3361Sopenharmony_ci        <td>Stereomode for MP3 file. This can be either <b>BE_MP3_MODE_STEREO</b>,
303159b3361Sopenharmony_ci        <b>BE_MP3_MODE_JSTEREO, BE_MP3_MODE_DUALCHANNEL</b> or <b>BE_MP3_MODE_MONO.</b></td>
304159b3361Sopenharmony_ci    </tr>
305159b3361Sopenharmony_ci    <tr>
306159b3361Sopenharmony_ci        <td><strong>format.LHV1.dwBitrate</strong></td>
307159b3361Sopenharmony_ci        <td>For CBR, this specifies the actual bitrate, for VBR,
308159b3361Sopenharmony_ci        it specifies the minimum bitrate<br>
309159b3361Sopenharmony_ci        Allowed bitrates are: <b>32, 40, 48, 56, 64, 80, 96, 112,
310159b3361Sopenharmony_ci        128, 160, 192, 224, 256</b> and <b>320</b>.for MPEG-I<br>
311159b3361Sopenharmony_ci        Allowed bitrates are: <b>8, 16, 24, 32, 40, 48, 56, 64,
312159b3361Sopenharmony_ci        80, 96, 112, 128, 144 </b>and<b> 160</b>.for MPEG-II<p><strong>Note:</strong>
313159b3361Sopenharmony_ci        dwBitrate is used as the minimum bitrate in the case of
314159b3361Sopenharmony_ci        using a VBR mode.</p>
315159b3361Sopenharmony_ci        </td>
316159b3361Sopenharmony_ci    </tr>
317159b3361Sopenharmony_ci    <tr>
318159b3361Sopenharmony_ci        <td><strong>format.LHV1.dwMaxBitrate</strong></td>
319159b3361Sopenharmony_ci        <td>When VBR mode is enabled, it specifies the maximum
320159b3361Sopenharmony_ci        allowed bitrate (see also dwBitrate to specify the minium
321159b3361Sopenharmony_ci        bitrate), for CBR mode this setting is ignored.</td>
322159b3361Sopenharmony_ci    </tr>
323159b3361Sopenharmony_ci    <tr>
324159b3361Sopenharmony_ci        <td><strong>format.LHV1.nPreset</strong></td>
325159b3361Sopenharmony_ci        <td>Keep in mind that the presets can overwrite some of
326159b3361Sopenharmony_ci        the other settings, since it is called right before the
327159b3361Sopenharmony_ci        encoder is initialized<br>
328159b3361Sopenharmony_ci        <table border="0">
329159b3361Sopenharmony_ci            <tr>
330159b3361Sopenharmony_ci                <td>The nPreset option can be set to one of the
331159b3361Sopenharmony_ci                following presets values::</td>
332159b3361Sopenharmony_ci            </tr>
333159b3361Sopenharmony_ci        </table>
334159b3361Sopenharmony_ci        <p>LQP_NOPRESET (don't use any presets)<br>
335159b3361Sopenharmony_ci        LQP_NORMAL_QUALITY (quality is set to 5)<br>
336159b3361Sopenharmony_ci        LQP_LOW_QUALITY (quality is set to 9)<br>
337159b3361Sopenharmony_ci        LQP_HIGH_QUALITY (quality is set to 2)<br>
338159b3361Sopenharmony_ci        LQP_VOICE_QUALITY (use for voice encoding)<br>
339159b3361Sopenharmony_ci        LQP_R3MIX (r3mix preset option)<br>
340159b3361Sopenharmony_ci        LQP_VERYHIGH_QUALITY (quality is set to 0)<br>
341159b3361Sopenharmony_ci        LQP_STANDARD (lame command line alt-preset standard)<br>
342159b3361Sopenharmony_ci        LQP_FAST_STANDARD (lame command line alt-preset fast
343159b3361Sopenharmony_ci        standard)<br>
344159b3361Sopenharmony_ci        LQP_EXTREME (lame command line alt-preset extreme)<br>
345159b3361Sopenharmony_ci        LQP_FAST_EXTREME (lame command line alt-preset fast
346159b3361Sopenharmony_ci        extreme)<br>
347159b3361Sopenharmony_ci        LQP_INSANE (lame command line alt-preset insane)<br>
348159b3361Sopenharmony_ci        LQP_ABR (lame command line alt-preset abr)<br>
349159b3361Sopenharmony_ci        LQP_CBR(lame command line alt-preset cbr)<br>
350159b3361Sopenharmony_ci        <br>
351159b3361Sopenharmony_ci        <strong>(old lame preset options)</strong><br>
352159b3361Sopenharmony_ci        LQP_PHONE <br>
353159b3361Sopenharmony_ci        LQP_SW<br>
354159b3361Sopenharmony_ci        LQP_AM<br>
355159b3361Sopenharmony_ci        LQP_FM<br>
356159b3361Sopenharmony_ci        LQP_VOICE<br>
357159b3361Sopenharmony_ci        LQP_RADIO<br>
358159b3361Sopenharmony_ci        LQP_TAPE<br>
359159b3361Sopenharmony_ci        LQP_HIFI<br>
360159b3361Sopenharmony_ci        LQP_CD<br>
361159b3361Sopenharmony_ci        LQP_STUDIO</p>
362159b3361Sopenharmony_ci        </td>
363159b3361Sopenharmony_ci    </tr>
364159b3361Sopenharmony_ci    <tr>
365159b3361Sopenharmony_ci        <td>&nbsp;</td>
366159b3361Sopenharmony_ci    </tr>
367159b3361Sopenharmony_ci    <tr>
368159b3361Sopenharmony_ci        <td><b>format.LHV1.bCopyright</b></td>
369159b3361Sopenharmony_ci        <td>If this is set to TRUE the Copyright bit in the MP3
370159b3361Sopenharmony_ci        stream will be set.</td>
371159b3361Sopenharmony_ci    </tr>
372159b3361Sopenharmony_ci    <tr>
373159b3361Sopenharmony_ci        <td><b>format.LHV1.bCRC</b></td>
374159b3361Sopenharmony_ci        <td>Set this to TRUE in order to enable CRC-checksum in
375159b3361Sopenharmony_ci        the bitstream.</td>
376159b3361Sopenharmony_ci    </tr>
377159b3361Sopenharmony_ci    <tr>
378159b3361Sopenharmony_ci        <td><b>format.LHV1.bOriginal</b></td>
379159b3361Sopenharmony_ci        <td>If this is set to TRUE the Original bit in the MP3
380159b3361Sopenharmony_ci        stream will be set.</td>
381159b3361Sopenharmony_ci    </tr>
382159b3361Sopenharmony_ci    <tr>
383159b3361Sopenharmony_ci        <td><b>format.LHV1.bPrivate</b></td>
384159b3361Sopenharmony_ci        <td>If this is set to TRUE the Private bit in the MP3
385159b3361Sopenharmony_ci        stream will be set.</td>
386159b3361Sopenharmony_ci    </tr>
387159b3361Sopenharmony_ci    <tr>
388159b3361Sopenharmony_ci        <td>&nbsp;</td>
389159b3361Sopenharmony_ci        <td>&nbsp;</td>
390159b3361Sopenharmony_ci    </tr>
391159b3361Sopenharmony_ci    <tr>
392159b3361Sopenharmony_ci        <td><strong>format.LHV1.nVbrMethod</strong></td>
393159b3361Sopenharmony_ci        <td>Sepecifes if the VBR method to use, currently the
394159b3361Sopenharmony_ci        following settings are supported:<p><font size="3">VBR_METHOD_NONE
395159b3361Sopenharmony_ci        (don't use VBR, use CBR encoding instead),<br>
396159b3361Sopenharmony_ci        VBR_METHOD_DEFAULT (default VBR method)<br>
397159b3361Sopenharmony_ci        VBR_METHOD_OLD (old VBR method, proven to be reliable)<br>
398159b3361Sopenharmony_ci        VBR_METHOD_NEW (new VBR method, faster than
399159b3361Sopenharmony_ci        VBR_METHOD_OLD)<br>
400159b3361Sopenharmony_ci        VBR_METHOD_MTRH (depreciated, same as VBR_METHOD_NEW)<br>
401159b3361Sopenharmony_ci        VBR_METHOD_ABR (Average Bitrate Encoding, see also </font><strong>format.LHV1.dwVbrAbr_bps</strong><font
402159b3361Sopenharmony_ci        size="3">)</font></p>
403159b3361Sopenharmony_ci        </td>
404159b3361Sopenharmony_ci    </tr>
405159b3361Sopenharmony_ci    <tr>
406159b3361Sopenharmony_ci        <td><strong>format.LHV1.bWriteVBRHeader</strong></td>
407159b3361Sopenharmony_ci        <td>Sepecifes if the a XING VBR header should be written
408159b3361Sopenharmony_ci        or not. When this option is enabled, you have to call the
409159b3361Sopenharmony_ci        <font size="3">beWriteVBRHeader function when encoding
410159b3361Sopenharmony_ci        has been completed. Keep in mind that the VBR info tag
411159b3361Sopenharmony_ci        can also be written for CBR encoded files, the TAG info
412159b3361Sopenharmony_ci        can be useful for additional info like encoder delay and
413159b3361Sopenharmony_ci        the like.</font></td>
414159b3361Sopenharmony_ci    </tr>
415159b3361Sopenharmony_ci    <tr>
416159b3361Sopenharmony_ci        <td><strong>format.LHV1.bEnableVBR</strong></td>
417159b3361Sopenharmony_ci        <td>Specifies if VBR encoding option shall be used or
418159b3361Sopenharmony_ci        not, possible values are TRUE/FALSE</td>
419159b3361Sopenharmony_ci    </tr>
420159b3361Sopenharmony_ci    <tr>
421159b3361Sopenharmony_ci        <td><strong>format.LHV1.nVBRQuality</strong></td>
422159b3361Sopenharmony_ci        <td>Quality option if VBR is enabled (0=highest quality,
423159b3361Sopenharmony_ci        9 is lowest quality)</td>
424159b3361Sopenharmony_ci    </tr>
425159b3361Sopenharmony_ci    <tr>
426159b3361Sopenharmony_ci        <td><strong>format.LHV1.dwVbrAbr_bps</strong></td>
427159b3361Sopenharmony_ci        <td>If the Average Bit Rate is specified, the lame
428159b3361Sopenharmony_ci        encoder ignores the nVBRQuality settings (However, <strong>bEnableVBR</strong>
429159b3361Sopenharmony_ci        must be set to TRUE and the <strong>format.LHV1.nVbrMethod
430159b3361Sopenharmony_ci        </strong>parameter should be set to<strong> </strong><font
431159b3361Sopenharmony_ci        size="3"><strong>VBR_METHOD_ABR</strong>). The allowed
432159b3361Sopenharmony_ci        range for the </font><strong>format.LHV1.dwVbrAbr_bps </strong>parameter<strong>
433159b3361Sopenharmony_ci        </strong>any integer value <font size="3">between:</font><p><strong>MPEG-I:</strong>
434159b3361Sopenharmony_ci        32000 .. 320000 bps<b><br>
435159b3361Sopenharmony_ci        </b><strong>MPEG-II:</strong> 8000 .. 160000 bps</p>
436159b3361Sopenharmony_ci        </td>
437159b3361Sopenharmony_ci    </tr>
438159b3361Sopenharmony_ci    <tr>
439159b3361Sopenharmony_ci        <td>&nbsp;</td>
440159b3361Sopenharmony_ci        <td>&nbsp;</td>
441159b3361Sopenharmony_ci    </tr>
442159b3361Sopenharmony_ci    <tr>
443159b3361Sopenharmony_ci        <td><strong>format.LHV1.bNoBitRes</strong></td>
444159b3361Sopenharmony_ci        <td>Disables the bit-resorvoir and disables the insertion
445159b3361Sopenharmony_ci        of padded frames</td>
446159b3361Sopenharmony_ci    </tr>
447159b3361Sopenharmony_ci    <tr>
448159b3361Sopenharmony_ci        <td><strong>format.LHV1.nQuality</strong></td>
449159b3361Sopenharmony_ci        <td>Quality Setting, HIGH BYTE should be NOT LOW byte,
450159b3361Sopenharmony_ci        otherwhise quality is set to 5. This is done to be
451159b3361Sopenharmony_ci        backward compatible. So to set quality to 3, you have to
452159b3361Sopenharmony_ci        set the nQuality parameter to 0xFC03.</td>
453159b3361Sopenharmony_ci    </tr>
454159b3361Sopenharmony_ci    <tr>
455159b3361Sopenharmony_ci        <td><b>format.mp3.btReserved</b></td>
456159b3361Sopenharmony_ci        <td>For future use, set all elements to zero</td>
457159b3361Sopenharmony_ci    </tr>
458159b3361Sopenharmony_ci</table>
459159b3361Sopenharmony_ci
460159b3361Sopenharmony_ci<p>&nbsp;</p>
461159b3361Sopenharmony_ci
462159b3361Sopenharmony_ci<p>&nbsp; </p>
463159b3361Sopenharmony_ci
464159b3361Sopenharmony_ci<hr>
465159b3361Sopenharmony_ci
466159b3361Sopenharmony_ci<h1><a name="beInitStream()"><font size="5">beInitStream()</font></a>
467159b3361Sopenharmony_ci</h1>
468159b3361Sopenharmony_ci
469159b3361Sopenharmony_ci<table border="0" cellspacing="16" width="100%">
470159b3361Sopenharmony_ci    <tr>
471159b3361Sopenharmony_ci        <td valign="top" width="20%"><b>Synopsis:</b></td>
472159b3361Sopenharmony_ci        <td valign="top" width="80%">BE_ERR beInitStream(
473159b3361Sopenharmony_ci        PBE_CONFIG <i>pbeConfig</i>, PDWORD <i>dwSamples</i>,
474159b3361Sopenharmony_ci        PDWORD <i>dwBufferSize</i>, PHBE_STREAM <i>phbeStream</i>
475159b3361Sopenharmony_ci        )</td>
476159b3361Sopenharmony_ci    </tr>
477159b3361Sopenharmony_ci    <tr>
478159b3361Sopenharmony_ci        <td valign="top" width="20%"><b>Parameters:</b></td>
479159b3361Sopenharmony_ci        <td valign="top" width="80%"><table border="0"
480159b3361Sopenharmony_ci        cellspacing="10" width="100%">
481159b3361Sopenharmony_ci            <tr>
482159b3361Sopenharmony_ci                <td valign="top" width="20%"><i>pbeConfig</i></td>
483159b3361Sopenharmony_ci                <td>Pointer at the struct containing encoder
484159b3361Sopenharmony_ci                settings.</td>
485159b3361Sopenharmony_ci            </tr>
486159b3361Sopenharmony_ci            <tr>
487159b3361Sopenharmony_ci                <td valign="top"><i>dwSamples</i></td>
488159b3361Sopenharmony_ci                <td>Pointer at double word where number of
489159b3361Sopenharmony_ci                samples to send to each <i>beEncodeChunk()</i> is
490159b3361Sopenharmony_ci                returned.</td>
491159b3361Sopenharmony_ci            </tr>
492159b3361Sopenharmony_ci            <tr>
493159b3361Sopenharmony_ci                <td valign="top"><i>dwBufferSize</i></td>
494159b3361Sopenharmony_ci                <td>Pointer at double word where minimum size in
495159b3361Sopenharmony_ci                bytes of output buffer is returned.</td>
496159b3361Sopenharmony_ci            </tr>
497159b3361Sopenharmony_ci            <tr>
498159b3361Sopenharmony_ci                <td valign="top"><i>phbeStream</i></td>
499159b3361Sopenharmony_ci                <td>Pointer at integer where Stream handle is
500159b3361Sopenharmony_ci                returned.</td>
501159b3361Sopenharmony_ci            </tr>
502159b3361Sopenharmony_ci        </table>
503159b3361Sopenharmony_ci        </td>
504159b3361Sopenharmony_ci    </tr>
505159b3361Sopenharmony_ci    <tr>
506159b3361Sopenharmony_ci        <td valign="top" width="20%"><b>Description:</b></td>
507159b3361Sopenharmony_ci        <td valign="top" width="80%">This function is the first
508159b3361Sopenharmony_ci        to call before starting an encoding stream.</td>
509159b3361Sopenharmony_ci    </tr>
510159b3361Sopenharmony_ci</table>
511159b3361Sopenharmony_ci
512159b3361Sopenharmony_ci<hr>
513159b3361Sopenharmony_ci
514159b3361Sopenharmony_ci<h1><a name="beEncodeChunk()"><font size="5">beEncodeChunk()</font>
515159b3361Sopenharmony_ci</a></h1>
516159b3361Sopenharmony_ci
517159b3361Sopenharmony_ci<table border="0" cellspacing="16" width="100%">
518159b3361Sopenharmony_ci    <tr>
519159b3361Sopenharmony_ci        <td valign="top" width="20%"><b>Synopsis:</b></td>
520159b3361Sopenharmony_ci        <td valign="top" width="80%">BE_ERR beEncodeChunk(
521159b3361Sopenharmony_ci        HBE_STREAM <i>hbeStream</i>, DWORD <i>nSamples</i>,
522159b3361Sopenharmony_ci        PSHORT <i>pSamples</i>, PBYTE <i>pOutput</i>, PDWORD <i>pdwOutput</i>
523159b3361Sopenharmony_ci        )</td>
524159b3361Sopenharmony_ci    </tr>
525159b3361Sopenharmony_ci    <tr>
526159b3361Sopenharmony_ci        <td valign="top" width="20%"><b>Parameters:</b></td>
527159b3361Sopenharmony_ci        <td valign="top"><table border="0" cellspacing="10"
528159b3361Sopenharmony_ci        width="100%">
529159b3361Sopenharmony_ci            <tr>
530159b3361Sopenharmony_ci                <td valign="top" width="20%"><i>hbeStream</i></td>
531159b3361Sopenharmony_ci                <td width="80%">Handle of the stream.</td>
532159b3361Sopenharmony_ci            </tr>
533159b3361Sopenharmony_ci            <tr>
534159b3361Sopenharmony_ci                <td valign="top" width="90"><i>nSamples</i></td>
535159b3361Sopenharmony_ci                <td>Number of samples to be encoded for this
536159b3361Sopenharmony_ci                call. This should be identical to what is
537159b3361Sopenharmony_ci                returned by <i>beInitStream()</i>, unless you are
538159b3361Sopenharmony_ci                encoding the last chunk, which might be smaller.</td>
539159b3361Sopenharmony_ci            </tr>
540159b3361Sopenharmony_ci            <tr>
541159b3361Sopenharmony_ci                <td valign="top" width="90"><i>pSamples</i></td>
542159b3361Sopenharmony_ci                <td>Pointer at the 16-bit signed samples to be
543159b3361Sopenharmony_ci                encoded. These should be in stereo when encoding
544159b3361Sopenharmony_ci                a stereo MP3 and mono when encoding a mono MP3.</td>
545159b3361Sopenharmony_ci            </tr>
546159b3361Sopenharmony_ci            <tr>
547159b3361Sopenharmony_ci                <td valign="top" width="90"><i>pOutput</i></td>
548159b3361Sopenharmony_ci                <td>Where to write the encoded data. This buffer
549159b3361Sopenharmony_ci                should be at least of the minimum size returned
550159b3361Sopenharmony_ci                by <i>beInitStream()</i>.</td>
551159b3361Sopenharmony_ci            </tr>
552159b3361Sopenharmony_ci            <tr>
553159b3361Sopenharmony_ci                <td valign="top" width="90"><i>pdwOutput</i></td>
554159b3361Sopenharmony_ci                <td>Where to return number of bytes of encoded
555159b3361Sopenharmony_ci                data written. The amount of data written might
556159b3361Sopenharmony_ci                vary from chunk to chunk.</td>
557159b3361Sopenharmony_ci            </tr>
558159b3361Sopenharmony_ci        </table>
559159b3361Sopenharmony_ci        </td>
560159b3361Sopenharmony_ci    </tr>
561159b3361Sopenharmony_ci    <tr>
562159b3361Sopenharmony_ci        <td valign="top" width="20%"><b>Description:</b></td>
563159b3361Sopenharmony_ci        <td valign="top">Encodes a chunk of samples. <i>Please
564159b3361Sopenharmony_ci        note that if you have set the output to generate mono MP3
565159b3361Sopenharmony_ci        files you must feed beEncodeChunk() with mono samples!</i></td>
566159b3361Sopenharmony_ci    </tr>
567159b3361Sopenharmony_ci</table>
568159b3361Sopenharmony_ci
569159b3361Sopenharmony_ci<hr>
570159b3361Sopenharmony_ci
571159b3361Sopenharmony_ci<h1><a name="beDeinitStream()"><font size="5">beDeinitStream()</font>
572159b3361Sopenharmony_ci</a></h1>
573159b3361Sopenharmony_ci
574159b3361Sopenharmony_ci<table border="0" cellspacing="16" width="100%">
575159b3361Sopenharmony_ci    <tr>
576159b3361Sopenharmony_ci        <td valign="top" width="20%"><b>Synopsis:</b></td>
577159b3361Sopenharmony_ci        <td valign="top" width="80%">BE_ERR beDeinitStream(
578159b3361Sopenharmony_ci        HBE_STREAM <i>hbeStream</i>, PBYTE <i>pOutput</i>, PDWORD
579159b3361Sopenharmony_ci        <i>pdwOutput</i> )</td>
580159b3361Sopenharmony_ci    </tr>
581159b3361Sopenharmony_ci    <tr>
582159b3361Sopenharmony_ci        <td valign="top" width="20%"><b>Parameters:</b></td>
583159b3361Sopenharmony_ci        <td valign="top"><table border="0" cellspacing="10"
584159b3361Sopenharmony_ci        width="100%">
585159b3361Sopenharmony_ci            <tr>
586159b3361Sopenharmony_ci                <td valign="top" width="20%"><i>hbeStream</i></td>
587159b3361Sopenharmony_ci                <td width="80%">Handle of the stream.</td>
588159b3361Sopenharmony_ci            </tr>
589159b3361Sopenharmony_ci            <tr>
590159b3361Sopenharmony_ci                <td valign="top"><i>pOutput</i></td>
591159b3361Sopenharmony_ci                <td>Where to write the encoded data. This buffer
592159b3361Sopenharmony_ci                should be at least of the minimum size returned
593159b3361Sopenharmony_ci                by <i>beInitStream()</i>.</td>
594159b3361Sopenharmony_ci            </tr>
595159b3361Sopenharmony_ci            <tr>
596159b3361Sopenharmony_ci                <td><i>pdwOutput</i></td>
597159b3361Sopenharmony_ci                <td>Where to return number of bytes of encoded
598159b3361Sopenharmony_ci                data written.</td>
599159b3361Sopenharmony_ci            </tr>
600159b3361Sopenharmony_ci        </table>
601159b3361Sopenharmony_ci        </td>
602159b3361Sopenharmony_ci    </tr>
603159b3361Sopenharmony_ci    <tr>
604159b3361Sopenharmony_ci        <td valign="top" width="20%"><b>Description:</b></td>
605159b3361Sopenharmony_ci        <td valign="top">This function should be called after
606159b3361Sopenharmony_ci        encoding the last chunk in order to flush the encoder. It
607159b3361Sopenharmony_ci        writes any encoded data that still might be left inside
608159b3361Sopenharmony_ci        the encoder to the output buffer. This function should
609159b3361Sopenharmony_ci        NOT be called unless you have encoded all of the chunks
610159b3361Sopenharmony_ci        in your stream.</td>
611159b3361Sopenharmony_ci    </tr>
612159b3361Sopenharmony_ci</table>
613159b3361Sopenharmony_ci
614159b3361Sopenharmony_ci<hr>
615159b3361Sopenharmony_ci
616159b3361Sopenharmony_ci<h1><a name="beCloseStream()"><font size="5">beCloseStream()</font></a>
617159b3361Sopenharmony_ci</h1>
618159b3361Sopenharmony_ci
619159b3361Sopenharmony_ci<table border="0" cellspacing="16" width="100%">
620159b3361Sopenharmony_ci    <tr>
621159b3361Sopenharmony_ci        <td valign="top" width="20%"><b>Synopsis:</b></td>
622159b3361Sopenharmony_ci        <td valign="top">BE_ERR beCloseStream( HBE_STREAM <i>hbeStream</i>
623159b3361Sopenharmony_ci        )</td>
624159b3361Sopenharmony_ci    </tr>
625159b3361Sopenharmony_ci    <tr>
626159b3361Sopenharmony_ci        <td valign="top" width="90"><b>Parameters:</b></td>
627159b3361Sopenharmony_ci        <td valign="top"><table border="0" cellspacing="10"
628159b3361Sopenharmony_ci        width="100%">
629159b3361Sopenharmony_ci            <tr>
630159b3361Sopenharmony_ci                <td width="20%"><i>hbeStream</i></td>
631159b3361Sopenharmony_ci                <td>Handle of the stream.</td>
632159b3361Sopenharmony_ci            </tr>
633159b3361Sopenharmony_ci        </table>
634159b3361Sopenharmony_ci        </td>
635159b3361Sopenharmony_ci    </tr>
636159b3361Sopenharmony_ci    <tr>
637159b3361Sopenharmony_ci        <td valign="top" width="90"><b>Description:</b></td>
638159b3361Sopenharmony_ci        <td valign="top">Last function to be called when finished
639159b3361Sopenharmony_ci        encoding a stream. Should unlike <i>beDeinitStream()</i>
640159b3361Sopenharmony_ci        also be called if the encoding is canceled.</td>
641159b3361Sopenharmony_ci    </tr>
642159b3361Sopenharmony_ci</table>
643159b3361Sopenharmony_ci
644159b3361Sopenharmony_ci<hr>
645159b3361Sopenharmony_ci
646159b3361Sopenharmony_ci<h1><a name="beVersion()"><font size="5">beVersion()</font> </a></h1>
647159b3361Sopenharmony_ci
648159b3361Sopenharmony_ci<table border="0" cellspacing="16" width="100%">
649159b3361Sopenharmony_ci    <tr>
650159b3361Sopenharmony_ci        <td valign="top" width="20%"><b>Synopsis:</b></td>
651159b3361Sopenharmony_ci        <td valign="top">VOID beVersion( PBE_VERSION <i>pbeVersion</i>
652159b3361Sopenharmony_ci        )</td>
653159b3361Sopenharmony_ci    </tr>
654159b3361Sopenharmony_ci    <tr>
655159b3361Sopenharmony_ci        <td valign="top"><b>Parameters:</b></td>
656159b3361Sopenharmony_ci        <td valign="top"><table border="0" cellspacing="10"
657159b3361Sopenharmony_ci        width="100%">
658159b3361Sopenharmony_ci            <tr>
659159b3361Sopenharmony_ci                <td valign="top" width="20%"><i>pbeVersion</i></td>
660159b3361Sopenharmony_ci                <td>Pointer at struct where version number,
661159b3361Sopenharmony_ci                release date and URL for homepage is returned.</td>
662159b3361Sopenharmony_ci            </tr>
663159b3361Sopenharmony_ci        </table>
664159b3361Sopenharmony_ci        </td>
665159b3361Sopenharmony_ci    </tr>
666159b3361Sopenharmony_ci    <tr>
667159b3361Sopenharmony_ci        <td valign="top"><b>Description:</b></td>
668159b3361Sopenharmony_ci        <td valign="top">Returns information like version numbers
669159b3361Sopenharmony_ci        (both of the DLL and encoding engine), release date and
670159b3361Sopenharmony_ci        URL for lame_enc's homepage. All this information should
671159b3361Sopenharmony_ci        be made available to the user of your product through a
672159b3361Sopenharmony_ci        dialog box or something similar.</td>
673159b3361Sopenharmony_ci    </tr>
674159b3361Sopenharmony_ci</table>
675159b3361Sopenharmony_ci
676159b3361Sopenharmony_ci<p>&nbsp;</p>
677159b3361Sopenharmony_ci
678159b3361Sopenharmony_ci<hr>
679159b3361Sopenharmony_ci
680159b3361Sopenharmony_ci<p>&nbsp;</p>
681159b3361Sopenharmony_ci
682159b3361Sopenharmony_ci<h1><a name="beWriteVBRHeader()"><font size="5">beWriteVBRHeader()</font>
683159b3361Sopenharmony_ci</a></h1>
684159b3361Sopenharmony_ci
685159b3361Sopenharmony_ci<table border="0" cellspacing="16" width="100%">
686159b3361Sopenharmony_ci    <tr>
687159b3361Sopenharmony_ci        <td valign="top" width="20%"><b>Synopsis:</b></td>
688159b3361Sopenharmony_ci        <td valign="top">VOID beWriteVBRHeader( LPCSTR <i>pszMP3FileName</i>
689159b3361Sopenharmony_ci        )</td>
690159b3361Sopenharmony_ci    </tr>
691159b3361Sopenharmony_ci    <tr>
692159b3361Sopenharmony_ci        <td valign="top"><b>Parameters:</b></td>
693159b3361Sopenharmony_ci        <td valign="top"><table border="0" cellspacing="10"
694159b3361Sopenharmony_ci        width="100%">
695159b3361Sopenharmony_ci            <tr>
696159b3361Sopenharmony_ci                <td valign="top" width="20%"><i>pszMP3FileName</i></td>
697159b3361Sopenharmony_ci                <td>Const Pointer zero terminated string, that
698159b3361Sopenharmony_ci                contains the MP3 file name.</td>
699159b3361Sopenharmony_ci            </tr>
700159b3361Sopenharmony_ci        </table>
701159b3361Sopenharmony_ci        </td>
702159b3361Sopenharmony_ci    </tr>
703159b3361Sopenharmony_ci    <tr>
704159b3361Sopenharmony_ci        <td valign="top"><b>Description:</b></td>
705159b3361Sopenharmony_ci        <td valign="top">Writes a Xing Header in front of the MP3
706159b3361Sopenharmony_ci        file. Make sure that the MP3 file is closed, and the the
707159b3361Sopenharmony_ci        beConfig.format.LHV1.bWriteVBRHeader has been set to
708159b3361Sopenharmony_ci        TRUE. In addition, it is always save to call
709159b3361Sopenharmony_ci        beWriteVBRHeader after the encoding has been finished,
710159b3361Sopenharmony_ci        even when the beConfig.format.LHV1.bWriteVBRHeader is not
711159b3361Sopenharmony_ci        set to TRUE</td>
712159b3361Sopenharmony_ci    </tr>
713159b3361Sopenharmony_ci</table>
714159b3361Sopenharmony_ci
715159b3361Sopenharmony_ci<p>&nbsp;</p>
716159b3361Sopenharmony_ci
717159b3361Sopenharmony_ci<p>&nbsp;</p>
718159b3361Sopenharmony_ci
719159b3361Sopenharmony_ci<hr>
720159b3361Sopenharmony_ci
721159b3361Sopenharmony_ci<p>&nbsp;</p>
722159b3361Sopenharmony_ci
723159b3361Sopenharmony_ci<h1><a name="Lame_enc.dll debug option">Lame_enc.dll debug option</a></h1>
724159b3361Sopenharmony_ci
725159b3361Sopenharmony_ci<p>The lame_enc.dll has a built-in debug option, that dumps all
726159b3361Sopenharmony_cithe important internal settings to a text file. To enable this
727159b3361Sopenharmony_cifeature, create a text file in the Windows directory which is
728159b3361Sopenharmony_cinamed lame_enc.ini, and should contain the following two lines</p>
729159b3361Sopenharmony_ci
730159b3361Sopenharmony_ci<p>[debug]<br>
731159b3361Sopenharmony_ciWriteLogFile=1</p>
732159b3361Sopenharmony_ci
733159b3361Sopenharmony_ci<p>Save this text file, and each time you encode a file, the
734159b3361Sopenharmony_cisettings are added to a file name lame_enc.txt, that is located
735159b3361Sopenharmony_ciin the same directory as the lame_enc.dll</p>
736159b3361Sopenharmony_ci
737159b3361Sopenharmony_ci<p>&nbsp;</p>
738159b3361Sopenharmony_ci
739159b3361Sopenharmony_ci<p><br>
740159b3361Sopenharmony_ci&nbsp; </p>
741159b3361Sopenharmony_ci</body>
742159b3361Sopenharmony_ci</html>
743