1 /* libFLAC - Free Lossless Audio Codec library
2 * Copyright (C) 2000,2001,2002 Josh Coalson
4 * This library is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU Library General Public
6 * License as published by the Free Software Foundation; either
7 * version 2 of the License, or (at your option) any later version.
9 * This library is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 * Library General Public License for more details.
14 * You should have received a copy of the GNU Library General Public
15 * License along with this library; if not, write to the
16 * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
17 * Boston, MA 02111-1307, USA.
24 #include "file_decoder.h"
28 #include "seekable_stream_decoder.h"
29 #include "stream_decoder.h"
30 #include "stream_encoder.h"
34 * \section intro Introduction
36 * This is the documentation for the FLAC C and C++ APIs. It is
37 * highly interconnected; this introduction should give you a top
38 * level idea of the structure and how to find the information you
39 * need. As a prerequisite you should have at least a basic
40 * knowledge of the FLAC format, documented
41 * <A HREF="../format.html">here</A>.
43 * \section c_api FLAC C API
45 * The FLAC C API is the interface to libFLAC, a set of structures
46 * describing the components of FLAC streams, and functions for
47 * encoding and decoding streams, as well as manipulating FLAC
48 * metadata in files. The public include files will be installed
49 * in your include area as <include>/FLAC/...
51 * By writing a little code and linking against libFLAC, it is
52 * relatively easy to add FLAC support to another program. The
53 * library is licensed under the
54 * <A HREF="http://www.gnu.org/copyleft/lesser.html">LGPL</A>.
55 * Complete source code of libFLAC as well as the command-line
56 * encoder and plugins is available and is a useful source of
59 * libFLAC usually only requires the standard C library and C math
60 * library. In particular, threading is not used so there is no
61 * dependency on a thread library. However, libFLAC does not use
62 * global variables and should be thread-safe.
64 * \section cpp_api FLAC C API
66 * The FLAC C++ API is a set of classes that encapsulate the
67 * structures and functions in libFLAC. They provide slightly more
68 * functionality with respect to metadata but are otherwise
69 * equivalent. For the most part, they share the same usage as
70 * their counterparts in libFLAC, and the FLAC C API documentation
71 * can be used as a supplement. The public include files
72 * for the C++ API will be installed in your include area as
73 * <include>/FLAC++/...
75 * libFLAC++ is also licensed under the
76 * <A HREF="http://www.gnu.org/copyleft/lesser.html">LGPL</A>.
78 * \section getting_started Getting Started
80 * A good starting point for learning the API is to browse through
81 * the <A HREF="modules.html">modules</A>. Modules are logical
82 * groupings of related functions or classes, which correspond roughly
83 * to header files or sections of header files. Each module includes a
84 * detailed description of the general usage of its functions or
87 * From there you can go on to look at the documentation of
88 * individual functions. You can see different views of the individual
89 * functions through the links in top bar across this page.
92 /** \defgroup flac FLAC C API
94 * The FLAC C API is the interface to libFLAC, a set of structures
95 * describing the components of FLAC streams, and functions for
96 * encoding and decoding streams, as well as manipulating FLAC
99 * You should start with the format components as all other modules
100 * are dependent on it.