1
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
1
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
2
2
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
3
<title>FLAC/_encoder.h: encoder interfaces</title>
3
<title>FLAC: FLAC/_encoder.h: encoder interfaces</title>
4
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>FLAC/_encoder.h: encoder interfaces<br>
6
<!-- Generated by Doxygen 1.4.2 -->
7
<div class="qindex"><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">Class List</a> | <a class="qindex" href="dirs.html">Directories</a> | <a class="qindex" href="files.html">File List</a> | <a class="qindex" href="functions.html">Class Members</a> | <a class="qindex" href="globals.html">File Members</a></div>
8
<h1>FLAC/_encoder.h: encoder interfaces<br>
11
10
[<a class="el" href="group__flac.html">FLAC C API</a>]</small>
12
</h1>This module describes the two encoder layers provided by libFLAC.
13
<a href="#_details">More...</a><table border=0 cellpadding=0 cellspacing=0>
14
<tr><td colspan=2><br><h2>Modules</h2></td></tr>
15
<tr><td nowrap align=right valign=top><a class="el" href="group__flac__file__encoder.html">FLAC/file_encoder.h: file encoder interface</a></td></tr>
16
<tr><td> </td><td><font size=-1><em>This module contains the functions which implement the file encoder.</em></font><br><br></td></tr>
19
<tr><td nowrap align=right valign=top><a class="el" href="group__flac__seekable__stream__encoder.html">FLAC/seekable_stream_encoder.h: seekable stream encoder interface</a></td></tr>
20
<tr><td> </td><td><font size=-1><em>This module contains the functions which implement the seekable stream encoder.</em></font><br><br></td></tr>
23
<tr><td nowrap align=right valign=top><a class="el" href="group__flac__stream__encoder.html">FLAC/stream_encoder.h: stream encoder interface</a></td></tr>
24
<tr><td> </td><td><font size=-1><em>This module contains the functions which implement the stream encoder.</em></font><br><br></td></tr>
11
</h1><hr><a name="_details"></a><h2>Detailed Description</h2>
12
This module describes the encoder layers provided by libFLAC.
14
The stream encoder can be used to encode complete streams either to the client via callbacks, or directly to a file, depending on how it is initialized. When encoding via callbacks, the client provides a write callback which will be called whenever FLAC data is ready to be written. If the client also supplies a seek callback, the encoder will also automatically handle the writing back of metadata discovered while encoding, like stream info, seek points offsets, etc. When encoding to a file, the client needs only supply a filename or open <code>FILE*</code> and an optional progress callback for periodic notification of progress; the write and seek callbacks are supplied internally. For more info see the <a class="el" href="group__flac__stream__encoder.html">stream encoder </a> module.
16
<table border="0" cellpadding="0" cellspacing="0">
18
<tr><td colspan="2"><br><h2>Modules</h2></td></tr>
19
<tr><td class="memItemLeft" nowrap align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__flac__stream__encoder.html">FLAC/stream_encoder.h: stream encoder interface</a></td></tr>
28
<hr><a name="_details"></a><h2>Detailed Description</h2>
29
This module describes the two encoder layers provided by libFLAC.
33
For encoding FLAC streams, libFLAC provides three layers of access. The lowest layer is non-seekable stream-level encoding, the next is seekable stream-level encoding, and the highest layer is file-level encoding. The interfaces are described in the <a class="el" href="group__flac__stream__encoder.html">stream encoder</a>, <a class="el" href="group__flac__seekable__stream__encoder.html">seekable stream encoder</a>, and <a class="el" href="group__flac__file__encoder.html">file encoder</a> modules respectively. Typically you will choose the highest layer that your input source will support. The stream encoder relies on callbacks for writing the data and metadata. The file encoder provides these callbacks internally and you need only supply the filename.
35
The stream encoder relies on callbacks for writing the data and has no provisions for seeking the output. The seekable stream encoder wraps the stream encoder and also automaticallay handles the writing back of metadata discovered while encoding. However, you must provide extra callbacks for seek-related operations on your output, like seek and tell. The file encoder wraps the seekable stream encoder and supplies all of the callbacks internally, simplifying the processing of standard files. The only callback exposed is for progress reporting, and that is optional. <hr><address><small>Generated on Fri Feb 4 18:39:18 2005 for FLAC by
36
<a href="http://www.doxygen.org/index.html">
37
<img src="doxygen.gif" alt="doxygen" align="middle" border=0
38
width=110 height=53></a>1.2.14 written by <a href="mailto:dimitri@stack.nl">Dimitri van Heesch</a>,
39
© 1997-2002</small></address>
24
<div class="copyright">
25
<!-- @@@ oh so hacky -->
29
Copyright (c) 2000,2001,2002,2003,2004,2005,2006,2007 Josh Coalson
31
<td width="1%" align="right">
32
<a href="http://sourceforge.net"><img src="http://sflogo.sourceforge.net/sflogo.php?group_id=13478&type=1" width="88" height="31" border="0" alt="SourceForge.net Logo" /></a>
37
<!-- Copyright (c) 2000,2001,2002,2003,2004,2005,2006,2007 Josh Coalson -->
38
<!-- Permission is granted to copy, distribute and/or modify this document -->
39
<!-- under the terms of the GNU Free Documentation License, Version 1.1 -->
40
<!-- or any later version published by the Free Software Foundation; -->
41
<!-- with no invariant sections. -->
42
<!-- A copy of the license can be found at http://www.gnu.org/copyleft/fdl.html -->