view src/flac-1.2.1/doc/html/api/format_8h-source.html @ 83:ae30d91d2ffe

Replace these with versions built using an older toolset (so as to avoid ABI compatibilities when linking on Ubuntu 14.04 for packaging purposes)
author Chris Cannam
date Fri, 07 Feb 2020 11:51:13 +0000
parents 05aa0afa9217
children
line wrap: on
line source
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>FLAC: include/FLAC/format.h Source File</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.4.2 -->
<div class="qindex"><a class="qindex" href="index.html">Main&nbsp;Page</a> | <a class="qindex" href="modules.html">Modules</a> | <a class="qindex" href="hierarchy.html">Class&nbsp;Hierarchy</a> | <a class="qindex" href="classes.html">Alphabetical&nbsp;List</a> | <a class="qindex" href="annotated.html">Class&nbsp;List</a> | <a class="qindex" href="dirs.html">Directories</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="functions.html">Class&nbsp;Members</a> | <a class="qindex" href="globals.html">File&nbsp;Members</a></div>
<div class="nav">
<a class="el" href="dir_000000.html">include</a>&nbsp;/&nbsp;<a class="el" href="dir_000002.html">FLAC</a></div>
<h1>format.h</h1><a href="format_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment">00001 <span class="comment">/* libFLAC - Free Lossless Audio Codec library</span>
00002 <span class="comment"> * Copyright (C) 2000,2001,2002,2003,2004,2005,2006,2007  Josh Coalson</span>
00003 <span class="comment"> *</span>
00004 <span class="comment"> * Redistribution and use in source and binary forms, with or without</span>
00005 <span class="comment"> * modification, are permitted provided that the following conditions</span>
00006 <span class="comment"> * are met:</span>
00007 <span class="comment"> *</span>
00008 <span class="comment"> * - Redistributions of source code must retain the above copyright</span>
00009 <span class="comment"> * notice, this list of conditions and the following disclaimer.</span>
00010 <span class="comment"> *</span>
00011 <span class="comment"> * - Redistributions in binary form must reproduce the above copyright</span>
00012 <span class="comment"> * notice, this list of conditions and the following disclaimer in the</span>
00013 <span class="comment"> * documentation and/or other materials provided with the distribution.</span>
00014 <span class="comment"> *</span>
00015 <span class="comment"> * - Neither the name of the Xiph.org Foundation nor the names of its</span>
00016 <span class="comment"> * contributors may be used to endorse or promote products derived from</span>
00017 <span class="comment"> * this software without specific prior written permission.</span>
00018 <span class="comment"> *</span>
00019 <span class="comment"> * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS</span>
00020 <span class="comment"> * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT</span>
00021 <span class="comment"> * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR</span>
00022 <span class="comment"> * A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR</span>
00023 <span class="comment"> * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,</span>
00024 <span class="comment"> * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,</span>
00025 <span class="comment"> * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR</span>
00026 <span class="comment"> * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF</span>
00027 <span class="comment"> * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING</span>
00028 <span class="comment"> * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS</span>
00029 <span class="comment"> * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.</span>
00030 <span class="comment"> */</span>
00031 
00032 <span class="preprocessor">#ifndef FLAC__FORMAT_H</span>
00033 <span class="preprocessor"></span><span class="preprocessor">#define FLAC__FORMAT_H</span>
00034 <span class="preprocessor"></span>
00035 <span class="preprocessor">#include "<a class="code" href="export_8h.html">export.h</a>"</span>
00036 <span class="preprocessor">#include "ordinals.h"</span>
00037 
00038 <span class="preprocessor">#ifdef __cplusplus</span>
00039 <span class="preprocessor"></span><span class="keyword">extern</span> <span class="stringliteral">"C"</span> {
00040 <span class="preprocessor">#endif</span>
00041 <span class="preprocessor"></span>
00086 <span class="comment">/*</span>
00087 <span class="comment">    Most of the values described in this file are defined by the FLAC</span>
00088 <span class="comment">    format specification.  There is nothing to tune here.</span>
00089 <span class="comment">*/</span>
00090 
<a name="l00092"></a><a class="code" href="group__flac__format.html#ga89">00092</a> <span class="preprocessor">#define FLAC__MAX_METADATA_TYPE_CODE (126u)</span>
00093 <span class="preprocessor"></span>
<a name="l00095"></a><a class="code" href="group__flac__format.html#ga90">00095</a> <span class="preprocessor">#define FLAC__MIN_BLOCK_SIZE (16u)</span>
00096 <span class="preprocessor"></span>
<a name="l00098"></a><a class="code" href="group__flac__format.html#ga91">00098</a> <span class="preprocessor">#define FLAC__MAX_BLOCK_SIZE (65535u)</span>
00099 <span class="preprocessor"></span>
<a name="l00102"></a><a class="code" href="group__flac__format.html#ga92">00102</a> <span class="preprocessor">#define FLAC__SUBSET_MAX_BLOCK_SIZE_48000HZ (4608u)</span>
00103 <span class="preprocessor"></span>
<a name="l00105"></a><a class="code" href="group__flac__format.html#ga93">00105</a> <span class="preprocessor">#define FLAC__MAX_CHANNELS (8u)</span>
00106 <span class="preprocessor"></span>
<a name="l00108"></a><a class="code" href="group__flac__format.html#ga94">00108</a> <span class="preprocessor">#define FLAC__MIN_BITS_PER_SAMPLE (4u)</span>
00109 <span class="preprocessor"></span>
<a name="l00111"></a><a class="code" href="group__flac__format.html#ga95">00111</a> <span class="preprocessor">#define FLAC__MAX_BITS_PER_SAMPLE (32u)</span>
00112 <span class="preprocessor"></span>
<a name="l00121"></a><a class="code" href="group__flac__format.html#ga96">00121</a> <span class="preprocessor">#define FLAC__REFERENCE_CODEC_MAX_BITS_PER_SAMPLE (24u)</span>
00122 <span class="preprocessor"></span>
<a name="l00127"></a><a class="code" href="group__flac__format.html#ga97">00127</a> <span class="preprocessor">#define FLAC__MAX_SAMPLE_RATE (655350u)</span>
00128 <span class="preprocessor"></span>
<a name="l00130"></a><a class="code" href="group__flac__format.html#ga98">00130</a> <span class="preprocessor">#define FLAC__MAX_LPC_ORDER (32u)</span>
00131 <span class="preprocessor"></span>
<a name="l00134"></a><a class="code" href="group__flac__format.html#ga99">00134</a> <span class="preprocessor">#define FLAC__SUBSET_MAX_LPC_ORDER_48000HZ (12u)</span>
00135 <span class="preprocessor"></span>
<a name="l00139"></a><a class="code" href="group__flac__format.html#ga100">00139</a> <span class="preprocessor">#define FLAC__MIN_QLP_COEFF_PRECISION (5u)</span>
00140 <span class="preprocessor"></span>
<a name="l00144"></a><a class="code" href="group__flac__format.html#ga101">00144</a> <span class="preprocessor">#define FLAC__MAX_QLP_COEFF_PRECISION (15u)</span>
00145 <span class="preprocessor"></span>
<a name="l00147"></a><a class="code" href="group__flac__format.html#ga102">00147</a> <span class="preprocessor">#define FLAC__MAX_FIXED_ORDER (4u)</span>
00148 <span class="preprocessor"></span>
<a name="l00150"></a><a class="code" href="group__flac__format.html#ga103">00150</a> <span class="preprocessor">#define FLAC__MAX_RICE_PARTITION_ORDER (15u)</span>
00151 <span class="preprocessor"></span>
<a name="l00153"></a><a class="code" href="group__flac__format.html#ga104">00153</a> <span class="preprocessor">#define FLAC__SUBSET_MAX_RICE_PARTITION_ORDER (8u)</span>
00154 <span class="preprocessor"></span>
00161 <span class="keyword">extern</span> FLAC_API <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="group__flac__format.html#ga0">FLAC__VERSION_STRING</a>;
00162 
00167 <span class="keyword">extern</span> FLAC_API <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="group__flac__format.html#ga1">FLAC__VENDOR_STRING</a>;
00168 
00170 <span class="keyword">extern</span> FLAC_API <span class="keyword">const</span> FLAC__byte <a class="code" href="group__flac__format.html#ga2">FLAC__STREAM_SYNC_STRING</a>[4]; <span class="comment">/* = "fLaC" */</span>
00171 
00175 <span class="keyword">extern</span> FLAC_API <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <a class="code" href="group__flac__format.html#ga3">FLAC__STREAM_SYNC</a>; <span class="comment">/* = 0x664C6143 */</span>
00176 
00178 <span class="keyword">extern</span> FLAC_API <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <a class="code" href="group__flac__format.html#ga4">FLAC__STREAM_SYNC_LEN</a>; <span class="comment">/* = 32 bits */</span>
00179 
<a name="l00181"></a><a class="code" href="group__flac__format.html#ga105">00181</a> <span class="preprocessor">#define FLAC__STREAM_SYNC_LENGTH (4u)</span>
00182 <span class="preprocessor"></span>
00183 
00184 <span class="comment">/*****************************************************************************</span>
00185 <span class="comment"> *</span>
00186 <span class="comment"> * Subframe structures</span>
00187 <span class="comment"> *</span>
00188 <span class="comment"> *****************************************************************************/</span>
00189 
00190 <span class="comment">/*****************************************************************************/</span>
00191 
<a name="l00193"></a><a class="code" href="group__flac__format.html#ga109">00193</a> <span class="keyword">typedef</span> <span class="keyword">enum</span> {
00194     <a class="code" href="group__flac__format.html#gga109a100">FLAC__ENTROPY_CODING_METHOD_PARTITIONED_RICE</a> = 0,
00198     <a class="code" href="group__flac__format.html#gga109a101">FLAC__ENTROPY_CODING_METHOD_PARTITIONED_RICE2</a> = 1
00201 } <a class="code" href="group__flac__format.html#ga109">FLAC__EntropyCodingMethodType</a>;
00202 
00208 <span class="keyword">extern</span> FLAC_API <span class="keyword">const</span> <span class="keywordtype">char</span> * <span class="keyword">const</span> <a class="code" href="group__flac__format.html#ga5">FLAC__EntropyCodingMethodTypeString</a>[];
00209 
00210 
<a name="l00213"></a><a class="code" href="structFLAC____EntropyCodingMethod__PartitionedRiceContents.html">00213</a> <span class="keyword">typedef</span> <span class="keyword">struct </span>{
00214 
00215     <span class="keywordtype">unsigned</span> *parameters;
00218     <span class="keywordtype">unsigned</span> *raw_bits;
00223     <span class="keywordtype">unsigned</span> capacity_by_order;
00228 } <a class="code" href="structFLAC____EntropyCodingMethod__PartitionedRiceContents.html">FLAC__EntropyCodingMethod_PartitionedRiceContents</a>;
00229 
<a name="l00232"></a><a class="code" href="structFLAC____EntropyCodingMethod__PartitionedRice.html">00232</a> <span class="keyword">typedef</span> <span class="keyword">struct </span>{
00233 
00234     <span class="keywordtype">unsigned</span> order;
00237     <span class="keyword">const</span> <a class="code" href="structFLAC____EntropyCodingMethod__PartitionedRiceContents.html">FLAC__EntropyCodingMethod_PartitionedRiceContents</a> *contents;
00240 } <a class="code" href="structFLAC____EntropyCodingMethod__PartitionedRice.html">FLAC__EntropyCodingMethod_PartitionedRice</a>;
00241 
00242 <span class="keyword">extern</span> FLAC_API <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <a class="code" href="group__flac__format.html#ga6">FLAC__ENTROPY_CODING_METHOD_PARTITIONED_RICE_ORDER_LEN</a>; 
00243 <span class="keyword">extern</span> FLAC_API <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <a class="code" href="group__flac__format.html#ga7">FLAC__ENTROPY_CODING_METHOD_PARTITIONED_RICE_PARAMETER_LEN</a>; 
00244 <span class="keyword">extern</span> FLAC_API <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <a class="code" href="group__flac__format.html#ga8">FLAC__ENTROPY_CODING_METHOD_PARTITIONED_RICE2_PARAMETER_LEN</a>; 
00245 <span class="keyword">extern</span> FLAC_API <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <a class="code" href="group__flac__format.html#ga9">FLAC__ENTROPY_CODING_METHOD_PARTITIONED_RICE_RAW_LEN</a>; 
00247 <span class="keyword">extern</span> FLAC_API <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <a class="code" href="group__flac__format.html#ga10">FLAC__ENTROPY_CODING_METHOD_PARTITIONED_RICE_ESCAPE_PARAMETER</a>;
00249 <span class="keyword">extern</span> FLAC_API <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <a class="code" href="group__flac__format.html#ga11">FLAC__ENTROPY_CODING_METHOD_PARTITIONED_RICE2_ESCAPE_PARAMETER</a>;
<a name="l00254"></a><a class="code" href="structFLAC____EntropyCodingMethod.html">00254</a> <span class="keyword">typedef</span> <span class="keyword">struct </span>{
00255     <a class="code" href="group__flac__format.html#ga109">FLAC__EntropyCodingMethodType</a> type;
00256     <span class="keyword">union </span>{
00257         <a class="code" href="structFLAC____EntropyCodingMethod__PartitionedRice.html">FLAC__EntropyCodingMethod_PartitionedRice</a> partitioned_rice;
00258     } data;
00259 } <a class="code" href="structFLAC____EntropyCodingMethod.html">FLAC__EntropyCodingMethod</a>;
00260 
00261 <span class="keyword">extern</span> FLAC_API <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <a class="code" href="group__flac__format.html#ga12">FLAC__ENTROPY_CODING_METHOD_TYPE_LEN</a>; 
00263 <span class="comment">/*****************************************************************************/</span>
00264 
<a name="l00266"></a><a class="code" href="group__flac__format.html#ga110">00266</a> <span class="keyword">typedef</span> <span class="keyword">enum</span> {
00267     <a class="code" href="group__flac__format.html#gga110a102">FLAC__SUBFRAME_TYPE_CONSTANT</a> = 0, 
00268     <a class="code" href="group__flac__format.html#gga110a103">FLAC__SUBFRAME_TYPE_VERBATIM</a> = 1, 
00269     <a class="code" href="group__flac__format.html#gga110a104">FLAC__SUBFRAME_TYPE_FIXED</a> = 2, 
00270     <a class="code" href="group__flac__format.html#gga110a105">FLAC__SUBFRAME_TYPE_LPC</a> = 3 
00271 } <a class="code" href="group__flac__format.html#ga110">FLAC__SubframeType</a>;
00272 
00278 <span class="keyword">extern</span> FLAC_API <span class="keyword">const</span> <span class="keywordtype">char</span> * <span class="keyword">const</span> <a class="code" href="group__flac__format.html#ga13">FLAC__SubframeTypeString</a>[];
00279 
00280 
<a name="l00283"></a><a class="code" href="structFLAC____Subframe__Constant.html">00283</a> <span class="keyword">typedef</span> <span class="keyword">struct </span>{
<a name="l00284"></a><a class="code" href="structFLAC____Subframe__Constant.html#FLAC____Subframe__Constanto0">00284</a>     FLAC__int32 value; 
00285 } <a class="code" href="structFLAC____Subframe__Constant.html">FLAC__Subframe_Constant</a>;
00286 
00287 
<a name="l00290"></a><a class="code" href="structFLAC____Subframe__Verbatim.html">00290</a> <span class="keyword">typedef</span> <span class="keyword">struct </span>{
<a name="l00291"></a><a class="code" href="structFLAC____Subframe__Verbatim.html#FLAC____Subframe__Verbatimo0">00291</a>     <span class="keyword">const</span> FLAC__int32 *data; 
00292 } <a class="code" href="structFLAC____Subframe__Verbatim.html">FLAC__Subframe_Verbatim</a>;
00293 
00294 
<a name="l00297"></a><a class="code" href="structFLAC____Subframe__Fixed.html">00297</a> <span class="keyword">typedef</span> <span class="keyword">struct </span>{
00298     <a class="code" href="structFLAC____EntropyCodingMethod.html">FLAC__EntropyCodingMethod</a> entropy_coding_method;
00301     <span class="keywordtype">unsigned</span> order;
00304     FLAC__int32 warmup[<a class="code" href="group__flac__format.html#ga102">FLAC__MAX_FIXED_ORDER</a>];
00307     <span class="keyword">const</span> FLAC__int32 *residual;
00309 } <a class="code" href="structFLAC____Subframe__Fixed.html">FLAC__Subframe_Fixed</a>;
00310 
00311 
<a name="l00314"></a><a class="code" href="structFLAC____Subframe__LPC.html">00314</a> <span class="keyword">typedef</span> <span class="keyword">struct </span>{
00315     <a class="code" href="structFLAC____EntropyCodingMethod.html">FLAC__EntropyCodingMethod</a> entropy_coding_method;
00318     <span class="keywordtype">unsigned</span> order;
00321     <span class="keywordtype">unsigned</span> qlp_coeff_precision;
00324     <span class="keywordtype">int</span> quantization_level;
00327     FLAC__int32 qlp_coeff[<a class="code" href="group__flac__format.html#ga98">FLAC__MAX_LPC_ORDER</a>];
00330     FLAC__int32 warmup[<a class="code" href="group__flac__format.html#ga98">FLAC__MAX_LPC_ORDER</a>];
00333     <span class="keyword">const</span> FLAC__int32 *residual;
00335 } <a class="code" href="structFLAC____Subframe__LPC.html">FLAC__Subframe_LPC</a>;
00336 
00337 <span class="keyword">extern</span> FLAC_API <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <a class="code" href="group__flac__format.html#ga14">FLAC__SUBFRAME_LPC_QLP_COEFF_PRECISION_LEN</a>; 
00338 <span class="keyword">extern</span> FLAC_API <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <a class="code" href="group__flac__format.html#ga15">FLAC__SUBFRAME_LPC_QLP_SHIFT_LEN</a>; 
<a name="l00343"></a><a class="code" href="structFLAC____Subframe.html">00343</a> <span class="keyword">typedef</span> <span class="keyword">struct </span>{
00344     <a class="code" href="group__flac__format.html#ga110">FLAC__SubframeType</a> type;
00345     <span class="keyword">union </span>{
00346         <a class="code" href="structFLAC____Subframe__Constant.html">FLAC__Subframe_Constant</a> constant;
00347         <a class="code" href="structFLAC____Subframe__Fixed.html">FLAC__Subframe_Fixed</a> fixed;
00348         <a class="code" href="structFLAC____Subframe__LPC.html">FLAC__Subframe_LPC</a> lpc;
00349         <a class="code" href="structFLAC____Subframe__Verbatim.html">FLAC__Subframe_Verbatim</a> verbatim;
00350     } data;
00351     <span class="keywordtype">unsigned</span> wasted_bits;
00352 } <a class="code" href="structFLAC____Subframe.html">FLAC__Subframe</a>;
00353 
00361 <span class="keyword">extern</span> FLAC_API <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <a class="code" href="group__flac__format.html#ga16">FLAC__SUBFRAME_ZERO_PAD_LEN</a>;
00362 <span class="keyword">extern</span> FLAC_API <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <a class="code" href="group__flac__format.html#ga17">FLAC__SUBFRAME_TYPE_LEN</a>; 
00363 <span class="keyword">extern</span> FLAC_API <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <a class="code" href="group__flac__format.html#ga18">FLAC__SUBFRAME_WASTED_BITS_FLAG_LEN</a>; 
00365 <span class="keyword">extern</span> FLAC_API <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <a class="code" href="group__flac__format.html#ga19">FLAC__SUBFRAME_TYPE_CONSTANT_BYTE_ALIGNED_MASK</a>; 
00366 <span class="keyword">extern</span> FLAC_API <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <a class="code" href="group__flac__format.html#ga20">FLAC__SUBFRAME_TYPE_VERBATIM_BYTE_ALIGNED_MASK</a>; 
00367 <span class="keyword">extern</span> FLAC_API <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <a class="code" href="group__flac__format.html#ga21">FLAC__SUBFRAME_TYPE_FIXED_BYTE_ALIGNED_MASK</a>; 
00368 <span class="keyword">extern</span> FLAC_API <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <a class="code" href="group__flac__format.html#ga22">FLAC__SUBFRAME_TYPE_LPC_BYTE_ALIGNED_MASK</a>; 
00370 <span class="comment">/*****************************************************************************/</span>
00371 
00372 
00373 <span class="comment">/*****************************************************************************</span>
00374 <span class="comment"> *</span>
00375 <span class="comment"> * Frame structures</span>
00376 <span class="comment"> *</span>
00377 <span class="comment"> *****************************************************************************/</span>
00378 
<a name="l00380"></a><a class="code" href="group__flac__format.html#ga111">00380</a> <span class="keyword">typedef</span> <span class="keyword">enum</span> {
00381     <a class="code" href="group__flac__format.html#gga111a106">FLAC__CHANNEL_ASSIGNMENT_INDEPENDENT</a> = 0, 
00382     <a class="code" href="group__flac__format.html#gga111a107">FLAC__CHANNEL_ASSIGNMENT_LEFT_SIDE</a> = 1, 
00383     <a class="code" href="group__flac__format.html#gga111a108">FLAC__CHANNEL_ASSIGNMENT_RIGHT_SIDE</a> = 2, 
00384     <a class="code" href="group__flac__format.html#gga111a109">FLAC__CHANNEL_ASSIGNMENT_MID_SIDE</a> = 3 
00385 } <a class="code" href="group__flac__format.html#ga111">FLAC__ChannelAssignment</a>;
00386 
00392 <span class="keyword">extern</span> FLAC_API <span class="keyword">const</span> <span class="keywordtype">char</span> * <span class="keyword">const</span> <a class="code" href="group__flac__format.html#ga23">FLAC__ChannelAssignmentString</a>[];
00393 
<a name="l00395"></a><a class="code" href="group__flac__format.html#ga112">00395</a> <span class="keyword">typedef</span> <span class="keyword">enum</span> {
00396     <a class="code" href="group__flac__format.html#gga112a110">FLAC__FRAME_NUMBER_TYPE_FRAME_NUMBER</a>, 
00397     <a class="code" href="group__flac__format.html#gga112a111">FLAC__FRAME_NUMBER_TYPE_SAMPLE_NUMBER</a> 
00398 } <a class="code" href="group__flac__format.html#ga112">FLAC__FrameNumberType</a>;
00399 
00405 <span class="keyword">extern</span> FLAC_API <span class="keyword">const</span> <span class="keywordtype">char</span> * <span class="keyword">const</span> <a class="code" href="group__flac__format.html#ga24">FLAC__FrameNumberTypeString</a>[];
00406 
00407 
<a name="l00410"></a><a class="code" href="structFLAC____FrameHeader.html">00410</a> <span class="keyword">typedef</span> <span class="keyword">struct </span>{
00411     <span class="keywordtype">unsigned</span> blocksize;
00414     <span class="keywordtype">unsigned</span> sample_rate;
00417     <span class="keywordtype">unsigned</span> channels;
00420     <a class="code" href="group__flac__format.html#ga111">FLAC__ChannelAssignment</a> channel_assignment;
00423     <span class="keywordtype">unsigned</span> bits_per_sample;
00426     FLAC__FrameNumberType number_type;
00431     <span class="keyword">union </span>{
00432         FLAC__uint32 frame_number;
00433         FLAC__uint64 sample_number;
00434     } number;
00438     FLAC__uint8 crc;
00443 } <a class="code" href="structFLAC____FrameHeader.html">FLAC__FrameHeader</a>;
00444 
00445 <span class="keyword">extern</span> FLAC_API <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <a class="code" href="group__flac__format.html#ga25">FLAC__FRAME_HEADER_SYNC</a>; 
00446 <span class="keyword">extern</span> FLAC_API <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <a class="code" href="group__flac__format.html#ga26">FLAC__FRAME_HEADER_SYNC_LEN</a>; 
00447 <span class="keyword">extern</span> FLAC_API <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <a class="code" href="group__flac__format.html#ga27">FLAC__FRAME_HEADER_RESERVED_LEN</a>; 
00448 <span class="keyword">extern</span> FLAC_API <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <a class="code" href="group__flac__format.html#ga28">FLAC__FRAME_HEADER_BLOCKING_STRATEGY_LEN</a>; 
00449 <span class="keyword">extern</span> FLAC_API <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <a class="code" href="group__flac__format.html#ga29">FLAC__FRAME_HEADER_BLOCK_SIZE_LEN</a>; 
00450 <span class="keyword">extern</span> FLAC_API <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <a class="code" href="group__flac__format.html#ga30">FLAC__FRAME_HEADER_SAMPLE_RATE_LEN</a>; 
00451 <span class="keyword">extern</span> FLAC_API <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <a class="code" href="group__flac__format.html#ga31">FLAC__FRAME_HEADER_CHANNEL_ASSIGNMENT_LEN</a>; 
00452 <span class="keyword">extern</span> FLAC_API <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <a class="code" href="group__flac__format.html#ga32">FLAC__FRAME_HEADER_BITS_PER_SAMPLE_LEN</a>; 
00453 <span class="keyword">extern</span> FLAC_API <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <a class="code" href="group__flac__format.html#ga33">FLAC__FRAME_HEADER_ZERO_PAD_LEN</a>; 
00454 <span class="keyword">extern</span> FLAC_API <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <a class="code" href="group__flac__format.html#ga34">FLAC__FRAME_HEADER_CRC_LEN</a>; 
<a name="l00459"></a><a class="code" href="structFLAC____FrameFooter.html">00459</a> <span class="keyword">typedef</span> <span class="keyword">struct </span>{
00460     FLAC__uint16 crc;
00465 } <a class="code" href="structFLAC____FrameFooter.html">FLAC__FrameFooter</a>;
00466 
00467 <span class="keyword">extern</span> FLAC_API <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <a class="code" href="group__flac__format.html#ga35">FLAC__FRAME_FOOTER_CRC_LEN</a>; 
<a name="l00472"></a><a class="code" href="structFLAC____Frame.html">00472</a> <span class="keyword">typedef</span> <span class="keyword">struct </span>{
00473     <a class="code" href="structFLAC____FrameHeader.html">FLAC__FrameHeader</a> header;
00474     <a class="code" href="structFLAC____Subframe.html">FLAC__Subframe</a> subframes[<a class="code" href="group__flac__format.html#ga93">FLAC__MAX_CHANNELS</a>];
00475     <a class="code" href="structFLAC____FrameFooter.html">FLAC__FrameFooter</a> footer;
00476 } <a class="code" href="structFLAC____Frame.html">FLAC__Frame</a>;
00477 
00478 <span class="comment">/*****************************************************************************/</span>
00479 
00480 
00481 <span class="comment">/*****************************************************************************</span>
00482 <span class="comment"> *</span>
00483 <span class="comment"> * Meta-data structures</span>
00484 <span class="comment"> *</span>
00485 <span class="comment"> *****************************************************************************/</span>
00486 
<a name="l00488"></a><a class="code" href="group__flac__format.html#ga113">00488</a> <span class="keyword">typedef</span> <span class="keyword">enum</span> {
00489 
00490     <a class="code" href="group__flac__format.html#gga113a112">FLAC__METADATA_TYPE_STREAMINFO</a> = 0,
00493     <a class="code" href="group__flac__format.html#gga113a113">FLAC__METADATA_TYPE_PADDING</a> = 1,
00496     <a class="code" href="group__flac__format.html#gga113a114">FLAC__METADATA_TYPE_APPLICATION</a> = 2,
00499     <a class="code" href="group__flac__format.html#gga113a115">FLAC__METADATA_TYPE_SEEKTABLE</a> = 3,
00502     <a class="code" href="group__flac__format.html#gga113a116">FLAC__METADATA_TYPE_VORBIS_COMMENT</a> = 4,
00505     <a class="code" href="group__flac__format.html#gga113a117">FLAC__METADATA_TYPE_CUESHEET</a> = 5,
00508     <a class="code" href="group__flac__format.html#gga113a118">FLAC__METADATA_TYPE_PICTURE</a> = 6,
00511     <a class="code" href="group__flac__format.html#gga113a119">FLAC__METADATA_TYPE_UNDEFINED</a> = 7
00514 } <a class="code" href="group__flac__format.html#ga113">FLAC__MetadataType</a>;
00515 
00521 <span class="keyword">extern</span> FLAC_API <span class="keyword">const</span> <span class="keywordtype">char</span> * <span class="keyword">const</span> <a class="code" href="group__flac__format.html#ga36">FLAC__MetadataTypeString</a>[];
00522 
00523 
<a name="l00526"></a><a class="code" href="structFLAC____StreamMetadata__StreamInfo.html">00526</a> <span class="keyword">typedef</span> <span class="keyword">struct </span>{
00527     <span class="keywordtype">unsigned</span> min_blocksize, max_blocksize;
00528     <span class="keywordtype">unsigned</span> min_framesize, max_framesize;
00529     <span class="keywordtype">unsigned</span> sample_rate;
00530     <span class="keywordtype">unsigned</span> channels;
00531     <span class="keywordtype">unsigned</span> bits_per_sample;
00532     FLAC__uint64 total_samples;
00533     FLAC__byte md5sum[16];
00534 } <a class="code" href="structFLAC____StreamMetadata__StreamInfo.html">FLAC__StreamMetadata_StreamInfo</a>;
00535 
00536 <span class="keyword">extern</span> FLAC_API <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <a class="code" href="group__flac__format.html#ga37">FLAC__STREAM_METADATA_STREAMINFO_MIN_BLOCK_SIZE_LEN</a>; 
00537 <span class="keyword">extern</span> FLAC_API <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <a class="code" href="group__flac__format.html#ga38">FLAC__STREAM_METADATA_STREAMINFO_MAX_BLOCK_SIZE_LEN</a>; 
00538 <span class="keyword">extern</span> FLAC_API <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <a class="code" href="group__flac__format.html#ga39">FLAC__STREAM_METADATA_STREAMINFO_MIN_FRAME_SIZE_LEN</a>; 
00539 <span class="keyword">extern</span> FLAC_API <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <a class="code" href="group__flac__format.html#ga40">FLAC__STREAM_METADATA_STREAMINFO_MAX_FRAME_SIZE_LEN</a>; 
00540 <span class="keyword">extern</span> FLAC_API <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <a class="code" href="group__flac__format.html#ga41">FLAC__STREAM_METADATA_STREAMINFO_SAMPLE_RATE_LEN</a>; 
00541 <span class="keyword">extern</span> FLAC_API <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <a class="code" href="group__flac__format.html#ga42">FLAC__STREAM_METADATA_STREAMINFO_CHANNELS_LEN</a>; 
00542 <span class="keyword">extern</span> FLAC_API <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <a class="code" href="group__flac__format.html#ga43">FLAC__STREAM_METADATA_STREAMINFO_BITS_PER_SAMPLE_LEN</a>; 
00543 <span class="keyword">extern</span> FLAC_API <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <a class="code" href="group__flac__format.html#ga44">FLAC__STREAM_METADATA_STREAMINFO_TOTAL_SAMPLES_LEN</a>; 
00544 <span class="keyword">extern</span> FLAC_API <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <a class="code" href="group__flac__format.html#ga45">FLAC__STREAM_METADATA_STREAMINFO_MD5SUM_LEN</a>; 
<a name="l00547"></a><a class="code" href="group__flac__format.html#ga106">00547</a> <span class="preprocessor">#define FLAC__STREAM_METADATA_STREAMINFO_LENGTH (34u)</span>
00548 <span class="preprocessor"></span>
<a name="l00551"></a><a class="code" href="structFLAC____StreamMetadata__Padding.html">00551</a> <span class="keyword">typedef</span> <span class="keyword">struct </span>{
00552     <span class="keywordtype">int</span> dummy;
00557 } <a class="code" href="structFLAC____StreamMetadata__Padding.html">FLAC__StreamMetadata_Padding</a>;
00558 
00559 
<a name="l00562"></a><a class="code" href="structFLAC____StreamMetadata__Application.html">00562</a> <span class="keyword">typedef</span> <span class="keyword">struct </span>{
00563     FLAC__byte <span class="keywordtype">id</span>[4];
00564     FLAC__byte *data;
00565 } <a class="code" href="structFLAC____StreamMetadata__Application.html">FLAC__StreamMetadata_Application</a>;
00566 
00567 <span class="keyword">extern</span> FLAC_API <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <a class="code" href="group__flac__format.html#ga46">FLAC__STREAM_METADATA_APPLICATION_ID_LEN</a>; 
<a name="l00571"></a><a class="code" href="structFLAC____StreamMetadata__SeekPoint.html">00571</a> <span class="keyword">typedef</span> <span class="keyword">struct </span>{
00572     FLAC__uint64 sample_number;
00575     FLAC__uint64 stream_offset;
00579     <span class="keywordtype">unsigned</span> frame_samples;
00581 } <a class="code" href="structFLAC____StreamMetadata__SeekPoint.html">FLAC__StreamMetadata_SeekPoint</a>;
00582 
00583 <span class="keyword">extern</span> FLAC_API <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <a class="code" href="group__flac__format.html#ga47">FLAC__STREAM_METADATA_SEEKPOINT_SAMPLE_NUMBER_LEN</a>; 
00584 <span class="keyword">extern</span> FLAC_API <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <a class="code" href="group__flac__format.html#ga48">FLAC__STREAM_METADATA_SEEKPOINT_STREAM_OFFSET_LEN</a>; 
00585 <span class="keyword">extern</span> FLAC_API <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <a class="code" href="group__flac__format.html#ga49">FLAC__STREAM_METADATA_SEEKPOINT_FRAME_SAMPLES_LEN</a>; 
<a name="l00588"></a><a class="code" href="group__flac__format.html#ga107">00588</a> <span class="preprocessor">#define FLAC__STREAM_METADATA_SEEKPOINT_LENGTH (18u)</span>
00589 <span class="preprocessor"></span>
00594 <span class="keyword">extern</span> FLAC_API <span class="keyword">const</span> FLAC__uint64 <a class="code" href="group__flac__format.html#ga50">FLAC__STREAM_METADATA_SEEKPOINT_PLACEHOLDER</a>;
00595 
00596 
<a name="l00609"></a><a class="code" href="structFLAC____StreamMetadata__SeekTable.html">00609</a> <span class="keyword">typedef</span> <span class="keyword">struct </span>{
00610     <span class="keywordtype">unsigned</span> num_points;
00611     <a class="code" href="structFLAC____StreamMetadata__SeekPoint.html">FLAC__StreamMetadata_SeekPoint</a> *points;
00612 } <a class="code" href="structFLAC____StreamMetadata__SeekTable.html">FLAC__StreamMetadata_SeekTable</a>;
00613 
00614 
<a name="l00621"></a><a class="code" href="structFLAC____StreamMetadata__VorbisComment__Entry.html">00621</a> <span class="keyword">typedef</span> <span class="keyword">struct </span>{
00622     FLAC__uint32 length;
00623     FLAC__byte *entry;
00624 } <a class="code" href="structFLAC____StreamMetadata__VorbisComment__Entry.html">FLAC__StreamMetadata_VorbisComment_Entry</a>;
00625 
00626 <span class="keyword">extern</span> FLAC_API <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <a class="code" href="group__flac__format.html#ga51">FLAC__STREAM_METADATA_VORBIS_COMMENT_ENTRY_LENGTH_LEN</a>; 
<a name="l00631"></a><a class="code" href="structFLAC____StreamMetadata__VorbisComment.html">00631</a> <span class="keyword">typedef</span> <span class="keyword">struct </span>{
00632     <a class="code" href="structFLAC____StreamMetadata__VorbisComment__Entry.html">FLAC__StreamMetadata_VorbisComment_Entry</a> vendor_string;
00633     FLAC__uint32 num_comments;
00634     <a class="code" href="structFLAC____StreamMetadata__VorbisComment__Entry.html">FLAC__StreamMetadata_VorbisComment_Entry</a> *comments;
00635 } <a class="code" href="structFLAC____StreamMetadata__VorbisComment.html">FLAC__StreamMetadata_VorbisComment</a>;
00636 
00637 <span class="keyword">extern</span> FLAC_API <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <a class="code" href="group__flac__format.html#ga52">FLAC__STREAM_METADATA_VORBIS_COMMENT_NUM_COMMENTS_LEN</a>; 
<a name="l00644"></a><a class="code" href="structFLAC____StreamMetadata__CueSheet__Index.html">00644</a> <span class="keyword">typedef</span> <span class="keyword">struct </span>{
00645     FLAC__uint64 offset;
00650     FLAC__byte number;
00652 } <a class="code" href="structFLAC____StreamMetadata__CueSheet__Index.html">FLAC__StreamMetadata_CueSheet_Index</a>;
00653 
00654 <span class="keyword">extern</span> FLAC_API <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <a class="code" href="group__flac__format.html#ga53">FLAC__STREAM_METADATA_CUESHEET_INDEX_OFFSET_LEN</a>; 
00655 <span class="keyword">extern</span> FLAC_API <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <a class="code" href="group__flac__format.html#ga54">FLAC__STREAM_METADATA_CUESHEET_INDEX_NUMBER_LEN</a>; 
00656 <span class="keyword">extern</span> FLAC_API <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <a class="code" href="group__flac__format.html#ga55">FLAC__STREAM_METADATA_CUESHEET_INDEX_RESERVED_LEN</a>; 
<a name="l00663"></a><a class="code" href="structFLAC____StreamMetadata__CueSheet__Track.html">00663</a> <span class="keyword">typedef</span> <span class="keyword">struct </span>{
00664     FLAC__uint64 offset;
00667     FLAC__byte number;
00670     <span class="keywordtype">char</span> isrc[13];
00673     <span class="keywordtype">unsigned</span> type:1;
00676     <span class="keywordtype">unsigned</span> pre_emphasis:1;
00679     FLAC__byte num_indices;
00682     <a class="code" href="structFLAC____StreamMetadata__CueSheet__Index.html">FLAC__StreamMetadata_CueSheet_Index</a> *indices;
00685 } <a class="code" href="structFLAC____StreamMetadata__CueSheet__Track.html">FLAC__StreamMetadata_CueSheet_Track</a>;
00686 
00687 <span class="keyword">extern</span> FLAC_API <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <a class="code" href="group__flac__format.html#ga56">FLAC__STREAM_METADATA_CUESHEET_TRACK_OFFSET_LEN</a>; 
00688 <span class="keyword">extern</span> FLAC_API <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <a class="code" href="group__flac__format.html#ga57">FLAC__STREAM_METADATA_CUESHEET_TRACK_NUMBER_LEN</a>; 
00689 <span class="keyword">extern</span> FLAC_API <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <a class="code" href="group__flac__format.html#ga58">FLAC__STREAM_METADATA_CUESHEET_TRACK_ISRC_LEN</a>; 
00690 <span class="keyword">extern</span> FLAC_API <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <a class="code" href="group__flac__format.html#ga59">FLAC__STREAM_METADATA_CUESHEET_TRACK_TYPE_LEN</a>; 
00691 <span class="keyword">extern</span> FLAC_API <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <a class="code" href="group__flac__format.html#ga60">FLAC__STREAM_METADATA_CUESHEET_TRACK_PRE_EMPHASIS_LEN</a>; 
00692 <span class="keyword">extern</span> FLAC_API <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <a class="code" href="group__flac__format.html#ga61">FLAC__STREAM_METADATA_CUESHEET_TRACK_RESERVED_LEN</a>; 
00693 <span class="keyword">extern</span> FLAC_API <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <a class="code" href="group__flac__format.html#ga62">FLAC__STREAM_METADATA_CUESHEET_TRACK_NUM_INDICES_LEN</a>; 
<a name="l00700"></a><a class="code" href="structFLAC____StreamMetadata__CueSheet.html">00700</a> <span class="keyword">typedef</span> <span class="keyword">struct </span>{
00701     <span class="keywordtype">char</span> media_catalog_number[129];
00707     FLAC__uint64 lead_in;
00710     FLAC__bool is_cd;
00713     <span class="keywordtype">unsigned</span> num_tracks;
00716     <a class="code" href="structFLAC____StreamMetadata__CueSheet__Track.html">FLAC__StreamMetadata_CueSheet_Track</a> *tracks;
00719 } <a class="code" href="structFLAC____StreamMetadata__CueSheet.html">FLAC__StreamMetadata_CueSheet</a>;
00720 
00721 <span class="keyword">extern</span> FLAC_API <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <a class="code" href="group__flac__format.html#ga63">FLAC__STREAM_METADATA_CUESHEET_MEDIA_CATALOG_NUMBER_LEN</a>; 
00722 <span class="keyword">extern</span> FLAC_API <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <a class="code" href="group__flac__format.html#ga64">FLAC__STREAM_METADATA_CUESHEET_LEAD_IN_LEN</a>; 
00723 <span class="keyword">extern</span> FLAC_API <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <a class="code" href="group__flac__format.html#ga65">FLAC__STREAM_METADATA_CUESHEET_IS_CD_LEN</a>; 
00724 <span class="keyword">extern</span> FLAC_API <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <a class="code" href="group__flac__format.html#ga66">FLAC__STREAM_METADATA_CUESHEET_RESERVED_LEN</a>; 
00725 <span class="keyword">extern</span> FLAC_API <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <a class="code" href="group__flac__format.html#ga67">FLAC__STREAM_METADATA_CUESHEET_NUM_TRACKS_LEN</a>; 
<a name="l00729"></a><a class="code" href="group__flac__format.html#ga114">00729</a> <span class="keyword">typedef</span> <span class="keyword">enum</span> {
00730     <a class="code" href="group__flac__format.html#gga114a120">FLAC__STREAM_METADATA_PICTURE_TYPE_OTHER</a> = 0, 
00731     <a class="code" href="group__flac__format.html#gga114a121">FLAC__STREAM_METADATA_PICTURE_TYPE_FILE_ICON_STANDARD</a> = 1, 
00732     <a class="code" href="group__flac__format.html#gga114a122">FLAC__STREAM_METADATA_PICTURE_TYPE_FILE_ICON</a> = 2, 
00733     <a class="code" href="group__flac__format.html#gga114a123">FLAC__STREAM_METADATA_PICTURE_TYPE_FRONT_COVER</a> = 3, 
00734     <a class="code" href="group__flac__format.html#gga114a124">FLAC__STREAM_METADATA_PICTURE_TYPE_BACK_COVER</a> = 4, 
00735     <a class="code" href="group__flac__format.html#gga114a125">FLAC__STREAM_METADATA_PICTURE_TYPE_LEAFLET_PAGE</a> = 5, 
00736     <a class="code" href="group__flac__format.html#gga114a126">FLAC__STREAM_METADATA_PICTURE_TYPE_MEDIA</a> = 6, 
00737     <a class="code" href="group__flac__format.html#gga114a127">FLAC__STREAM_METADATA_PICTURE_TYPE_LEAD_ARTIST</a> = 7, 
00738     <a class="code" href="group__flac__format.html#gga114a128">FLAC__STREAM_METADATA_PICTURE_TYPE_ARTIST</a> = 8, 
00739     <a class="code" href="group__flac__format.html#gga114a129">FLAC__STREAM_METADATA_PICTURE_TYPE_CONDUCTOR</a> = 9, 
00740     <a class="code" href="group__flac__format.html#gga114a130">FLAC__STREAM_METADATA_PICTURE_TYPE_BAND</a> = 10, 
00741     <a class="code" href="group__flac__format.html#gga114a131">FLAC__STREAM_METADATA_PICTURE_TYPE_COMPOSER</a> = 11, 
00742     <a class="code" href="group__flac__format.html#gga114a132">FLAC__STREAM_METADATA_PICTURE_TYPE_LYRICIST</a> = 12, 
00743     <a class="code" href="group__flac__format.html#gga114a133">FLAC__STREAM_METADATA_PICTURE_TYPE_RECORDING_LOCATION</a> = 13, 
00744     <a class="code" href="group__flac__format.html#gga114a134">FLAC__STREAM_METADATA_PICTURE_TYPE_DURING_RECORDING</a> = 14, 
00745     <a class="code" href="group__flac__format.html#gga114a135">FLAC__STREAM_METADATA_PICTURE_TYPE_DURING_PERFORMANCE</a> = 15, 
00746     <a class="code" href="group__flac__format.html#gga114a136">FLAC__STREAM_METADATA_PICTURE_TYPE_VIDEO_SCREEN_CAPTURE</a> = 16, 
00747     <a class="code" href="group__flac__format.html#gga114a137">FLAC__STREAM_METADATA_PICTURE_TYPE_FISH</a> = 17, 
00748     <a class="code" href="group__flac__format.html#gga114a138">FLAC__STREAM_METADATA_PICTURE_TYPE_ILLUSTRATION</a> = 18, 
00749     <a class="code" href="group__flac__format.html#gga114a139">FLAC__STREAM_METADATA_PICTURE_TYPE_BAND_LOGOTYPE</a> = 19, 
00750     <a class="code" href="group__flac__format.html#gga114a140">FLAC__STREAM_METADATA_PICTURE_TYPE_PUBLISHER_LOGOTYPE</a> = 20, 
00751     FLAC__STREAM_METADATA_PICTURE_TYPE_UNDEFINED
00752 } <a class="code" href="group__flac__format.html#ga114">FLAC__StreamMetadata_Picture_Type</a>;
00753 
00760 <span class="keyword">extern</span> FLAC_API <span class="keyword">const</span> <span class="keywordtype">char</span> * <span class="keyword">const</span> <a class="code" href="group__flac__format.html#ga68">FLAC__StreamMetadata_Picture_TypeString</a>[];
00761 
<a name="l00766"></a><a class="code" href="structFLAC____StreamMetadata__Picture.html">00766</a> <span class="keyword">typedef</span> <span class="keyword">struct </span>{
00767     FLAC__StreamMetadata_Picture_Type type;
00770     <span class="keywordtype">char</span> *mime_type;
00781     FLAC__byte *description;
00788     FLAC__uint32 width;
00791     FLAC__uint32 height;
00794     FLAC__uint32 depth;
00797     FLAC__uint32 colors;
00802     FLAC__uint32 data_length;
00805     FLAC__byte *data;
00808 } <a class="code" href="structFLAC____StreamMetadata__Picture.html">FLAC__StreamMetadata_Picture</a>;
00809 
00810 <span class="keyword">extern</span> FLAC_API <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <a class="code" href="group__flac__format.html#ga69">FLAC__STREAM_METADATA_PICTURE_TYPE_LEN</a>; 
00811 <span class="keyword">extern</span> FLAC_API <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <a class="code" href="group__flac__format.html#ga70">FLAC__STREAM_METADATA_PICTURE_MIME_TYPE_LENGTH_LEN</a>; 
00812 <span class="keyword">extern</span> FLAC_API <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <a class="code" href="group__flac__format.html#ga71">FLAC__STREAM_METADATA_PICTURE_DESCRIPTION_LENGTH_LEN</a>; 
00813 <span class="keyword">extern</span> FLAC_API <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <a class="code" href="group__flac__format.html#ga72">FLAC__STREAM_METADATA_PICTURE_WIDTH_LEN</a>; 
00814 <span class="keyword">extern</span> FLAC_API <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <a class="code" href="group__flac__format.html#ga73">FLAC__STREAM_METADATA_PICTURE_HEIGHT_LEN</a>; 
00815 <span class="keyword">extern</span> FLAC_API <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <a class="code" href="group__flac__format.html#ga74">FLAC__STREAM_METADATA_PICTURE_DEPTH_LEN</a>; 
00816 <span class="keyword">extern</span> FLAC_API <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <a class="code" href="group__flac__format.html#ga75">FLAC__STREAM_METADATA_PICTURE_COLORS_LEN</a>; 
00817 <span class="keyword">extern</span> FLAC_API <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <a class="code" href="group__flac__format.html#ga76">FLAC__STREAM_METADATA_PICTURE_DATA_LENGTH_LEN</a>; 
<a name="l00824"></a><a class="code" href="structFLAC____StreamMetadata__Unknown.html">00824</a> <span class="keyword">typedef</span> <span class="keyword">struct </span>{
00825     FLAC__byte *data;
00826 } <a class="code" href="structFLAC____StreamMetadata__Unknown.html">FLAC__StreamMetadata_Unknown</a>;
00827 
00828 
<a name="l00831"></a><a class="code" href="structFLAC____StreamMetadata.html">00831</a> <span class="keyword">typedef</span> <span class="keyword">struct </span>{
00832     <a class="code" href="group__flac__format.html#ga113">FLAC__MetadataType</a> type;
00837     FLAC__bool is_last;
00840     <span class="keywordtype">unsigned</span> length;
00843     <span class="keyword">union </span>{
00844         <a class="code" href="structFLAC____StreamMetadata__StreamInfo.html">FLAC__StreamMetadata_StreamInfo</a> stream_info;
00845         <a class="code" href="structFLAC____StreamMetadata__Padding.html">FLAC__StreamMetadata_Padding</a> padding;
00846         <a class="code" href="structFLAC____StreamMetadata__Application.html">FLAC__StreamMetadata_Application</a> application;
00847         <a class="code" href="structFLAC____StreamMetadata__SeekTable.html">FLAC__StreamMetadata_SeekTable</a> seek_table;
00848         <a class="code" href="structFLAC____StreamMetadata__VorbisComment.html">FLAC__StreamMetadata_VorbisComment</a> vorbis_comment;
00849         <a class="code" href="structFLAC____StreamMetadata__CueSheet.html">FLAC__StreamMetadata_CueSheet</a> cue_sheet;
00850         <a class="code" href="structFLAC____StreamMetadata__Picture.html">FLAC__StreamMetadata_Picture</a> picture;
00851         <a class="code" href="structFLAC____StreamMetadata__Unknown.html">FLAC__StreamMetadata_Unknown</a> unknown;
00852     } data;
00855 } <a class="code" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a>;
00856 
00857 <span class="keyword">extern</span> FLAC_API <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <a class="code" href="group__flac__format.html#ga77">FLAC__STREAM_METADATA_IS_LAST_LEN</a>; 
00858 <span class="keyword">extern</span> FLAC_API <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <a class="code" href="group__flac__format.html#ga78">FLAC__STREAM_METADATA_TYPE_LEN</a>; 
00859 <span class="keyword">extern</span> FLAC_API <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <a class="code" href="group__flac__format.html#ga79">FLAC__STREAM_METADATA_LENGTH_LEN</a>; 
<a name="l00862"></a><a class="code" href="group__flac__format.html#ga108">00862</a> <span class="preprocessor">#define FLAC__STREAM_METADATA_HEADER_LENGTH (4u)</span>
00863 <span class="preprocessor"></span>
00864 <span class="comment">/*****************************************************************************/</span>
00865 
00866 
00867 <span class="comment">/*****************************************************************************</span>
00868 <span class="comment"> *</span>
00869 <span class="comment"> * Utility functions</span>
00870 <span class="comment"> *</span>
00871 <span class="comment"> *****************************************************************************/</span>
00872 
00880 FLAC_API FLAC__bool <a class="code" href="group__flac__format.html#ga80">FLAC__format_sample_rate_is_valid</a>(<span class="keywordtype">unsigned</span> sample_rate);
00881 
00891 FLAC_API FLAC__bool <a class="code" href="group__flac__format.html#ga81">FLAC__format_sample_rate_is_subset</a>(<span class="keywordtype">unsigned</span> sample_rate);
00892 
00905 FLAC_API FLAC__bool <a class="code" href="group__flac__format.html#ga82">FLAC__format_vorbiscomment_entry_name_is_legal</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *name);
00906 
00921 FLAC_API FLAC__bool <a class="code" href="group__flac__format.html#ga83">FLAC__format_vorbiscomment_entry_value_is_legal</a>(<span class="keyword">const</span> FLAC__byte *value, <span class="keywordtype">unsigned</span> length);
00922 
00938 FLAC_API FLAC__bool <a class="code" href="group__flac__format.html#ga84">FLAC__format_vorbiscomment_entry_is_legal</a>(<span class="keyword">const</span> FLAC__byte *entry, <span class="keywordtype">unsigned</span> length);
00939 
00950 FLAC_API FLAC__bool <a class="code" href="group__flac__format.html#ga85">FLAC__format_seektable_is_legal</a>(<span class="keyword">const</span> <a class="code" href="structFLAC____StreamMetadata__SeekTable.html">FLAC__StreamMetadata_SeekTable</a> *seek_table);
00951 
00964 FLAC_API <span class="keywordtype">unsigned</span> <a class="code" href="group__flac__format.html#ga86">FLAC__format_seektable_sort</a>(<a class="code" href="structFLAC____StreamMetadata__SeekTable.html">FLAC__StreamMetadata_SeekTable</a> *seek_table);
00965 
00984 FLAC_API FLAC__bool <a class="code" href="group__flac__format.html#ga87">FLAC__format_cuesheet_is_legal</a>(<span class="keyword">const</span> <a class="code" href="structFLAC____StreamMetadata__CueSheet.html">FLAC__StreamMetadata_CueSheet</a> *cue_sheet, FLAC__bool check_cd_da_subset, <span class="keyword">const</span> <span class="keywordtype">char</span> **violation);
00985 
01002 FLAC_API FLAC__bool <a class="code" href="group__flac__format.html#ga88">FLAC__format_picture_is_legal</a>(<span class="keyword">const</span> <a class="code" href="structFLAC____StreamMetadata__Picture.html">FLAC__StreamMetadata_Picture</a> *picture, <span class="keyword">const</span> <span class="keywordtype">char</span> **violation);
01003 
01004 <span class="comment">/* \} */</span>
01005 
01006 <span class="preprocessor">#ifdef __cplusplus</span>
01007 <span class="preprocessor"></span>}
01008 <span class="preprocessor">#endif</span>
01009 <span class="preprocessor"></span>
01010 <span class="preprocessor">#endif</span>
</pre></div>
<hr size="1">
<div class="copyright">
	<!-- @@@ oh so hacky -->
	<table>
		<tr>
			<td align="left">
				Copyright (c) 2000,2001,2002,2003,2004,2005,2006,2007  Josh Coalson
			</td>
			<td width="1%" align="right">
				<a href="http://sourceforge.net"><img src="http://sflogo.sourceforge.net/sflogo.php?group_id=13478&amp;type=1" width="88" height="31" border="0" alt="SourceForge.net Logo" /></a>
			</td>
		</tr>
	</table>
</div>
<!-- Copyright (c)  2000,2001,2002,2003,2004,2005,2006,2007  Josh Coalson -->
<!-- Permission is granted to copy, distribute and/or modify this document -->
<!-- under the terms of the GNU Free Documentation License, Version 1.1 -->
<!-- or any later version published by the Free Software Foundation; -->
<!-- with no invariant sections. -->
<!-- A copy of the license can be found at http://www.gnu.org/copyleft/fdl.html -->
</body>
</html>