~ubuntu-branches/ubuntu/hoary/flac/hoary

« back to all changes in this revision

Viewing changes to doc/html/api/group__flac__stream__encoder.html

  • Committer: Bazaar Package Importer
  • Author(s): Matt Zimmerman
  • Date: 2004-04-16 15:14:31 UTC
  • mfrom: (1.1.1 upstream)
  • Revision ID: james.westby@ubuntu.com-20040416151431-eyloggqxpwbwpogz
Tags: 1.1.0-11
Ensure that libFLAC is linked with -lm on all architectures, and
regardless of whether nasm is present

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
 
2
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
 
3
<title>FLAC/stream_encoder.h: stream encoder interface</title>
 
4
<link href="doxygen.css" rel="stylesheet" type="text/css">
 
5
</head><body>
 
6
<!-- Generated by Doxygen 1.2.14 -->
 
7
<center>
 
8
<a class="qindex" href="index.html">Main Page</a> &nbsp; <a class="qindex" href="modules.html">Modules</a> &nbsp; <a class="qindex" href="hierarchy.html">Class Hierarchy</a> &nbsp; <a class="qindex" href="classes.html">Alphabetical List</a> &nbsp; <a class="qindex" href="annotated.html">Compound List</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="functions.html">Compound Members</a> &nbsp; <a class="qindex" href="globals.html">File Members</a> &nbsp; </center>
 
9
<hr><h1>FLAC/stream_encoder.h: stream encoder interface<br>
 
10
<small>
 
11
[<a class="el" href="group__flac__encoder.html">FLAC/_encoder.h: encoder interfaces</a>]</small>
 
12
</h1>This module contains the functions which implement the stream encoder. 
 
13
<a href="#_details">More...</a><table border=0 cellpadding=0 cellspacing=0>
 
14
<tr><td colspan=2><br><h2>Compounds</h2></td></tr>
 
15
<tr><td nowrap align=right valign=top>struct &nbsp;</td><td valign=bottom><a class="el" href="structFLAC____StreamEncoder.html">FLAC__StreamEncoder</a></td></tr>
 
16
<tr><td colspan=2><br><h2>Typedefs</h2></td></tr>
 
17
<tr><td nowrap align=right valign=top>typedef <a class="el" href="group__flac__stream__encoder.html#a53">FLAC__StreamEncoderWriteStatus</a>(*&nbsp;</td><td valign=bottom><a class="el" href="group__flac__stream__encoder.html#a2">FLAC__StreamEncoderWriteCallback</a> )(const <a class="el" href="structFLAC____StreamEncoder.html">FLAC__StreamEncoder</a> *encoder, const FLAC__byte buffer[], unsigned bytes, unsigned samples, unsigned current_frame, void *client_data)</td></tr>
 
18
<tr><td nowrap align=right valign=top>typedef void(*&nbsp;</td><td valign=bottom><a class="el" href="group__flac__stream__encoder.html#a3">FLAC__StreamEncoderMetadataCallback</a> )(const <a class="el" href="structFLAC____StreamEncoder.html">FLAC__StreamEncoder</a> *encoder, const <a class="el" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> *metadata, void *client_data)</td></tr>
 
19
<tr><td colspan=2><br><h2>Enumerations</h2></td></tr>
 
20
<tr><td nowrap align=right valign=top>enum &nbsp;</td><td valign=bottom><a class="el" href="group__flac__stream__encoder.html#a52">FLAC__StreamEncoderState</a> { <br>
 
21
&nbsp;&nbsp;<a class="el" href="group__flac__stream__encoder.html#a52a4">FLAC__STREAM_ENCODER_OK</a> =  0, 
 
22
<a class="el" href="group__flac__stream__encoder.html#a52a5">FLAC__STREAM_ENCODER_VERIFY_DECODER_ERROR</a>, 
 
23
<a class="el" href="group__flac__stream__encoder.html#a52a6">FLAC__STREAM_ENCODER_VERIFY_MISMATCH_IN_AUDIO_DATA</a>, 
 
24
<a class="el" href="group__flac__stream__encoder.html#a52a7">FLAC__STREAM_ENCODER_INVALID_CALLBACK</a>, 
 
25
<br>
 
26
&nbsp;&nbsp;<a class="el" href="group__flac__stream__encoder.html#a52a8">FLAC__STREAM_ENCODER_INVALID_NUMBER_OF_CHANNELS</a>, 
 
27
<a class="el" href="group__flac__stream__encoder.html#a52a9">FLAC__STREAM_ENCODER_INVALID_BITS_PER_SAMPLE</a>, 
 
28
<a class="el" href="group__flac__stream__encoder.html#a52a10">FLAC__STREAM_ENCODER_INVALID_SAMPLE_RATE</a>, 
 
29
<a class="el" href="group__flac__stream__encoder.html#a52a11">FLAC__STREAM_ENCODER_INVALID_BLOCK_SIZE</a>, 
 
30
<br>
 
31
&nbsp;&nbsp;<a class="el" href="group__flac__stream__encoder.html#a52a12">FLAC__STREAM_ENCODER_INVALID_MAX_LPC_ORDER</a>, 
 
32
<a class="el" href="group__flac__stream__encoder.html#a52a13">FLAC__STREAM_ENCODER_INVALID_QLP_COEFF_PRECISION</a>, 
 
33
<a class="el" href="group__flac__stream__encoder.html#a52a14">FLAC__STREAM_ENCODER_MID_SIDE_CHANNELS_MISMATCH</a>, 
 
34
<a class="el" href="group__flac__stream__encoder.html#a52a15">FLAC__STREAM_ENCODER_MID_SIDE_SAMPLE_SIZE_MISMATCH</a>, 
 
35
<br>
 
36
&nbsp;&nbsp;<a class="el" href="group__flac__stream__encoder.html#a52a16">FLAC__STREAM_ENCODER_ILLEGAL_MID_SIDE_FORCE</a>, 
 
37
<a class="el" href="group__flac__stream__encoder.html#a52a17">FLAC__STREAM_ENCODER_BLOCK_SIZE_TOO_SMALL_FOR_LPC_ORDER</a>, 
 
38
<a class="el" href="group__flac__stream__encoder.html#a52a18">FLAC__STREAM_ENCODER_NOT_STREAMABLE</a>, 
 
39
<a class="el" href="group__flac__stream__encoder.html#a52a19">FLAC__STREAM_ENCODER_FRAMING_ERROR</a>, 
 
40
<br>
 
41
&nbsp;&nbsp;<a class="el" href="group__flac__stream__encoder.html#a52a20">FLAC__STREAM_ENCODER_INVALID_METADATA</a>, 
 
42
<a class="el" href="group__flac__stream__encoder.html#a52a21">FLAC__STREAM_ENCODER_FATAL_ERROR_WHILE_ENCODING</a>, 
 
43
<a class="el" href="group__flac__stream__encoder.html#a52a22">FLAC__STREAM_ENCODER_FATAL_ERROR_WHILE_WRITING</a>, 
 
44
<a class="el" href="group__flac__stream__encoder.html#a52a23">FLAC__STREAM_ENCODER_MEMORY_ALLOCATION_ERROR</a>, 
 
45
<br>
 
46
&nbsp;&nbsp;<a class="el" href="group__flac__stream__encoder.html#a52a24">FLAC__STREAM_ENCODER_ALREADY_INITIALIZED</a>, 
 
47
<a class="el" href="group__flac__stream__encoder.html#a52a25">FLAC__STREAM_ENCODER_UNINITIALIZED</a>
 
48
<br>
 
49
 }</td></tr>
 
50
<tr><td nowrap align=right valign=top>enum &nbsp;</td><td valign=bottom><a class="el" href="group__flac__stream__encoder.html#a53">FLAC__StreamEncoderWriteStatus</a> { <a class="el" href="group__flac__stream__encoder.html#a53a26">FLAC__STREAM_ENCODER_WRITE_STATUS_OK</a> =  0, 
 
51
<a class="el" href="group__flac__stream__encoder.html#a53a27">FLAC__STREAM_ENCODER_WRITE_STATUS_FATAL_ERROR</a>
 
52
 }</td></tr>
 
53
<tr><td colspan=2><br><h2>Functions</h2></td></tr>
 
54
<tr><td nowrap align=right valign=top><a class="el" href="structFLAC____StreamEncoder.html">FLAC__StreamEncoder</a> *&nbsp;</td><td valign=bottom><a class="el" href="group__flac__stream__encoder.html#a4">FLAC__stream_encoder_new</a> ()</td></tr>
 
55
<tr><td nowrap align=right valign=top>void&nbsp;</td><td valign=bottom><a class="el" href="group__flac__stream__encoder.html#a5">FLAC__stream_encoder_delete</a> (<a class="el" href="structFLAC____StreamEncoder.html">FLAC__StreamEncoder</a> *encoder)</td></tr>
 
56
<tr><td nowrap align=right valign=top>FLAC__bool&nbsp;</td><td valign=bottom><a class="el" href="group__flac__stream__encoder.html#a6">FLAC__stream_encoder_set_verify</a> (<a class="el" href="structFLAC____StreamEncoder.html">FLAC__StreamEncoder</a> *encoder, FLAC__bool value)</td></tr>
 
57
<tr><td nowrap align=right valign=top>FLAC__bool&nbsp;</td><td valign=bottom><a class="el" href="group__flac__stream__encoder.html#a7">FLAC__stream_encoder_set_streamable_subset</a> (<a class="el" href="structFLAC____StreamEncoder.html">FLAC__StreamEncoder</a> *encoder, FLAC__bool value)</td></tr>
 
58
<tr><td nowrap align=right valign=top>FLAC__bool&nbsp;</td><td valign=bottom><a class="el" href="group__flac__stream__encoder.html#a8">FLAC__stream_encoder_set_do_mid_side_stereo</a> (<a class="el" href="structFLAC____StreamEncoder.html">FLAC__StreamEncoder</a> *encoder, FLAC__bool value)</td></tr>
 
59
<tr><td nowrap align=right valign=top>FLAC__bool&nbsp;</td><td valign=bottom><a class="el" href="group__flac__stream__encoder.html#a9">FLAC__stream_encoder_set_loose_mid_side_stereo</a> (<a class="el" href="structFLAC____StreamEncoder.html">FLAC__StreamEncoder</a> *encoder, FLAC__bool value)</td></tr>
 
60
<tr><td nowrap align=right valign=top>FLAC__bool&nbsp;</td><td valign=bottom><a class="el" href="group__flac__stream__encoder.html#a10">FLAC__stream_encoder_set_channels</a> (<a class="el" href="structFLAC____StreamEncoder.html">FLAC__StreamEncoder</a> *encoder, unsigned value)</td></tr>
 
61
<tr><td nowrap align=right valign=top>FLAC__bool&nbsp;</td><td valign=bottom><a class="el" href="group__flac__stream__encoder.html#a11">FLAC__stream_encoder_set_bits_per_sample</a> (<a class="el" href="structFLAC____StreamEncoder.html">FLAC__StreamEncoder</a> *encoder, unsigned value)</td></tr>
 
62
<tr><td nowrap align=right valign=top>FLAC__bool&nbsp;</td><td valign=bottom><a class="el" href="group__flac__stream__encoder.html#a12">FLAC__stream_encoder_set_sample_rate</a> (<a class="el" href="structFLAC____StreamEncoder.html">FLAC__StreamEncoder</a> *encoder, unsigned value)</td></tr>
 
63
<tr><td nowrap align=right valign=top>FLAC__bool&nbsp;</td><td valign=bottom><a class="el" href="group__flac__stream__encoder.html#a13">FLAC__stream_encoder_set_blocksize</a> (<a class="el" href="structFLAC____StreamEncoder.html">FLAC__StreamEncoder</a> *encoder, unsigned value)</td></tr>
 
64
<tr><td nowrap align=right valign=top>FLAC__bool&nbsp;</td><td valign=bottom><a class="el" href="group__flac__stream__encoder.html#a14">FLAC__stream_encoder_set_max_lpc_order</a> (<a class="el" href="structFLAC____StreamEncoder.html">FLAC__StreamEncoder</a> *encoder, unsigned value)</td></tr>
 
65
<tr><td nowrap align=right valign=top>FLAC__bool&nbsp;</td><td valign=bottom><a class="el" href="group__flac__stream__encoder.html#a15">FLAC__stream_encoder_set_qlp_coeff_precision</a> (<a class="el" href="structFLAC____StreamEncoder.html">FLAC__StreamEncoder</a> *encoder, unsigned value)</td></tr>
 
66
<tr><td nowrap align=right valign=top>FLAC__bool&nbsp;</td><td valign=bottom><a class="el" href="group__flac__stream__encoder.html#a16">FLAC__stream_encoder_set_do_qlp_coeff_prec_search</a> (<a class="el" href="structFLAC____StreamEncoder.html">FLAC__StreamEncoder</a> *encoder, FLAC__bool value)</td></tr>
 
67
<tr><td nowrap align=right valign=top>FLAC__bool&nbsp;</td><td valign=bottom><a class="el" href="group__flac__stream__encoder.html#a17">FLAC__stream_encoder_set_do_escape_coding</a> (<a class="el" href="structFLAC____StreamEncoder.html">FLAC__StreamEncoder</a> *encoder, FLAC__bool value)</td></tr>
 
68
<tr><td nowrap align=right valign=top>FLAC__bool&nbsp;</td><td valign=bottom><a class="el" href="group__flac__stream__encoder.html#a18">FLAC__stream_encoder_set_do_exhaustive_model_search</a> (<a class="el" href="structFLAC____StreamEncoder.html">FLAC__StreamEncoder</a> *encoder, FLAC__bool value)</td></tr>
 
69
<tr><td nowrap align=right valign=top>FLAC__bool&nbsp;</td><td valign=bottom><a class="el" href="group__flac__stream__encoder.html#a19">FLAC__stream_encoder_set_min_residual_partition_order</a> (<a class="el" href="structFLAC____StreamEncoder.html">FLAC__StreamEncoder</a> *encoder, unsigned value)</td></tr>
 
70
<tr><td nowrap align=right valign=top>FLAC__bool&nbsp;</td><td valign=bottom><a class="el" href="group__flac__stream__encoder.html#a20">FLAC__stream_encoder_set_max_residual_partition_order</a> (<a class="el" href="structFLAC____StreamEncoder.html">FLAC__StreamEncoder</a> *encoder, unsigned value)</td></tr>
 
71
<tr><td nowrap align=right valign=top>FLAC__bool&nbsp;</td><td valign=bottom><a class="el" href="group__flac__stream__encoder.html#a21">FLAC__stream_encoder_set_rice_parameter_search_dist</a> (<a class="el" href="structFLAC____StreamEncoder.html">FLAC__StreamEncoder</a> *encoder, unsigned value)</td></tr>
 
72
<tr><td nowrap align=right valign=top>FLAC__bool&nbsp;</td><td valign=bottom><a class="el" href="group__flac__stream__encoder.html#a22">FLAC__stream_encoder_set_total_samples_estimate</a> (<a class="el" href="structFLAC____StreamEncoder.html">FLAC__StreamEncoder</a> *encoder, FLAC__uint64 value)</td></tr>
 
73
<tr><td nowrap align=right valign=top>FLAC__bool&nbsp;</td><td valign=bottom><a class="el" href="group__flac__stream__encoder.html#a23">FLAC__stream_encoder_set_metadata</a> (<a class="el" href="structFLAC____StreamEncoder.html">FLAC__StreamEncoder</a> *encoder, <a class="el" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> **metadata, unsigned num_blocks)</td></tr>
 
74
<tr><td nowrap align=right valign=top>FLAC__bool&nbsp;</td><td valign=bottom><a class="el" href="group__flac__stream__encoder.html#a24">FLAC__stream_encoder_set_write_callback</a> (<a class="el" href="structFLAC____StreamEncoder.html">FLAC__StreamEncoder</a> *encoder, <a class="el" href="group__flac__stream__encoder.html#a2">FLAC__StreamEncoderWriteCallback</a> value)</td></tr>
 
75
<tr><td nowrap align=right valign=top>FLAC__bool&nbsp;</td><td valign=bottom><a class="el" href="group__flac__stream__encoder.html#a25">FLAC__stream_encoder_set_metadata_callback</a> (<a class="el" href="structFLAC____StreamEncoder.html">FLAC__StreamEncoder</a> *encoder, <a class="el" href="group__flac__stream__encoder.html#a3">FLAC__StreamEncoderMetadataCallback</a> value)</td></tr>
 
76
<tr><td nowrap align=right valign=top>FLAC__bool&nbsp;</td><td valign=bottom><a class="el" href="group__flac__stream__encoder.html#a26">FLAC__stream_encoder_set_client_data</a> (<a class="el" href="structFLAC____StreamEncoder.html">FLAC__StreamEncoder</a> *encoder, void *value)</td></tr>
 
77
<tr><td nowrap align=right valign=top><a class="el" href="group__flac__stream__encoder.html#a52">FLAC__StreamEncoderState</a>&nbsp;</td><td valign=bottom><a class="el" href="group__flac__stream__encoder.html#a27">FLAC__stream_encoder_get_state</a> (const <a class="el" href="structFLAC____StreamEncoder.html">FLAC__StreamEncoder</a> *encoder)</td></tr>
 
78
<tr><td nowrap align=right valign=top><a class="el" href="group__flac__stream__decoder.html#a34">FLAC__StreamDecoderState</a>&nbsp;</td><td valign=bottom><a class="el" href="group__flac__stream__encoder.html#a28">FLAC__stream_encoder_get_verify_decoder_state</a> (const <a class="el" href="structFLAC____StreamEncoder.html">FLAC__StreamEncoder</a> *encoder)</td></tr>
 
79
<tr><td nowrap align=right valign=top>const char *&nbsp;</td><td valign=bottom><a class="el" href="group__flac__stream__encoder.html#a29">FLAC__stream_encoder_get_resolved_state_string</a> (const <a class="el" href="structFLAC____StreamEncoder.html">FLAC__StreamEncoder</a> *encoder)</td></tr>
 
80
<tr><td nowrap align=right valign=top>void&nbsp;</td><td valign=bottom><a class="el" href="group__flac__stream__encoder.html#a30">FLAC__stream_encoder_get_verify_decoder_error_stats</a> (const <a class="el" href="structFLAC____StreamEncoder.html">FLAC__StreamEncoder</a> *encoder, FLAC__uint64 *absolute_sample, unsigned *frame_number, unsigned *channel, unsigned *sample, FLAC__int32 *expected, FLAC__int32 *got)</td></tr>
 
81
<tr><td nowrap align=right valign=top>FLAC__bool&nbsp;</td><td valign=bottom><a class="el" href="group__flac__stream__encoder.html#a31">FLAC__stream_encoder_get_verify</a> (const <a class="el" href="structFLAC____StreamEncoder.html">FLAC__StreamEncoder</a> *encoder)</td></tr>
 
82
<tr><td nowrap align=right valign=top>FLAC__bool&nbsp;</td><td valign=bottom><a class="el" href="group__flac__stream__encoder.html#a32">FLAC__stream_encoder_get_streamable_subset</a> (const <a class="el" href="structFLAC____StreamEncoder.html">FLAC__StreamEncoder</a> *encoder)</td></tr>
 
83
<tr><td nowrap align=right valign=top>FLAC__bool&nbsp;</td><td valign=bottom><a class="el" href="group__flac__stream__encoder.html#a33">FLAC__stream_encoder_get_do_mid_side_stereo</a> (const <a class="el" href="structFLAC____StreamEncoder.html">FLAC__StreamEncoder</a> *encoder)</td></tr>
 
84
<tr><td nowrap align=right valign=top>FLAC__bool&nbsp;</td><td valign=bottom><a class="el" href="group__flac__stream__encoder.html#a34">FLAC__stream_encoder_get_loose_mid_side_stereo</a> (const <a class="el" href="structFLAC____StreamEncoder.html">FLAC__StreamEncoder</a> *encoder)</td></tr>
 
85
<tr><td nowrap align=right valign=top>unsigned&nbsp;</td><td valign=bottom><a class="el" href="group__flac__stream__encoder.html#a35">FLAC__stream_encoder_get_channels</a> (const <a class="el" href="structFLAC____StreamEncoder.html">FLAC__StreamEncoder</a> *encoder)</td></tr>
 
86
<tr><td nowrap align=right valign=top>unsigned&nbsp;</td><td valign=bottom><a class="el" href="group__flac__stream__encoder.html#a36">FLAC__stream_encoder_get_bits_per_sample</a> (const <a class="el" href="structFLAC____StreamEncoder.html">FLAC__StreamEncoder</a> *encoder)</td></tr>
 
87
<tr><td nowrap align=right valign=top>unsigned&nbsp;</td><td valign=bottom><a class="el" href="group__flac__stream__encoder.html#a37">FLAC__stream_encoder_get_sample_rate</a> (const <a class="el" href="structFLAC____StreamEncoder.html">FLAC__StreamEncoder</a> *encoder)</td></tr>
 
88
<tr><td nowrap align=right valign=top>unsigned&nbsp;</td><td valign=bottom><a class="el" href="group__flac__stream__encoder.html#a38">FLAC__stream_encoder_get_blocksize</a> (const <a class="el" href="structFLAC____StreamEncoder.html">FLAC__StreamEncoder</a> *encoder)</td></tr>
 
89
<tr><td nowrap align=right valign=top>unsigned&nbsp;</td><td valign=bottom><a class="el" href="group__flac__stream__encoder.html#a39">FLAC__stream_encoder_get_max_lpc_order</a> (const <a class="el" href="structFLAC____StreamEncoder.html">FLAC__StreamEncoder</a> *encoder)</td></tr>
 
90
<tr><td nowrap align=right valign=top>unsigned&nbsp;</td><td valign=bottom><a class="el" href="group__flac__stream__encoder.html#a40">FLAC__stream_encoder_get_qlp_coeff_precision</a> (const <a class="el" href="structFLAC____StreamEncoder.html">FLAC__StreamEncoder</a> *encoder)</td></tr>
 
91
<tr><td nowrap align=right valign=top>FLAC__bool&nbsp;</td><td valign=bottom><a class="el" href="group__flac__stream__encoder.html#a41">FLAC__stream_encoder_get_do_qlp_coeff_prec_search</a> (const <a class="el" href="structFLAC____StreamEncoder.html">FLAC__StreamEncoder</a> *encoder)</td></tr>
 
92
<tr><td nowrap align=right valign=top>FLAC__bool&nbsp;</td><td valign=bottom><a class="el" href="group__flac__stream__encoder.html#a42">FLAC__stream_encoder_get_do_escape_coding</a> (const <a class="el" href="structFLAC____StreamEncoder.html">FLAC__StreamEncoder</a> *encoder)</td></tr>
 
93
<tr><td nowrap align=right valign=top>FLAC__bool&nbsp;</td><td valign=bottom><a class="el" href="group__flac__stream__encoder.html#a43">FLAC__stream_encoder_get_do_exhaustive_model_search</a> (const <a class="el" href="structFLAC____StreamEncoder.html">FLAC__StreamEncoder</a> *encoder)</td></tr>
 
94
<tr><td nowrap align=right valign=top>unsigned&nbsp;</td><td valign=bottom><a class="el" href="group__flac__stream__encoder.html#a44">FLAC__stream_encoder_get_min_residual_partition_order</a> (const <a class="el" href="structFLAC____StreamEncoder.html">FLAC__StreamEncoder</a> *encoder)</td></tr>
 
95
<tr><td nowrap align=right valign=top>unsigned&nbsp;</td><td valign=bottom><a class="el" href="group__flac__stream__encoder.html#a45">FLAC__stream_encoder_get_max_residual_partition_order</a> (const <a class="el" href="structFLAC____StreamEncoder.html">FLAC__StreamEncoder</a> *encoder)</td></tr>
 
96
<tr><td nowrap align=right valign=top>unsigned&nbsp;</td><td valign=bottom><a class="el" href="group__flac__stream__encoder.html#a46">FLAC__stream_encoder_get_rice_parameter_search_dist</a> (const <a class="el" href="structFLAC____StreamEncoder.html">FLAC__StreamEncoder</a> *encoder)</td></tr>
 
97
<tr><td nowrap align=right valign=top>FLAC__uint64&nbsp;</td><td valign=bottom><a class="el" href="group__flac__stream__encoder.html#a47">FLAC__stream_encoder_get_total_samples_estimate</a> (const <a class="el" href="structFLAC____StreamEncoder.html">FLAC__StreamEncoder</a> *encoder)</td></tr>
 
98
<tr><td nowrap align=right valign=top><a class="el" href="group__flac__stream__encoder.html#a52">FLAC__StreamEncoderState</a>&nbsp;</td><td valign=bottom><a class="el" href="group__flac__stream__encoder.html#a48">FLAC__stream_encoder_init</a> (<a class="el" href="structFLAC____StreamEncoder.html">FLAC__StreamEncoder</a> *encoder)</td></tr>
 
99
<tr><td nowrap align=right valign=top>void&nbsp;</td><td valign=bottom><a class="el" href="group__flac__stream__encoder.html#a49">FLAC__stream_encoder_finish</a> (<a class="el" href="structFLAC____StreamEncoder.html">FLAC__StreamEncoder</a> *encoder)</td></tr>
 
100
<tr><td nowrap align=right valign=top>FLAC__bool&nbsp;</td><td valign=bottom><a class="el" href="group__flac__stream__encoder.html#a50">FLAC__stream_encoder_process</a> (<a class="el" href="structFLAC____StreamEncoder.html">FLAC__StreamEncoder</a> *encoder, const FLAC__int32 *const buffer[], unsigned samples)</td></tr>
 
101
<tr><td nowrap align=right valign=top>FLAC__bool&nbsp;</td><td valign=bottom><a class="el" href="group__flac__stream__encoder.html#a51">FLAC__stream_encoder_process_interleaved</a> (<a class="el" href="structFLAC____StreamEncoder.html">FLAC__StreamEncoder</a> *encoder, const FLAC__int32 buffer[], unsigned samples)</td></tr>
 
102
<tr><td colspan=2><br><h2>Variables</h2></td></tr>
 
103
<tr><td nowrap align=right valign=top>const char *const&nbsp;</td><td valign=bottom><a class="el" href="group__flac__stream__encoder.html#a0">FLAC__StreamEncoderStateString</a> []</td></tr>
 
104
<tr><td nowrap align=right valign=top>const char *const&nbsp;</td><td valign=bottom><a class="el" href="group__flac__stream__encoder.html#a1">FLAC__StreamEncoderWriteStatusString</a> []</td></tr>
 
105
</table>
 
106
<hr><a name="_details"></a><h2>Detailed Description</h2>
 
107
This module contains the functions which implement the stream encoder.
 
108
<p>
 
109
 
 
110
<p>
 
111
 The basic usage of this encoder is as follows:<ul>
 
112
<li>The program creates an instance of an encoder using <a class="el" href="group__flac__stream__encoder.html#a4">FLAC__stream_encoder_new</a>().<li>The program overrides the default settings and sets callbacks using FLAC__stream_encoder_set_*() functions.<li>The program initializes the instance to validate the settings and prepare for encoding using <a class="el" href="group__flac__stream__encoder.html#a48">FLAC__stream_encoder_init</a>().<li>The program calls <a class="el" href="group__flac__stream__encoder.html#a50">FLAC__stream_encoder_process</a>() or <a class="el" href="group__flac__stream__encoder.html#a51">FLAC__stream_encoder_process_interleaved</a>() to encode data, which subsequently calls the callbacks when there is encoder data ready to be written.<li>The program finishes the encoding with <a class="el" href="group__flac__stream__encoder.html#a49">FLAC__stream_encoder_finish</a>(), which causes the encoder to encode any data still in its input pipe, call the metadata callback with the final encoding statistics, and finally reset the encoder to the uninitialized state.<li>The instance may be used again or deleted with <a class="el" href="group__flac__stream__encoder.html#a5">FLAC__stream_encoder_delete</a>().</ul>
 
113
In more detail, the stream encoder functions similarly to the <a class="el" href="group__flac__stream__decoder.html">stream decoder</a>, but has fewer callbacks and more options. Typically the user will create a new instance by calling <a class="el" href="group__flac__stream__encoder.html#a4">FLAC__stream_encoder_new</a>(), then set the necessary parameters and callbacks with FLAC__stream_encoder_set_*(), and initialize it by calling <a class="el" href="group__flac__stream__encoder.html#a48">FLAC__stream_encoder_init</a>().
 
114
<p>
 
115
Unlike the decoders, the stream encoder has many options that can affect the speed and compression ratio. When setting these parameters you should have some basic knowledge of the format (see the <a href="../documentation.html#format">user-level documentation</a> or the <a href="../format.html">formal description</a>). The FLAC__stream_encoder_set_*() functions themselves do not validate the values as many are interdependent. The <a class="el" href="group__flac__stream__encoder.html#a48">FLAC__stream_encoder_init</a>() function will do this, so make sure to pay attention to the state returned by <a class="el" href="group__flac__stream__encoder.html#a48">FLAC__stream_encoder_init</a>() to make sure that it is FLAC__STREAM_ENCODER_OK. Any parameters that are not set before <a class="el" href="group__flac__stream__encoder.html#a48">FLAC__stream_encoder_init</a>() will take on the defaults from the constructor.
 
116
<p>
 
117
The user must provide function pointers for the following callbacks:
 
118
<p>
 
119
<ul>
 
120
<li>Write callback - This function is called by the encoder anytime there is raw encoded data to write. It may include metadata mixed with encoded audio frames and the data is not guaranteed to be aligned on frame or metadata block boundaries.<li>Metadata callback - This function is called once at the end of encoding with the populated STREAMINFO structure. This is so file encoders can seek back to the beginning of the file and write the STREAMINFO block with the correct statistics after encoding (like minimum/maximum frame size).</ul>
 
121
The call to <a class="el" href="group__flac__stream__encoder.html#a48">FLAC__stream_encoder_init</a>() currently will also immediately call the write callback several times, once with the <code>fLaC</code> signature, and once for each encoded metadata block.
 
122
<p>
 
123
After initializing the instance, the user may feed audio data to the encoder in one of two ways:
 
124
<p>
 
125
<ul>
 
126
<li>Channel separate, through <a class="el" href="group__flac__stream__encoder.html#a50">FLAC__stream_encoder_process</a>() - The user will pass an array of pointers to buffers, one for each channel, to the encoder, each of the same length. The samples need not be block-aligned.<li>Channel interleaved, through <a class="el" href="group__flac__stream__encoder.html#a51">FLAC__stream_encoder_process_interleaved</a>() - The user will pass a single pointer to data that is channel-interleaved (i.e. channel0_sample0, channel1_sample0, ... , channelN_sample0, channel0_sample1, ...). Again, the samples need not be block-aligned but they must be sample-aligned, i.e. the first value should be channel0_sample0 and the last value channelN_sampleM.</ul>
 
127
When the user is finished encoding data, it calls <a class="el" href="group__flac__stream__encoder.html#a49">FLAC__stream_encoder_finish</a>(), which causes the encoder to encode any data still in its input pipe, and call the metadata callback with the final encoding statistics. Then the instance may be deleted with <a class="el" href="group__flac__stream__encoder.html#a5">FLAC__stream_encoder_delete</a>() or initialized again to encode another stream.
 
128
<p>
 
129
For programs that write their own metadata, but that do not know the actual metadata until after encoding, it is advantageous to instruct the encoder to write a PADDING block of the correct size, so that instead of rewriting the whole stream after encoding, the program can just overwrite the PADDING block. If only the maximum size of the metadata is known, the program can write a slightly larger padding block, then split it after encoding.
 
130
<p>
 
131
Make sure you understand how lengths are calculated. All FLAC metadata blocks have a 4 byte header which contains the type and length. This length does not include the 4 bytes of the header. See the format page for the specification of metadata blocks and their lengths.
 
132
<p>
 
133
<dl compact><dt><b>
 
134
Note: </b><dd>
 
135
 The "set" functions may only be called when the encoder is in the state FLAC__STREAM_ENCODER_UNINITIALIZED, i.e. after <a class="el" href="group__flac__stream__encoder.html#a4">FLAC__stream_encoder_new</a>() or <a class="el" href="group__flac__stream__encoder.html#a49">FLAC__stream_encoder_finish</a>(), but before <a class="el" href="group__flac__stream__encoder.html#a48">FLAC__stream_encoder_init</a>(). If this is the case they will return <code>true</code>, otherwise <code>false</code>.</dl><dl compact><dt><b>
 
136
Note: </b><dd>
 
137
 <a class="el" href="group__flac__stream__encoder.html#a49">FLAC__stream_encoder_finish</a>() resets all settings to the constructor defaults, including the callbacks. </dl><hr><h2>Typedef Documentation</h2>
 
138
<a name="a2" doxytag="stream_encoder.h::FLAC__StreamEncoderWriteCallback"></a><p>
 
139
<table width="100%" cellpadding="2" cellspacing="0" border="0">
 
140
  <tr>
 
141
    <td class="md">
 
142
      <table cellpadding="0" cellspacing="0" border="0">
 
143
        <tr>
 
144
          <td class="md" nowrap valign="top"> typedef <a class="el" href="group__flac__stream__encoder.html#a53">FLAC__StreamEncoderWriteStatus</a>(* FLAC__StreamEncoderWriteCallback)(const <a class="el" href="structFLAC____StreamEncoder.html">FLAC__StreamEncoder</a> *encoder, const FLAC__byte buffer[], unsigned bytes, unsigned samples, unsigned current_frame, void *client_data)
 
145
      </table>
 
146
    </td>
 
147
  </tr>
 
148
</table>
 
149
<table cellspacing=5 cellpadding=0 border=0>
 
150
  <tr>
 
151
    <td>
 
152
      &nbsp;
 
153
    </td>
 
154
    <td>
 
155
 
 
156
<p>
 
157
Signature for the write callback. See <a class="el" href="group__flac__stream__encoder.html#a24">FLAC__stream_encoder_set_write_callback</a>() for more info.<dl compact><dt><b>
 
158
Parameters: </b><dd>
 
159
<table border=0 cellspacing=2 cellpadding=0>
 
160
<tr><td valign=top><em>encoder</em>&nbsp;</td><td>
 
161
The encoder instance calling the callback. </td></tr>
 
162
<tr><td valign=top><em>buffer</em>&nbsp;</td><td>
 
163
An array of encoded data of length <em>bytes</em>. </td></tr>
 
164
<tr><td valign=top><em>bytes</em>&nbsp;</td><td>
 
165
The byte length of <em>buffer</em>. </td></tr>
 
166
<tr><td valign=top><em>samples</em>&nbsp;</td><td>
 
167
The number of samples encoded by <em>buffer</em>. <code>0</code> has a special meaning; see <a class="el" href="group__flac__stream__encoder.html#a24">FLAC__stream_encoder_set_write_callback</a>(). </td></tr>
 
168
<tr><td valign=top><em>current_frame</em>&nbsp;</td><td>
 
169
The number of the current frame being encoded. </td></tr>
 
170
<tr><td valign=top><em>client_data</em>&nbsp;</td><td>
 
171
The callee's client data set through <a class="el" href="group__flac__stream__encoder.html#a26">FLAC__stream_encoder_set_client_data</a>(). </td></tr>
 
172
</table>
 
173
</dl><dl compact><dt><b>
 
174
Return values: </b><dd>
 
175
<table border=0 cellspacing=2 cellpadding=0>
 
176
<tr><td valign=top><em>FLAC__StreamDecoderWriteStatus</em>&nbsp;</td><td>
 
177
The callee's return status. </td></tr>
 
178
</table>
 
179
</dl>    </td>
 
180
  </tr>
 
181
</table>
 
182
<a name="a3" doxytag="stream_encoder.h::FLAC__StreamEncoderMetadataCallback"></a><p>
 
183
<table width="100%" cellpadding="2" cellspacing="0" border="0">
 
184
  <tr>
 
185
    <td class="md">
 
186
      <table cellpadding="0" cellspacing="0" border="0">
 
187
        <tr>
 
188
          <td class="md" nowrap valign="top"> typedef void(* FLAC__StreamEncoderMetadataCallback)(const <a class="el" href="structFLAC____StreamEncoder.html">FLAC__StreamEncoder</a> *encoder, const <a class="el" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> *metadata, void *client_data)
 
189
      </table>
 
190
    </td>
 
191
  </tr>
 
192
</table>
 
193
<table cellspacing=5 cellpadding=0 border=0>
 
194
  <tr>
 
195
    <td>
 
196
      &nbsp;
 
197
    </td>
 
198
    <td>
 
199
 
 
200
<p>
 
201
Signature for the metadata callback. See <a class="el" href="group__flac__stream__encoder.html#a25">FLAC__stream_encoder_set_metadata_callback</a>() for more info.<dl compact><dt><b>
 
202
Parameters: </b><dd>
 
203
<table border=0 cellspacing=2 cellpadding=0>
 
204
<tr><td valign=top><em>encoder</em>&nbsp;</td><td>
 
205
The encoder instance calling the callback. </td></tr>
 
206
<tr><td valign=top><em>metadata</em>&nbsp;</td><td>
 
207
The final populated STREAMINFO block. </td></tr>
 
208
<tr><td valign=top><em>client_data</em>&nbsp;</td><td>
 
209
The callee's client data set through <a class="el" href="group__flac__stream__encoder.html#a26">FLAC__stream_encoder_set_client_data</a>(). </td></tr>
 
210
</table>
 
211
</dl>    </td>
 
212
  </tr>
 
213
</table>
 
214
<hr><h2>Enumeration Type Documentation</h2>
 
215
<a name="a52" doxytag="stream_encoder.h::FLAC__StreamEncoderState"></a><p>
 
216
<table width="100%" cellpadding="2" cellspacing="0" border="0">
 
217
  <tr>
 
218
    <td class="md">
 
219
      <table cellpadding="0" cellspacing="0" border="0">
 
220
        <tr>
 
221
          <td class="md" nowrap valign="top"> enum FLAC__StreamEncoderState
 
222
      </table>
 
223
    </td>
 
224
  </tr>
 
225
</table>
 
226
<table cellspacing=5 cellpadding=0 border=0>
 
227
  <tr>
 
228
    <td>
 
229
      &nbsp;
 
230
    </td>
 
231
    <td>
 
232
 
 
233
<p>
 
234
State values for a <a class="el" href="structFLAC____StreamEncoder.html">FLAC__StreamEncoder</a>
 
235
<p>
 
236
The encoder's state can be obtained by calling <a class="el" href="group__flac__stream__encoder.html#a27">FLAC__stream_encoder_get_state</a>(). <dl compact><dt><b>
 
237
Enumeration values:</b><dd>
 
238
<table border=0 cellspacing=2 cellpadding=0>
 
239
<tr><td valign=top><em><a name="a52a4" doxytag="FLAC__STREAM_ENCODER_OK"></a><em>FLAC__STREAM_ENCODER_OK</em></em>&nbsp;</td><td>
 
240
The encoder is in the normal OK state. </td></tr>
 
241
<tr><td valign=top><em><a name="a52a5" doxytag="FLAC__STREAM_ENCODER_VERIFY_DECODER_ERROR"></a><em>FLAC__STREAM_ENCODER_VERIFY_DECODER_ERROR</em></em>&nbsp;</td><td>
 
242
An error occurred in the underlying verify stream decoder; check <a class="el" href="group__flac__stream__encoder.html#a28">FLAC__stream_encoder_get_verify_decoder_state</a>(). </td></tr>
 
243
<tr><td valign=top><em><a name="a52a6" doxytag="FLAC__STREAM_ENCODER_VERIFY_MISMATCH_IN_AUDIO_DATA"></a><em>FLAC__STREAM_ENCODER_VERIFY_MISMATCH_IN_AUDIO_DATA</em></em>&nbsp;</td><td>
 
244
The verify decoder detected a mismatch between the original audio signal and the decoded audio signal. </td></tr>
 
245
<tr><td valign=top><em><a name="a52a7" doxytag="FLAC__STREAM_ENCODER_INVALID_CALLBACK"></a><em>FLAC__STREAM_ENCODER_INVALID_CALLBACK</em></em>&nbsp;</td><td>
 
246
The encoder was initialized before setting all the required callbacks. </td></tr>
 
247
<tr><td valign=top><em><a name="a52a8" doxytag="FLAC__STREAM_ENCODER_INVALID_NUMBER_OF_CHANNELS"></a><em>FLAC__STREAM_ENCODER_INVALID_NUMBER_OF_CHANNELS</em></em>&nbsp;</td><td>
 
248
The encoder has an invalid setting for number of channels. </td></tr>
 
249
<tr><td valign=top><em><a name="a52a9" doxytag="FLAC__STREAM_ENCODER_INVALID_BITS_PER_SAMPLE"></a><em>FLAC__STREAM_ENCODER_INVALID_BITS_PER_SAMPLE</em></em>&nbsp;</td><td>
 
250
The encoder has an invalid setting for bits-per-sample. FLAC supports 4-32 bps but the reference encoder currently supports only up to 24 bps. </td></tr>
 
251
<tr><td valign=top><em><a name="a52a10" doxytag="FLAC__STREAM_ENCODER_INVALID_SAMPLE_RATE"></a><em>FLAC__STREAM_ENCODER_INVALID_SAMPLE_RATE</em></em>&nbsp;</td><td>
 
252
The encoder has an invalid setting for the input sample rate. </td></tr>
 
253
<tr><td valign=top><em><a name="a52a11" doxytag="FLAC__STREAM_ENCODER_INVALID_BLOCK_SIZE"></a><em>FLAC__STREAM_ENCODER_INVALID_BLOCK_SIZE</em></em>&nbsp;</td><td>
 
254
The encoder has an invalid setting for the block size. </td></tr>
 
255
<tr><td valign=top><em><a name="a52a12" doxytag="FLAC__STREAM_ENCODER_INVALID_MAX_LPC_ORDER"></a><em>FLAC__STREAM_ENCODER_INVALID_MAX_LPC_ORDER</em></em>&nbsp;</td><td>
 
256
The encoder has an invalid setting for the maximum LPC order. </td></tr>
 
257
<tr><td valign=top><em><a name="a52a13" doxytag="FLAC__STREAM_ENCODER_INVALID_QLP_COEFF_PRECISION"></a><em>FLAC__STREAM_ENCODER_INVALID_QLP_COEFF_PRECISION</em></em>&nbsp;</td><td>
 
258
The encoder has an invalid setting for the precision of the quantized linear predictor coefficients. </td></tr>
 
259
<tr><td valign=top><em><a name="a52a14" doxytag="FLAC__STREAM_ENCODER_MID_SIDE_CHANNELS_MISMATCH"></a><em>FLAC__STREAM_ENCODER_MID_SIDE_CHANNELS_MISMATCH</em></em>&nbsp;</td><td>
 
260
Mid/side coding was specified but the number of channels is not equal to 2. </td></tr>
 
261
<tr><td valign=top><em><a name="a52a15" doxytag="FLAC__STREAM_ENCODER_MID_SIDE_SAMPLE_SIZE_MISMATCH"></a><em>FLAC__STREAM_ENCODER_MID_SIDE_SAMPLE_SIZE_MISMATCH</em></em>&nbsp;</td><td>
 
262
Deprecated. </td></tr>
 
263
<tr><td valign=top><em><a name="a52a16" doxytag="FLAC__STREAM_ENCODER_ILLEGAL_MID_SIDE_FORCE"></a><em>FLAC__STREAM_ENCODER_ILLEGAL_MID_SIDE_FORCE</em></em>&nbsp;</td><td>
 
264
Loose mid/side coding was specified but mid/side coding was not. </td></tr>
 
265
<tr><td valign=top><em><a name="a52a17" doxytag="FLAC__STREAM_ENCODER_BLOCK_SIZE_TOO_SMALL_FOR_LPC_ORDER"></a><em>FLAC__STREAM_ENCODER_BLOCK_SIZE_TOO_SMALL_FOR_LPC_ORDER</em></em>&nbsp;</td><td>
 
266
The specified block size is less than the maximum LPC order. </td></tr>
 
267
<tr><td valign=top><em><a name="a52a18" doxytag="FLAC__STREAM_ENCODER_NOT_STREAMABLE"></a><em>FLAC__STREAM_ENCODER_NOT_STREAMABLE</em></em>&nbsp;</td><td>
 
268
The encoder is bound to the "streamable subset" but other settings violate it. </td></tr>
 
269
<tr><td valign=top><em><a name="a52a19" doxytag="FLAC__STREAM_ENCODER_FRAMING_ERROR"></a><em>FLAC__STREAM_ENCODER_FRAMING_ERROR</em></em>&nbsp;</td><td>
 
270
An error occurred while writing the stream; usually, the write_callback returned an error. </td></tr>
 
271
<tr><td valign=top><em><a name="a52a20" doxytag="FLAC__STREAM_ENCODER_INVALID_METADATA"></a><em>FLAC__STREAM_ENCODER_INVALID_METADATA</em></em>&nbsp;</td><td>
 
272
The metadata input to the encoder is invalid, in one of the following ways:<ul>
 
273
<li><a class="el" href="group__flac__stream__encoder.html#a23">FLAC__stream_encoder_set_metadata</a>() was called with a null pointer but a block count &gt; 0<li>One of the metadata blocks contains an undefined type<li>It contains an illegal CUESHEET as checked by <a class="el" href="group__flac__format.html#a71">FLAC__format_cuesheet_is_legal</a>()<li>It contains an illegal SEEKTABLE as checked by <a class="el" href="group__flac__format.html#a69">FLAC__format_seektable_is_legal</a>()<li>It contains more than one SEEKTABLE block or more than one VORBIS_COMMENT block </ul>
 
274
</td></tr>
 
275
<tr><td valign=top><em><a name="a52a21" doxytag="FLAC__STREAM_ENCODER_FATAL_ERROR_WHILE_ENCODING"></a><em>FLAC__STREAM_ENCODER_FATAL_ERROR_WHILE_ENCODING</em></em>&nbsp;</td><td>
 
276
An error occurred while writing the stream; usually, the write_callback returned an error. </td></tr>
 
277
<tr><td valign=top><em><a name="a52a22" doxytag="FLAC__STREAM_ENCODER_FATAL_ERROR_WHILE_WRITING"></a><em>FLAC__STREAM_ENCODER_FATAL_ERROR_WHILE_WRITING</em></em>&nbsp;</td><td>
 
278
The write_callback returned an error. </td></tr>
 
279
<tr><td valign=top><em><a name="a52a23" doxytag="FLAC__STREAM_ENCODER_MEMORY_ALLOCATION_ERROR"></a><em>FLAC__STREAM_ENCODER_MEMORY_ALLOCATION_ERROR</em></em>&nbsp;</td><td>
 
280
Memory allocation failed. </td></tr>
 
281
<tr><td valign=top><em><a name="a52a24" doxytag="FLAC__STREAM_ENCODER_ALREADY_INITIALIZED"></a><em>FLAC__STREAM_ENCODER_ALREADY_INITIALIZED</em></em>&nbsp;</td><td>
 
282
<a class="el" href="group__flac__stream__encoder.html#a48">FLAC__stream_encoder_init</a>() was called when the encoder was already initialized, usually because <a class="el" href="group__flac__stream__encoder.html#a49">FLAC__stream_encoder_finish</a>() was not called. </td></tr>
 
283
<tr><td valign=top><em><a name="a52a25" doxytag="FLAC__STREAM_ENCODER_UNINITIALIZED"></a><em>FLAC__STREAM_ENCODER_UNINITIALIZED</em></em>&nbsp;</td><td>
 
284
The encoder is in the uninitialized state. </td></tr>
 
285
</table>
 
286
</dl>
 
287
    </td>
 
288
  </tr>
 
289
</table>
 
290
<a name="a53" doxytag="stream_encoder.h::FLAC__StreamEncoderWriteStatus"></a><p>
 
291
<table width="100%" cellpadding="2" cellspacing="0" border="0">
 
292
  <tr>
 
293
    <td class="md">
 
294
      <table cellpadding="0" cellspacing="0" border="0">
 
295
        <tr>
 
296
          <td class="md" nowrap valign="top"> enum FLAC__StreamEncoderWriteStatus
 
297
      </table>
 
298
    </td>
 
299
  </tr>
 
300
</table>
 
301
<table cellspacing=5 cellpadding=0 border=0>
 
302
  <tr>
 
303
    <td>
 
304
      &nbsp;
 
305
    </td>
 
306
    <td>
 
307
 
 
308
<p>
 
309
Return values for the <a class="el" href="structFLAC____StreamEncoder.html">FLAC__StreamEncoder</a> write callback. <dl compact><dt><b>
 
310
Enumeration values:</b><dd>
 
311
<table border=0 cellspacing=2 cellpadding=0>
 
312
<tr><td valign=top><em><a name="a53a26" doxytag="FLAC__STREAM_ENCODER_WRITE_STATUS_OK"></a><em>FLAC__STREAM_ENCODER_WRITE_STATUS_OK</em></em>&nbsp;</td><td>
 
313
The write was OK and encoding can continue. </td></tr>
 
314
<tr><td valign=top><em><a name="a53a27" doxytag="FLAC__STREAM_ENCODER_WRITE_STATUS_FATAL_ERROR"></a><em>FLAC__STREAM_ENCODER_WRITE_STATUS_FATAL_ERROR</em></em>&nbsp;</td><td>
 
315
An unrecoverable error occurred. The encoder will return from the process call. </td></tr>
 
316
</table>
 
317
</dl>
 
318
    </td>
 
319
  </tr>
 
320
</table>
 
321
<hr><h2>Function Documentation</h2>
 
322
<a name="a4" doxytag="stream_encoder.h::FLAC__stream_encoder_new"></a><p>
 
323
<table width="100%" cellpadding="2" cellspacing="0" border="0">
 
324
  <tr>
 
325
    <td class="md">
 
326
      <table cellpadding="0" cellspacing="0" border="0">
 
327
        <tr>
 
328
          <td class="md" nowrap valign="top"> <a class="el" href="structFLAC____StreamEncoder.html">FLAC__StreamEncoder</a>* FLAC__stream_encoder_new </td>
 
329
          <td class="md" valign="top">(&nbsp;</td>
 
330
          <td class="mdname1" valign="top" nowrap>&nbsp;          </td>
 
331
          <td class="md" valign="top">)&nbsp;</td>
 
332
          <td class="md" nowrap></td>
 
333
        </tr>
 
334
 
 
335
      </table>
 
336
    </td>
 
337
  </tr>
 
338
</table>
 
339
<table cellspacing=5 cellpadding=0 border=0>
 
340
  <tr>
 
341
    <td>
 
342
      &nbsp;
 
343
    </td>
 
344
    <td>
 
345
 
 
346
<p>
 
347
Create a new stream encoder instance. The instance is created with default settings; see the individual FLAC__stream_encoder_set_*() functions for each setting's default.<dl compact><dt><b>
 
348
Return values: </b><dd>
 
349
<table border=0 cellspacing=2 cellpadding=0>
 
350
<tr><td valign=top><em><a class="el" href="structFLAC____StreamEncoder.html">FLAC__StreamEncoder</a></em>&nbsp;</td><td>
 
351
* <code>NULL</code> if there was an error allocating memory, else the new instance. </td></tr>
 
352
</table>
 
353
</dl>    </td>
 
354
  </tr>
 
355
</table>
 
356
<a name="a5" doxytag="stream_encoder.h::FLAC__stream_encoder_delete"></a><p>
 
357
<table width="100%" cellpadding="2" cellspacing="0" border="0">
 
358
  <tr>
 
359
    <td class="md">
 
360
      <table cellpadding="0" cellspacing="0" border="0">
 
361
        <tr>
 
362
          <td class="md" nowrap valign="top"> void FLAC__stream_encoder_delete </td>
 
363
          <td class="md" valign="top">(&nbsp;</td>
 
364
          <td class="md" nowrap valign="top"><a class="el" href="structFLAC____StreamEncoder.html">FLAC__StreamEncoder</a> *&nbsp;</td>
 
365
          <td class="mdname1" valign="top" nowrap>&nbsp; <em>encoder</em>          </td>
 
366
          <td class="md" valign="top">)&nbsp;</td>
 
367
          <td class="md" nowrap></td>
 
368
        </tr>
 
369
 
 
370
      </table>
 
371
    </td>
 
372
  </tr>
 
373
</table>
 
374
<table cellspacing=5 cellpadding=0 border=0>
 
375
  <tr>
 
376
    <td>
 
377
      &nbsp;
 
378
    </td>
 
379
    <td>
 
380
 
 
381
<p>
 
382
Free an encoder instance. Deletes the object pointed to by <em>encoder</em>.<dl compact><dt><b>
 
383
Parameters: </b><dd>
 
384
<table border=0 cellspacing=2 cellpadding=0>
 
385
<tr><td valign=top><em>encoder</em>&nbsp;</td><td>
 
386
A pointer to an existing encoder. </td></tr>
 
387
</table>
 
388
</dl><dl compact><dt><b>
 
389
Assertions:</b><dd>
 
390
 <div class="fragment"><pre>encoder != NULL 
 
391
</pre></div> </dl>    </td>
 
392
  </tr>
 
393
</table>
 
394
<a name="a6" doxytag="stream_encoder.h::FLAC__stream_encoder_set_verify"></a><p>
 
395
<table width="100%" cellpadding="2" cellspacing="0" border="0">
 
396
  <tr>
 
397
    <td class="md">
 
398
      <table cellpadding="0" cellspacing="0" border="0">
 
399
        <tr>
 
400
          <td class="md" nowrap valign="top"> FLAC__bool FLAC__stream_encoder_set_verify </td>
 
401
          <td class="md" valign="top">(&nbsp;</td>
 
402
          <td class="md" nowrap valign="top"><a class="el" href="structFLAC____StreamEncoder.html">FLAC__StreamEncoder</a> *&nbsp;</td>
 
403
          <td class="mdname" nowrap>&nbsp; <em>encoder</em>, </td>
 
404
        </tr>
 
405
        <tr>
 
406
          <td></td>
 
407
          <td></td>
 
408
          <td class="md" nowrap>FLAC__bool&nbsp;</td>
 
409
          <td class="mdname" nowrap>&nbsp; <em>value</em></td>
 
410
        </tr>
 
411
        <tr>
 
412
          <td></td>
 
413
          <td class="md">)&nbsp;</td>
 
414
          <td class="md" colspan="2"></td>
 
415
        </tr>
 
416
 
 
417
      </table>
 
418
    </td>
 
419
  </tr>
 
420
</table>
 
421
<table cellspacing=5 cellpadding=0 border=0>
 
422
  <tr>
 
423
    <td>
 
424
      &nbsp;
 
425
    </td>
 
426
    <td>
 
427
 
 
428
<p>
 
429
Set the "verify" flag. If <code>true</code>, the encoder will verify it's own encoded output by feeding it through an internal decoder and comparing the original signal against the decoded signal. If a mismatch occurs, the process call will return <code>false</code>. Note that this will slow the encoding process by the extra time required for decoding and comparison.<dl compact><dt><b>
 
430
Default Value:</b><dd>
 
431
 <code>false</code> </dl><dl compact><dt><b>
 
432
Parameters: </b><dd>
 
433
<table border=0 cellspacing=2 cellpadding=0>
 
434
<tr><td valign=top><em>encoder</em>&nbsp;</td><td>
 
435
An encoder instance to set. </td></tr>
 
436
<tr><td valign=top><em>value</em>&nbsp;</td><td>
 
437
Flag value (see above). </td></tr>
 
438
</table>
 
439
</dl><dl compact><dt><b>
 
440
Assertions:</b><dd>
 
441
 <div class="fragment"><pre>encoder != NULL 
 
442
</pre></div> </dl><dl compact><dt><b>
 
443
Return values: </b><dd>
 
444
<table border=0 cellspacing=2 cellpadding=0>
 
445
<tr><td valign=top><em>FLAC__bool</em>&nbsp;</td><td>
 
446
<code>false</code> if the encoder is already initialized, else <code>true</code>. </td></tr>
 
447
</table>
 
448
</dl>    </td>
 
449
  </tr>
 
450
</table>
 
451
<a name="a7" doxytag="stream_encoder.h::FLAC__stream_encoder_set_streamable_subset"></a><p>
 
452
<table width="100%" cellpadding="2" cellspacing="0" border="0">
 
453
  <tr>
 
454
    <td class="md">
 
455
      <table cellpadding="0" cellspacing="0" border="0">
 
456
        <tr>
 
457
          <td class="md" nowrap valign="top"> FLAC__bool FLAC__stream_encoder_set_streamable_subset </td>
 
458
          <td class="md" valign="top">(&nbsp;</td>
 
459
          <td class="md" nowrap valign="top"><a class="el" href="structFLAC____StreamEncoder.html">FLAC__StreamEncoder</a> *&nbsp;</td>
 
460
          <td class="mdname" nowrap>&nbsp; <em>encoder</em>, </td>
 
461
        </tr>
 
462
        <tr>
 
463
          <td></td>
 
464
          <td></td>
 
465
          <td class="md" nowrap>FLAC__bool&nbsp;</td>
 
466
          <td class="mdname" nowrap>&nbsp; <em>value</em></td>
 
467
        </tr>
 
468
        <tr>
 
469
          <td></td>
 
470
          <td class="md">)&nbsp;</td>
 
471
          <td class="md" colspan="2"></td>
 
472
        </tr>
 
473
 
 
474
      </table>
 
475
    </td>
 
476
  </tr>
 
477
</table>
 
478
<table cellspacing=5 cellpadding=0 border=0>
 
479
  <tr>
 
480
    <td>
 
481
      &nbsp;
 
482
    </td>
 
483
    <td>
 
484
 
 
485
<p>
 
486
Set the "streamable subset" flag. If <code>true</code>, the encoder will comply with the subset (see the format specification) and will check the settings during <a class="el" href="group__flac__stream__encoder.html#a48">FLAC__stream_encoder_init</a>() to see if all settings comply. If <code>false</code>, the settings may take advantage of the full range that the format allows.
 
487
<p>
 
488
Make sure you know what it entails before setting this to <code>false</code>.<dl compact><dt><b>
 
489
Default Value:</b><dd>
 
490
 <code>true</code> </dl><dl compact><dt><b>
 
491
Parameters: </b><dd>
 
492
<table border=0 cellspacing=2 cellpadding=0>
 
493
<tr><td valign=top><em>encoder</em>&nbsp;</td><td>
 
494
An encoder instance to set. </td></tr>
 
495
<tr><td valign=top><em>value</em>&nbsp;</td><td>
 
496
Flag value (see above). </td></tr>
 
497
</table>
 
498
</dl><dl compact><dt><b>
 
499
Assertions:</b><dd>
 
500
 <div class="fragment"><pre>encoder != NULL 
 
501
</pre></div> </dl><dl compact><dt><b>
 
502
Return values: </b><dd>
 
503
<table border=0 cellspacing=2 cellpadding=0>
 
504
<tr><td valign=top><em>FLAC__bool</em>&nbsp;</td><td>
 
505
<code>false</code> if the encoder is already initialized, else <code>true</code>. </td></tr>
 
506
</table>
 
507
</dl>    </td>
 
508
  </tr>
 
509
</table>
 
510
<a name="a8" doxytag="stream_encoder.h::FLAC__stream_encoder_set_do_mid_side_stereo"></a><p>
 
511
<table width="100%" cellpadding="2" cellspacing="0" border="0">
 
512
  <tr>
 
513
    <td class="md">
 
514
      <table cellpadding="0" cellspacing="0" border="0">
 
515
        <tr>
 
516
          <td class="md" nowrap valign="top"> FLAC__bool FLAC__stream_encoder_set_do_mid_side_stereo </td>
 
517
          <td class="md" valign="top">(&nbsp;</td>
 
518
          <td class="md" nowrap valign="top"><a class="el" href="structFLAC____StreamEncoder.html">FLAC__StreamEncoder</a> *&nbsp;</td>
 
519
          <td class="mdname" nowrap>&nbsp; <em>encoder</em>, </td>
 
520
        </tr>
 
521
        <tr>
 
522
          <td></td>
 
523
          <td></td>
 
524
          <td class="md" nowrap>FLAC__bool&nbsp;</td>
 
525
          <td class="mdname" nowrap>&nbsp; <em>value</em></td>
 
526
        </tr>
 
527
        <tr>
 
528
          <td></td>
 
529
          <td class="md">)&nbsp;</td>
 
530
          <td class="md" colspan="2"></td>
 
531
        </tr>
 
532
 
 
533
      </table>
 
534
    </td>
 
535
  </tr>
 
536
</table>
 
537
<table cellspacing=5 cellpadding=0 border=0>
 
538
  <tr>
 
539
    <td>
 
540
      &nbsp;
 
541
    </td>
 
542
    <td>
 
543
 
 
544
<p>
 
545
Set to <code>true</code> to enable mid-side encoding on stereo input. The number of channels must be 2. Set to <code>false</code> to use only independent channel coding.<dl compact><dt><b>
 
546
Default Value:</b><dd>
 
547
 <code>false</code> </dl><dl compact><dt><b>
 
548
Parameters: </b><dd>
 
549
<table border=0 cellspacing=2 cellpadding=0>
 
550
<tr><td valign=top><em>encoder</em>&nbsp;</td><td>
 
551
An encoder instance to set. </td></tr>
 
552
<tr><td valign=top><em>value</em>&nbsp;</td><td>
 
553
Flag value (see above). </td></tr>
 
554
</table>
 
555
</dl><dl compact><dt><b>
 
556
Assertions:</b><dd>
 
557
 <div class="fragment"><pre>encoder != NULL 
 
558
</pre></div> </dl><dl compact><dt><b>
 
559
Return values: </b><dd>
 
560
<table border=0 cellspacing=2 cellpadding=0>
 
561
<tr><td valign=top><em>FLAC__bool</em>&nbsp;</td><td>
 
562
<code>false</code> if the encoder is already initialized, else <code>true</code>. </td></tr>
 
563
</table>
 
564
</dl>    </td>
 
565
  </tr>
 
566
</table>
 
567
<a name="a9" doxytag="stream_encoder.h::FLAC__stream_encoder_set_loose_mid_side_stereo"></a><p>
 
568
<table width="100%" cellpadding="2" cellspacing="0" border="0">
 
569
  <tr>
 
570
    <td class="md">
 
571
      <table cellpadding="0" cellspacing="0" border="0">
 
572
        <tr>
 
573
          <td class="md" nowrap valign="top"> FLAC__bool FLAC__stream_encoder_set_loose_mid_side_stereo </td>
 
574
          <td class="md" valign="top">(&nbsp;</td>
 
575
          <td class="md" nowrap valign="top"><a class="el" href="structFLAC____StreamEncoder.html">FLAC__StreamEncoder</a> *&nbsp;</td>
 
576
          <td class="mdname" nowrap>&nbsp; <em>encoder</em>, </td>
 
577
        </tr>
 
578
        <tr>
 
579
          <td></td>
 
580
          <td></td>
 
581
          <td class="md" nowrap>FLAC__bool&nbsp;</td>
 
582
          <td class="mdname" nowrap>&nbsp; <em>value</em></td>
 
583
        </tr>
 
584
        <tr>
 
585
          <td></td>
 
586
          <td class="md">)&nbsp;</td>
 
587
          <td class="md" colspan="2"></td>
 
588
        </tr>
 
589
 
 
590
      </table>
 
591
    </td>
 
592
  </tr>
 
593
</table>
 
594
<table cellspacing=5 cellpadding=0 border=0>
 
595
  <tr>
 
596
    <td>
 
597
      &nbsp;
 
598
    </td>
 
599
    <td>
 
600
 
 
601
<p>
 
602
Set to <code>true</code> to enable adaptive switching between mid-side and left-right encoding on stereo input. The number of channels must be 2. Set to <code>false</code> to use exhaustive searching. In either case, the mid/side stereo setting must be <code>true</code>.<dl compact><dt><b>
 
603
Default Value:</b><dd>
 
604
 <code>false</code> </dl><dl compact><dt><b>
 
605
Parameters: </b><dd>
 
606
<table border=0 cellspacing=2 cellpadding=0>
 
607
<tr><td valign=top><em>encoder</em>&nbsp;</td><td>
 
608
An encoder instance to set. </td></tr>
 
609
<tr><td valign=top><em>value</em>&nbsp;</td><td>
 
610
Flag value (see above). </td></tr>
 
611
</table>
 
612
</dl><dl compact><dt><b>
 
613
Assertions:</b><dd>
 
614
 <div class="fragment"><pre>encoder != NULL 
 
615
</pre></div> </dl><dl compact><dt><b>
 
616
Return values: </b><dd>
 
617
<table border=0 cellspacing=2 cellpadding=0>
 
618
<tr><td valign=top><em>FLAC__bool</em>&nbsp;</td><td>
 
619
<code>false</code> if the encoder is already initialized, else <code>true</code>. </td></tr>
 
620
</table>
 
621
</dl>    </td>
 
622
  </tr>
 
623
</table>
 
624
<a name="a10" doxytag="stream_encoder.h::FLAC__stream_encoder_set_channels"></a><p>
 
625
<table width="100%" cellpadding="2" cellspacing="0" border="0">
 
626
  <tr>
 
627
    <td class="md">
 
628
      <table cellpadding="0" cellspacing="0" border="0">
 
629
        <tr>
 
630
          <td class="md" nowrap valign="top"> FLAC__bool FLAC__stream_encoder_set_channels </td>
 
631
          <td class="md" valign="top">(&nbsp;</td>
 
632
          <td class="md" nowrap valign="top"><a class="el" href="structFLAC____StreamEncoder.html">FLAC__StreamEncoder</a> *&nbsp;</td>
 
633
          <td class="mdname" nowrap>&nbsp; <em>encoder</em>, </td>
 
634
        </tr>
 
635
        <tr>
 
636
          <td></td>
 
637
          <td></td>
 
638
          <td class="md" nowrap>unsigned&nbsp;</td>
 
639
          <td class="mdname" nowrap>&nbsp; <em>value</em></td>
 
640
        </tr>
 
641
        <tr>
 
642
          <td></td>
 
643
          <td class="md">)&nbsp;</td>
 
644
          <td class="md" colspan="2"></td>
 
645
        </tr>
 
646
 
 
647
      </table>
 
648
    </td>
 
649
  </tr>
 
650
</table>
 
651
<table cellspacing=5 cellpadding=0 border=0>
 
652
  <tr>
 
653
    <td>
 
654
      &nbsp;
 
655
    </td>
 
656
    <td>
 
657
 
 
658
<p>
 
659
Set the number of channels to be encoded.<dl compact><dt><b>
 
660
Default Value:</b><dd>
 
661
 <code>2</code> </dl><dl compact><dt><b>
 
662
Parameters: </b><dd>
 
663
<table border=0 cellspacing=2 cellpadding=0>
 
664
<tr><td valign=top><em>encoder</em>&nbsp;</td><td>
 
665
An encoder instance to set. </td></tr>
 
666
<tr><td valign=top><em>value</em>&nbsp;</td><td>
 
667
See above. </td></tr>
 
668
</table>
 
669
</dl><dl compact><dt><b>
 
670
Assertions:</b><dd>
 
671
 <div class="fragment"><pre>encoder != NULL 
 
672
</pre></div> </dl><dl compact><dt><b>
 
673
Return values: </b><dd>
 
674
<table border=0 cellspacing=2 cellpadding=0>
 
675
<tr><td valign=top><em>FLAC__bool</em>&nbsp;</td><td>
 
676
<code>false</code> if the encoder is already initialized, else <code>true</code>. </td></tr>
 
677
</table>
 
678
</dl>    </td>
 
679
  </tr>
 
680
</table>
 
681
<a name="a11" doxytag="stream_encoder.h::FLAC__stream_encoder_set_bits_per_sample"></a><p>
 
682
<table width="100%" cellpadding="2" cellspacing="0" border="0">
 
683
  <tr>
 
684
    <td class="md">
 
685
      <table cellpadding="0" cellspacing="0" border="0">
 
686
        <tr>
 
687
          <td class="md" nowrap valign="top"> FLAC__bool FLAC__stream_encoder_set_bits_per_sample </td>
 
688
          <td class="md" valign="top">(&nbsp;</td>
 
689
          <td class="md" nowrap valign="top"><a class="el" href="structFLAC____StreamEncoder.html">FLAC__StreamEncoder</a> *&nbsp;</td>
 
690
          <td class="mdname" nowrap>&nbsp; <em>encoder</em>, </td>
 
691
        </tr>
 
692
        <tr>
 
693
          <td></td>
 
694
          <td></td>
 
695
          <td class="md" nowrap>unsigned&nbsp;</td>
 
696
          <td class="mdname" nowrap>&nbsp; <em>value</em></td>
 
697
        </tr>
 
698
        <tr>
 
699
          <td></td>
 
700
          <td class="md">)&nbsp;</td>
 
701
          <td class="md" colspan="2"></td>
 
702
        </tr>
 
703
 
 
704
      </table>
 
705
    </td>
 
706
  </tr>
 
707
</table>
 
708
<table cellspacing=5 cellpadding=0 border=0>
 
709
  <tr>
 
710
    <td>
 
711
      &nbsp;
 
712
    </td>
 
713
    <td>
 
714
 
 
715
<p>
 
716
Set the sample resolution of the input to be encoded.
 
717
<p>
 
718
<dl compact><dt><b>
 
719
Warning: </b><dd>
 
720
 Do not feed the encoder data that is wider than the value you set here or you will generate an invalid stream.</dl><dl compact><dt><b>
 
721
Default Value:</b><dd>
 
722
 <code>16</code> </dl><dl compact><dt><b>
 
723
Parameters: </b><dd>
 
724
<table border=0 cellspacing=2 cellpadding=0>
 
725
<tr><td valign=top><em>encoder</em>&nbsp;</td><td>
 
726
An encoder instance to set. </td></tr>
 
727
<tr><td valign=top><em>value</em>&nbsp;</td><td>
 
728
See above. </td></tr>
 
729
</table>
 
730
</dl><dl compact><dt><b>
 
731
Assertions:</b><dd>
 
732
 <div class="fragment"><pre>encoder != NULL 
 
733
</pre></div> </dl><dl compact><dt><b>
 
734
Return values: </b><dd>
 
735
<table border=0 cellspacing=2 cellpadding=0>
 
736
<tr><td valign=top><em>FLAC__bool</em>&nbsp;</td><td>
 
737
<code>false</code> if the encoder is already initialized, else <code>true</code>. </td></tr>
 
738
</table>
 
739
</dl>    </td>
 
740
  </tr>
 
741
</table>
 
742
<a name="a12" doxytag="stream_encoder.h::FLAC__stream_encoder_set_sample_rate"></a><p>
 
743
<table width="100%" cellpadding="2" cellspacing="0" border="0">
 
744
  <tr>
 
745
    <td class="md">
 
746
      <table cellpadding="0" cellspacing="0" border="0">
 
747
        <tr>
 
748
          <td class="md" nowrap valign="top"> FLAC__bool FLAC__stream_encoder_set_sample_rate </td>
 
749
          <td class="md" valign="top">(&nbsp;</td>
 
750
          <td class="md" nowrap valign="top"><a class="el" href="structFLAC____StreamEncoder.html">FLAC__StreamEncoder</a> *&nbsp;</td>
 
751
          <td class="mdname" nowrap>&nbsp; <em>encoder</em>, </td>
 
752
        </tr>
 
753
        <tr>
 
754
          <td></td>
 
755
          <td></td>
 
756
          <td class="md" nowrap>unsigned&nbsp;</td>
 
757
          <td class="mdname" nowrap>&nbsp; <em>value</em></td>
 
758
        </tr>
 
759
        <tr>
 
760
          <td></td>
 
761
          <td class="md">)&nbsp;</td>
 
762
          <td class="md" colspan="2"></td>
 
763
        </tr>
 
764
 
 
765
      </table>
 
766
    </td>
 
767
  </tr>
 
768
</table>
 
769
<table cellspacing=5 cellpadding=0 border=0>
 
770
  <tr>
 
771
    <td>
 
772
      &nbsp;
 
773
    </td>
 
774
    <td>
 
775
 
 
776
<p>
 
777
Set the sample rate (in Hz) of the input to be encoded.<dl compact><dt><b>
 
778
Default Value:</b><dd>
 
779
 <code>44100</code> </dl><dl compact><dt><b>
 
780
Parameters: </b><dd>
 
781
<table border=0 cellspacing=2 cellpadding=0>
 
782
<tr><td valign=top><em>encoder</em>&nbsp;</td><td>
 
783
An encoder instance to set. </td></tr>
 
784
<tr><td valign=top><em>value</em>&nbsp;</td><td>
 
785
See above. </td></tr>
 
786
</table>
 
787
</dl><dl compact><dt><b>
 
788
Assertions:</b><dd>
 
789
 <div class="fragment"><pre>encoder != NULL 
 
790
</pre></div> </dl><dl compact><dt><b>
 
791
Return values: </b><dd>
 
792
<table border=0 cellspacing=2 cellpadding=0>
 
793
<tr><td valign=top><em>FLAC__bool</em>&nbsp;</td><td>
 
794
<code>false</code> if the encoder is already initialized, else <code>true</code>. </td></tr>
 
795
</table>
 
796
</dl>    </td>
 
797
  </tr>
 
798
</table>
 
799
<a name="a13" doxytag="stream_encoder.h::FLAC__stream_encoder_set_blocksize"></a><p>
 
800
<table width="100%" cellpadding="2" cellspacing="0" border="0">
 
801
  <tr>
 
802
    <td class="md">
 
803
      <table cellpadding="0" cellspacing="0" border="0">
 
804
        <tr>
 
805
          <td class="md" nowrap valign="top"> FLAC__bool FLAC__stream_encoder_set_blocksize </td>
 
806
          <td class="md" valign="top">(&nbsp;</td>
 
807
          <td class="md" nowrap valign="top"><a class="el" href="structFLAC____StreamEncoder.html">FLAC__StreamEncoder</a> *&nbsp;</td>
 
808
          <td class="mdname" nowrap>&nbsp; <em>encoder</em>, </td>
 
809
        </tr>
 
810
        <tr>
 
811
          <td></td>
 
812
          <td></td>
 
813
          <td class="md" nowrap>unsigned&nbsp;</td>
 
814
          <td class="mdname" nowrap>&nbsp; <em>value</em></td>
 
815
        </tr>
 
816
        <tr>
 
817
          <td></td>
 
818
          <td class="md">)&nbsp;</td>
 
819
          <td class="md" colspan="2"></td>
 
820
        </tr>
 
821
 
 
822
      </table>
 
823
    </td>
 
824
  </tr>
 
825
</table>
 
826
<table cellspacing=5 cellpadding=0 border=0>
 
827
  <tr>
 
828
    <td>
 
829
      &nbsp;
 
830
    </td>
 
831
    <td>
 
832
 
 
833
<p>
 
834
Set the blocksize to use while encoding.<dl compact><dt><b>
 
835
Default Value:</b><dd>
 
836
 <code>1152</code> </dl><dl compact><dt><b>
 
837
Parameters: </b><dd>
 
838
<table border=0 cellspacing=2 cellpadding=0>
 
839
<tr><td valign=top><em>encoder</em>&nbsp;</td><td>
 
840
An encoder instance to set. </td></tr>
 
841
<tr><td valign=top><em>value</em>&nbsp;</td><td>
 
842
See above. </td></tr>
 
843
</table>
 
844
</dl><dl compact><dt><b>
 
845
Assertions:</b><dd>
 
846
 <div class="fragment"><pre>encoder != NULL 
 
847
</pre></div> </dl><dl compact><dt><b>
 
848
Return values: </b><dd>
 
849
<table border=0 cellspacing=2 cellpadding=0>
 
850
<tr><td valign=top><em>FLAC__bool</em>&nbsp;</td><td>
 
851
<code>false</code> if the encoder is already initialized, else <code>true</code>. </td></tr>
 
852
</table>
 
853
</dl>    </td>
 
854
  </tr>
 
855
</table>
 
856
<a name="a14" doxytag="stream_encoder.h::FLAC__stream_encoder_set_max_lpc_order"></a><p>
 
857
<table width="100%" cellpadding="2" cellspacing="0" border="0">
 
858
  <tr>
 
859
    <td class="md">
 
860
      <table cellpadding="0" cellspacing="0" border="0">
 
861
        <tr>
 
862
          <td class="md" nowrap valign="top"> FLAC__bool FLAC__stream_encoder_set_max_lpc_order </td>
 
863
          <td class="md" valign="top">(&nbsp;</td>
 
864
          <td class="md" nowrap valign="top"><a class="el" href="structFLAC____StreamEncoder.html">FLAC__StreamEncoder</a> *&nbsp;</td>
 
865
          <td class="mdname" nowrap>&nbsp; <em>encoder</em>, </td>
 
866
        </tr>
 
867
        <tr>
 
868
          <td></td>
 
869
          <td></td>
 
870
          <td class="md" nowrap>unsigned&nbsp;</td>
 
871
          <td class="mdname" nowrap>&nbsp; <em>value</em></td>
 
872
        </tr>
 
873
        <tr>
 
874
          <td></td>
 
875
          <td class="md">)&nbsp;</td>
 
876
          <td class="md" colspan="2"></td>
 
877
        </tr>
 
878
 
 
879
      </table>
 
880
    </td>
 
881
  </tr>
 
882
</table>
 
883
<table cellspacing=5 cellpadding=0 border=0>
 
884
  <tr>
 
885
    <td>
 
886
      &nbsp;
 
887
    </td>
 
888
    <td>
 
889
 
 
890
<p>
 
891
Set the maximum LPC order, or <code>0</code> to use only the fixed predictors.<dl compact><dt><b>
 
892
Default Value:</b><dd>
 
893
 <code>0</code> </dl><dl compact><dt><b>
 
894
Parameters: </b><dd>
 
895
<table border=0 cellspacing=2 cellpadding=0>
 
896
<tr><td valign=top><em>encoder</em>&nbsp;</td><td>
 
897
An encoder instance to set. </td></tr>
 
898
<tr><td valign=top><em>value</em>&nbsp;</td><td>
 
899
See above. </td></tr>
 
900
</table>
 
901
</dl><dl compact><dt><b>
 
902
Assertions:</b><dd>
 
903
 <div class="fragment"><pre>encoder != NULL 
 
904
</pre></div> </dl><dl compact><dt><b>
 
905
Return values: </b><dd>
 
906
<table border=0 cellspacing=2 cellpadding=0>
 
907
<tr><td valign=top><em>FLAC__bool</em>&nbsp;</td><td>
 
908
<code>false</code> if the encoder is already initialized, else <code>true</code>. </td></tr>
 
909
</table>
 
910
</dl>    </td>
 
911
  </tr>
 
912
</table>
 
913
<a name="a15" doxytag="stream_encoder.h::FLAC__stream_encoder_set_qlp_coeff_precision"></a><p>
 
914
<table width="100%" cellpadding="2" cellspacing="0" border="0">
 
915
  <tr>
 
916
    <td class="md">
 
917
      <table cellpadding="0" cellspacing="0" border="0">
 
918
        <tr>
 
919
          <td class="md" nowrap valign="top"> FLAC__bool FLAC__stream_encoder_set_qlp_coeff_precision </td>
 
920
          <td class="md" valign="top">(&nbsp;</td>
 
921
          <td class="md" nowrap valign="top"><a class="el" href="structFLAC____StreamEncoder.html">FLAC__StreamEncoder</a> *&nbsp;</td>
 
922
          <td class="mdname" nowrap>&nbsp; <em>encoder</em>, </td>
 
923
        </tr>
 
924
        <tr>
 
925
          <td></td>
 
926
          <td></td>
 
927
          <td class="md" nowrap>unsigned&nbsp;</td>
 
928
          <td class="mdname" nowrap>&nbsp; <em>value</em></td>
 
929
        </tr>
 
930
        <tr>
 
931
          <td></td>
 
932
          <td class="md">)&nbsp;</td>
 
933
          <td class="md" colspan="2"></td>
 
934
        </tr>
 
935
 
 
936
      </table>
 
937
    </td>
 
938
  </tr>
 
939
</table>
 
940
<table cellspacing=5 cellpadding=0 border=0>
 
941
  <tr>
 
942
    <td>
 
943
      &nbsp;
 
944
    </td>
 
945
    <td>
 
946
 
 
947
<p>
 
948
Set the precision, in bits, of the quantized linear predictor coefficients, or <code>0</code> to let the encoder select it based on the blocksize.
 
949
<p>
 
950
<dl compact><dt><b>
 
951
Note: </b><dd>
 
952
 In the current implementation, qlp_coeff_precision + bits_per_sample must be less than 32.</dl><dl compact><dt><b>
 
953
Default Value:</b><dd>
 
954
 <code>0</code> </dl><dl compact><dt><b>
 
955
Parameters: </b><dd>
 
956
<table border=0 cellspacing=2 cellpadding=0>
 
957
<tr><td valign=top><em>encoder</em>&nbsp;</td><td>
 
958
An encoder instance to set. </td></tr>
 
959
<tr><td valign=top><em>value</em>&nbsp;</td><td>
 
960
See above. </td></tr>
 
961
</table>
 
962
</dl><dl compact><dt><b>
 
963
Assertions:</b><dd>
 
964
 <div class="fragment"><pre>encoder != NULL 
 
965
</pre></div> </dl><dl compact><dt><b>
 
966
Return values: </b><dd>
 
967
<table border=0 cellspacing=2 cellpadding=0>
 
968
<tr><td valign=top><em>FLAC__bool</em>&nbsp;</td><td>
 
969
<code>false</code> if the encoder is already initialized, else <code>true</code>. </td></tr>
 
970
</table>
 
971
</dl>    </td>
 
972
  </tr>
 
973
</table>
 
974
<a name="a16" doxytag="stream_encoder.h::FLAC__stream_encoder_set_do_qlp_coeff_prec_search"></a><p>
 
975
<table width="100%" cellpadding="2" cellspacing="0" border="0">
 
976
  <tr>
 
977
    <td class="md">
 
978
      <table cellpadding="0" cellspacing="0" border="0">
 
979
        <tr>
 
980
          <td class="md" nowrap valign="top"> FLAC__bool FLAC__stream_encoder_set_do_qlp_coeff_prec_search </td>
 
981
          <td class="md" valign="top">(&nbsp;</td>
 
982
          <td class="md" nowrap valign="top"><a class="el" href="structFLAC____StreamEncoder.html">FLAC__StreamEncoder</a> *&nbsp;</td>
 
983
          <td class="mdname" nowrap>&nbsp; <em>encoder</em>, </td>
 
984
        </tr>
 
985
        <tr>
 
986
          <td></td>
 
987
          <td></td>
 
988
          <td class="md" nowrap>FLAC__bool&nbsp;</td>
 
989
          <td class="mdname" nowrap>&nbsp; <em>value</em></td>
 
990
        </tr>
 
991
        <tr>
 
992
          <td></td>
 
993
          <td class="md">)&nbsp;</td>
 
994
          <td class="md" colspan="2"></td>
 
995
        </tr>
 
996
 
 
997
      </table>
 
998
    </td>
 
999
  </tr>
 
1000
</table>
 
1001
<table cellspacing=5 cellpadding=0 border=0>
 
1002
  <tr>
 
1003
    <td>
 
1004
      &nbsp;
 
1005
    </td>
 
1006
    <td>
 
1007
 
 
1008
<p>
 
1009
Set to <code>false</code> to use only the specified quantized linear predictor coefficient precision, or <code>true</code> to search neighboring precision values and use the best one.<dl compact><dt><b>
 
1010
Default Value:</b><dd>
 
1011
 <code>false</code> </dl><dl compact><dt><b>
 
1012
Parameters: </b><dd>
 
1013
<table border=0 cellspacing=2 cellpadding=0>
 
1014
<tr><td valign=top><em>encoder</em>&nbsp;</td><td>
 
1015
An encoder instance to set. </td></tr>
 
1016
<tr><td valign=top><em>value</em>&nbsp;</td><td>
 
1017
See above. </td></tr>
 
1018
</table>
 
1019
</dl><dl compact><dt><b>
 
1020
Assertions:</b><dd>
 
1021
 <div class="fragment"><pre>encoder != NULL 
 
1022
</pre></div> </dl><dl compact><dt><b>
 
1023
Return values: </b><dd>
 
1024
<table border=0 cellspacing=2 cellpadding=0>
 
1025
<tr><td valign=top><em>FLAC__bool</em>&nbsp;</td><td>
 
1026
<code>false</code> if the encoder is already initialized, else <code>true</code>. </td></tr>
 
1027
</table>
 
1028
</dl>    </td>
 
1029
  </tr>
 
1030
</table>
 
1031
<a name="a17" doxytag="stream_encoder.h::FLAC__stream_encoder_set_do_escape_coding"></a><p>
 
1032
<table width="100%" cellpadding="2" cellspacing="0" border="0">
 
1033
  <tr>
 
1034
    <td class="md">
 
1035
      <table cellpadding="0" cellspacing="0" border="0">
 
1036
        <tr>
 
1037
          <td class="md" nowrap valign="top"> FLAC__bool FLAC__stream_encoder_set_do_escape_coding </td>
 
1038
          <td class="md" valign="top">(&nbsp;</td>
 
1039
          <td class="md" nowrap valign="top"><a class="el" href="structFLAC____StreamEncoder.html">FLAC__StreamEncoder</a> *&nbsp;</td>
 
1040
          <td class="mdname" nowrap>&nbsp; <em>encoder</em>, </td>
 
1041
        </tr>
 
1042
        <tr>
 
1043
          <td></td>
 
1044
          <td></td>
 
1045
          <td class="md" nowrap>FLAC__bool&nbsp;</td>
 
1046
          <td class="mdname" nowrap>&nbsp; <em>value</em></td>
 
1047
        </tr>
 
1048
        <tr>
 
1049
          <td></td>
 
1050
          <td class="md">)&nbsp;</td>
 
1051
          <td class="md" colspan="2"></td>
 
1052
        </tr>
 
1053
 
 
1054
      </table>
 
1055
    </td>
 
1056
  </tr>
 
1057
</table>
 
1058
<table cellspacing=5 cellpadding=0 border=0>
 
1059
  <tr>
 
1060
    <td>
 
1061
      &nbsp;
 
1062
    </td>
 
1063
    <td>
 
1064
 
 
1065
<p>
 
1066
Deprecated. Setting this value has no effect.<dl compact><dt><b>
 
1067
Default Value:</b><dd>
 
1068
 <code>false</code> </dl><dl compact><dt><b>
 
1069
Parameters: </b><dd>
 
1070
<table border=0 cellspacing=2 cellpadding=0>
 
1071
<tr><td valign=top><em>encoder</em>&nbsp;</td><td>
 
1072
An encoder instance to set. </td></tr>
 
1073
<tr><td valign=top><em>value</em>&nbsp;</td><td>
 
1074
See above. </td></tr>
 
1075
</table>
 
1076
</dl><dl compact><dt><b>
 
1077
Assertions:</b><dd>
 
1078
 <div class="fragment"><pre>encoder != NULL 
 
1079
</pre></div> </dl><dl compact><dt><b>
 
1080
Return values: </b><dd>
 
1081
<table border=0 cellspacing=2 cellpadding=0>
 
1082
<tr><td valign=top><em>FLAC__bool</em>&nbsp;</td><td>
 
1083
<code>false</code> if the encoder is already initialized, else <code>true</code>. </td></tr>
 
1084
</table>
 
1085
</dl>    </td>
 
1086
  </tr>
 
1087
</table>
 
1088
<a name="a18" doxytag="stream_encoder.h::FLAC__stream_encoder_set_do_exhaustive_model_search"></a><p>
 
1089
<table width="100%" cellpadding="2" cellspacing="0" border="0">
 
1090
  <tr>
 
1091
    <td class="md">
 
1092
      <table cellpadding="0" cellspacing="0" border="0">
 
1093
        <tr>
 
1094
          <td class="md" nowrap valign="top"> FLAC__bool FLAC__stream_encoder_set_do_exhaustive_model_search </td>
 
1095
          <td class="md" valign="top">(&nbsp;</td>
 
1096
          <td class="md" nowrap valign="top"><a class="el" href="structFLAC____StreamEncoder.html">FLAC__StreamEncoder</a> *&nbsp;</td>
 
1097
          <td class="mdname" nowrap>&nbsp; <em>encoder</em>, </td>
 
1098
        </tr>
 
1099
        <tr>
 
1100
          <td></td>
 
1101
          <td></td>
 
1102
          <td class="md" nowrap>FLAC__bool&nbsp;</td>
 
1103
          <td class="mdname" nowrap>&nbsp; <em>value</em></td>
 
1104
        </tr>
 
1105
        <tr>
 
1106
          <td></td>
 
1107
          <td class="md">)&nbsp;</td>
 
1108
          <td class="md" colspan="2"></td>
 
1109
        </tr>
 
1110
 
 
1111
      </table>
 
1112
    </td>
 
1113
  </tr>
 
1114
</table>
 
1115
<table cellspacing=5 cellpadding=0 border=0>
 
1116
  <tr>
 
1117
    <td>
 
1118
      &nbsp;
 
1119
    </td>
 
1120
    <td>
 
1121
 
 
1122
<p>
 
1123
Set to <code>false</code> to let the encoder estimate the best model order based on the residual signal energy, or <code>true</code> to force the encoder to evaluate all order models and select the best.<dl compact><dt><b>
 
1124
Default Value:</b><dd>
 
1125
 <code>false</code> </dl><dl compact><dt><b>
 
1126
Parameters: </b><dd>
 
1127
<table border=0 cellspacing=2 cellpadding=0>
 
1128
<tr><td valign=top><em>encoder</em>&nbsp;</td><td>
 
1129
An encoder instance to set. </td></tr>
 
1130
<tr><td valign=top><em>value</em>&nbsp;</td><td>
 
1131
See above. </td></tr>
 
1132
</table>
 
1133
</dl><dl compact><dt><b>
 
1134
Assertions:</b><dd>
 
1135
 <div class="fragment"><pre>encoder != NULL 
 
1136
</pre></div> </dl><dl compact><dt><b>
 
1137
Return values: </b><dd>
 
1138
<table border=0 cellspacing=2 cellpadding=0>
 
1139
<tr><td valign=top><em>FLAC__bool</em>&nbsp;</td><td>
 
1140
<code>false</code> if the encoder is already initialized, else <code>true</code>. </td></tr>
 
1141
</table>
 
1142
</dl>    </td>
 
1143
  </tr>
 
1144
</table>
 
1145
<a name="a19" doxytag="stream_encoder.h::FLAC__stream_encoder_set_min_residual_partition_order"></a><p>
 
1146
<table width="100%" cellpadding="2" cellspacing="0" border="0">
 
1147
  <tr>
 
1148
    <td class="md">
 
1149
      <table cellpadding="0" cellspacing="0" border="0">
 
1150
        <tr>
 
1151
          <td class="md" nowrap valign="top"> FLAC__bool FLAC__stream_encoder_set_min_residual_partition_order </td>
 
1152
          <td class="md" valign="top">(&nbsp;</td>
 
1153
          <td class="md" nowrap valign="top"><a class="el" href="structFLAC____StreamEncoder.html">FLAC__StreamEncoder</a> *&nbsp;</td>
 
1154
          <td class="mdname" nowrap>&nbsp; <em>encoder</em>, </td>
 
1155
        </tr>
 
1156
        <tr>
 
1157
          <td></td>
 
1158
          <td></td>
 
1159
          <td class="md" nowrap>unsigned&nbsp;</td>
 
1160
          <td class="mdname" nowrap>&nbsp; <em>value</em></td>
 
1161
        </tr>
 
1162
        <tr>
 
1163
          <td></td>
 
1164
          <td class="md">)&nbsp;</td>
 
1165
          <td class="md" colspan="2"></td>
 
1166
        </tr>
 
1167
 
 
1168
      </table>
 
1169
    </td>
 
1170
  </tr>
 
1171
</table>
 
1172
<table cellspacing=5 cellpadding=0 border=0>
 
1173
  <tr>
 
1174
    <td>
 
1175
      &nbsp;
 
1176
    </td>
 
1177
    <td>
 
1178
 
 
1179
<p>
 
1180
Set the minimum partition order to search when coding the residual. This is used in tandem with <a class="el" href="group__flac__stream__encoder.html#a20">FLAC__stream_encoder_set_max_residual_partition_order</a>().
 
1181
<p>
 
1182
The partition order determines the context size in the residual. The context size will be approximately <code>blocksize / (2 ^ order)</code>.
 
1183
<p>
 
1184
Set both min and max values to <code>0</code> to force a single context, whose Rice parameter is based on the residual signal variance. Otherwise, set a min and max order, and the encoder will search all orders, using the mean of each context for its Rice parameter, and use the best.<dl compact><dt><b>
 
1185
Default Value:</b><dd>
 
1186
 <code>0</code> </dl><dl compact><dt><b>
 
1187
Parameters: </b><dd>
 
1188
<table border=0 cellspacing=2 cellpadding=0>
 
1189
<tr><td valign=top><em>encoder</em>&nbsp;</td><td>
 
1190
An encoder instance to set. </td></tr>
 
1191
<tr><td valign=top><em>value</em>&nbsp;</td><td>
 
1192
See above. </td></tr>
 
1193
</table>
 
1194
</dl><dl compact><dt><b>
 
1195
Assertions:</b><dd>
 
1196
 <div class="fragment"><pre>encoder != NULL 
 
1197
</pre></div> </dl><dl compact><dt><b>
 
1198
Return values: </b><dd>
 
1199
<table border=0 cellspacing=2 cellpadding=0>
 
1200
<tr><td valign=top><em>FLAC__bool</em>&nbsp;</td><td>
 
1201
<code>false</code> if the encoder is already initialized, else <code>true</code>. </td></tr>
 
1202
</table>
 
1203
</dl>    </td>
 
1204
  </tr>
 
1205
</table>
 
1206
<a name="a20" doxytag="stream_encoder.h::FLAC__stream_encoder_set_max_residual_partition_order"></a><p>
 
1207
<table width="100%" cellpadding="2" cellspacing="0" border="0">
 
1208
  <tr>
 
1209
    <td class="md">
 
1210
      <table cellpadding="0" cellspacing="0" border="0">
 
1211
        <tr>
 
1212
          <td class="md" nowrap valign="top"> FLAC__bool FLAC__stream_encoder_set_max_residual_partition_order </td>
 
1213
          <td class="md" valign="top">(&nbsp;</td>
 
1214
          <td class="md" nowrap valign="top"><a class="el" href="structFLAC____StreamEncoder.html">FLAC__StreamEncoder</a> *&nbsp;</td>
 
1215
          <td class="mdname" nowrap>&nbsp; <em>encoder</em>, </td>
 
1216
        </tr>
 
1217
        <tr>
 
1218
          <td></td>
 
1219
          <td></td>
 
1220
          <td class="md" nowrap>unsigned&nbsp;</td>
 
1221
          <td class="mdname" nowrap>&nbsp; <em>value</em></td>
 
1222
        </tr>
 
1223
        <tr>
 
1224
          <td></td>
 
1225
          <td class="md">)&nbsp;</td>
 
1226
          <td class="md" colspan="2"></td>
 
1227
        </tr>
 
1228
 
 
1229
      </table>
 
1230
    </td>
 
1231
  </tr>
 
1232
</table>
 
1233
<table cellspacing=5 cellpadding=0 border=0>
 
1234
  <tr>
 
1235
    <td>
 
1236
      &nbsp;
 
1237
    </td>
 
1238
    <td>
 
1239
 
 
1240
<p>
 
1241
Set the maximum partition order to search when coding the residual. This is used in tandem with <a class="el" href="group__flac__stream__encoder.html#a19">FLAC__stream_encoder_set_min_residual_partition_order</a>().
 
1242
<p>
 
1243
The partition order determines the context size in the residual. The context size will be approximately <code>blocksize / (2 ^ order)</code>.
 
1244
<p>
 
1245
Set both min and max values to <code>0</code> to force a single context, whose Rice parameter is based on the residual signal variance. Otherwise, set a min and max order, and the encoder will search all orders, using the mean of each context for its Rice parameter, and use the best.<dl compact><dt><b>
 
1246
Default Value:</b><dd>
 
1247
 <code>0</code> </dl><dl compact><dt><b>
 
1248
Parameters: </b><dd>
 
1249
<table border=0 cellspacing=2 cellpadding=0>
 
1250
<tr><td valign=top><em>encoder</em>&nbsp;</td><td>
 
1251
An encoder instance to set. </td></tr>
 
1252
<tr><td valign=top><em>value</em>&nbsp;</td><td>
 
1253
See above. </td></tr>
 
1254
</table>
 
1255
</dl><dl compact><dt><b>
 
1256
Assertions:</b><dd>
 
1257
 <div class="fragment"><pre>encoder != NULL 
 
1258
</pre></div> </dl><dl compact><dt><b>
 
1259
Return values: </b><dd>
 
1260
<table border=0 cellspacing=2 cellpadding=0>
 
1261
<tr><td valign=top><em>FLAC__bool</em>&nbsp;</td><td>
 
1262
<code>false</code> if the encoder is already initialized, else <code>true</code>. </td></tr>
 
1263
</table>
 
1264
</dl>    </td>
 
1265
  </tr>
 
1266
</table>
 
1267
<a name="a21" doxytag="stream_encoder.h::FLAC__stream_encoder_set_rice_parameter_search_dist"></a><p>
 
1268
<table width="100%" cellpadding="2" cellspacing="0" border="0">
 
1269
  <tr>
 
1270
    <td class="md">
 
1271
      <table cellpadding="0" cellspacing="0" border="0">
 
1272
        <tr>
 
1273
          <td class="md" nowrap valign="top"> FLAC__bool FLAC__stream_encoder_set_rice_parameter_search_dist </td>
 
1274
          <td class="md" valign="top">(&nbsp;</td>
 
1275
          <td class="md" nowrap valign="top"><a class="el" href="structFLAC____StreamEncoder.html">FLAC__StreamEncoder</a> *&nbsp;</td>
 
1276
          <td class="mdname" nowrap>&nbsp; <em>encoder</em>, </td>
 
1277
        </tr>
 
1278
        <tr>
 
1279
          <td></td>
 
1280
          <td></td>
 
1281
          <td class="md" nowrap>unsigned&nbsp;</td>
 
1282
          <td class="mdname" nowrap>&nbsp; <em>value</em></td>
 
1283
        </tr>
 
1284
        <tr>
 
1285
          <td></td>
 
1286
          <td class="md">)&nbsp;</td>
 
1287
          <td class="md" colspan="2"></td>
 
1288
        </tr>
 
1289
 
 
1290
      </table>
 
1291
    </td>
 
1292
  </tr>
 
1293
</table>
 
1294
<table cellspacing=5 cellpadding=0 border=0>
 
1295
  <tr>
 
1296
    <td>
 
1297
      &nbsp;
 
1298
    </td>
 
1299
    <td>
 
1300
 
 
1301
<p>
 
1302
Deprecated. Setting this value has no effect.<dl compact><dt><b>
 
1303
Default Value:</b><dd>
 
1304
 <code>0</code> </dl><dl compact><dt><b>
 
1305
Parameters: </b><dd>
 
1306
<table border=0 cellspacing=2 cellpadding=0>
 
1307
<tr><td valign=top><em>encoder</em>&nbsp;</td><td>
 
1308
An encoder instance to set. </td></tr>
 
1309
<tr><td valign=top><em>value</em>&nbsp;</td><td>
 
1310
See above. </td></tr>
 
1311
</table>
 
1312
</dl><dl compact><dt><b>
 
1313
Assertions:</b><dd>
 
1314
 <div class="fragment"><pre>encoder != NULL 
 
1315
</pre></div> </dl><dl compact><dt><b>
 
1316
Return values: </b><dd>
 
1317
<table border=0 cellspacing=2 cellpadding=0>
 
1318
<tr><td valign=top><em>FLAC__bool</em>&nbsp;</td><td>
 
1319
<code>false</code> if the encoder is already initialized, else <code>true</code>. </td></tr>
 
1320
</table>
 
1321
</dl>    </td>
 
1322
  </tr>
 
1323
</table>
 
1324
<a name="a22" doxytag="stream_encoder.h::FLAC__stream_encoder_set_total_samples_estimate"></a><p>
 
1325
<table width="100%" cellpadding="2" cellspacing="0" border="0">
 
1326
  <tr>
 
1327
    <td class="md">
 
1328
      <table cellpadding="0" cellspacing="0" border="0">
 
1329
        <tr>
 
1330
          <td class="md" nowrap valign="top"> FLAC__bool FLAC__stream_encoder_set_total_samples_estimate </td>
 
1331
          <td class="md" valign="top">(&nbsp;</td>
 
1332
          <td class="md" nowrap valign="top"><a class="el" href="structFLAC____StreamEncoder.html">FLAC__StreamEncoder</a> *&nbsp;</td>
 
1333
          <td class="mdname" nowrap>&nbsp; <em>encoder</em>, </td>
 
1334
        </tr>
 
1335
        <tr>
 
1336
          <td></td>
 
1337
          <td></td>
 
1338
          <td class="md" nowrap>FLAC__uint64&nbsp;</td>
 
1339
          <td class="mdname" nowrap>&nbsp; <em>value</em></td>
 
1340
        </tr>
 
1341
        <tr>
 
1342
          <td></td>
 
1343
          <td class="md">)&nbsp;</td>
 
1344
          <td class="md" colspan="2"></td>
 
1345
        </tr>
 
1346
 
 
1347
      </table>
 
1348
    </td>
 
1349
  </tr>
 
1350
</table>
 
1351
<table cellspacing=5 cellpadding=0 border=0>
 
1352
  <tr>
 
1353
    <td>
 
1354
      &nbsp;
 
1355
    </td>
 
1356
    <td>
 
1357
 
 
1358
<p>
 
1359
Set an estimate of the total samples that will be encoded. This is merely an estimate and may be set to <code>0</code> if unknown. This value will be written to the STREAMINFO block before encoding, and can remove the need for the caller to rewrite the value later if the value is known before encoding.<dl compact><dt><b>
 
1360
Default Value:</b><dd>
 
1361
 <code>0</code> </dl><dl compact><dt><b>
 
1362
Parameters: </b><dd>
 
1363
<table border=0 cellspacing=2 cellpadding=0>
 
1364
<tr><td valign=top><em>encoder</em>&nbsp;</td><td>
 
1365
An encoder instance to set. </td></tr>
 
1366
<tr><td valign=top><em>value</em>&nbsp;</td><td>
 
1367
See above. </td></tr>
 
1368
</table>
 
1369
</dl><dl compact><dt><b>
 
1370
Assertions:</b><dd>
 
1371
 <div class="fragment"><pre>encoder != NULL 
 
1372
</pre></div> </dl><dl compact><dt><b>
 
1373
Return values: </b><dd>
 
1374
<table border=0 cellspacing=2 cellpadding=0>
 
1375
<tr><td valign=top><em>FLAC__bool</em>&nbsp;</td><td>
 
1376
<code>false</code> if the encoder is already initialized, else <code>true</code>. </td></tr>
 
1377
</table>
 
1378
</dl>    </td>
 
1379
  </tr>
 
1380
</table>
 
1381
<a name="a23" doxytag="stream_encoder.h::FLAC__stream_encoder_set_metadata"></a><p>
 
1382
<table width="100%" cellpadding="2" cellspacing="0" border="0">
 
1383
  <tr>
 
1384
    <td class="md">
 
1385
      <table cellpadding="0" cellspacing="0" border="0">
 
1386
        <tr>
 
1387
          <td class="md" nowrap valign="top"> FLAC__bool FLAC__stream_encoder_set_metadata </td>
 
1388
          <td class="md" valign="top">(&nbsp;</td>
 
1389
          <td class="md" nowrap valign="top"><a class="el" href="structFLAC____StreamEncoder.html">FLAC__StreamEncoder</a> *&nbsp;</td>
 
1390
          <td class="mdname" nowrap>&nbsp; <em>encoder</em>, </td>
 
1391
        </tr>
 
1392
        <tr>
 
1393
          <td></td>
 
1394
          <td></td>
 
1395
          <td class="md" nowrap><a class="el" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> **&nbsp;</td>
 
1396
          <td class="mdname" nowrap>&nbsp; <em>metadata</em>, </td>
 
1397
        </tr>
 
1398
        <tr>
 
1399
          <td></td>
 
1400
          <td></td>
 
1401
          <td class="md" nowrap>unsigned&nbsp;</td>
 
1402
          <td class="mdname" nowrap>&nbsp; <em>num_blocks</em></td>
 
1403
        </tr>
 
1404
        <tr>
 
1405
          <td></td>
 
1406
          <td class="md">)&nbsp;</td>
 
1407
          <td class="md" colspan="2"></td>
 
1408
        </tr>
 
1409
 
 
1410
      </table>
 
1411
    </td>
 
1412
  </tr>
 
1413
</table>
 
1414
<table cellspacing=5 cellpadding=0 border=0>
 
1415
  <tr>
 
1416
    <td>
 
1417
      &nbsp;
 
1418
    </td>
 
1419
    <td>
 
1420
 
 
1421
<p>
 
1422
Set the metadata blocks to be emitted to the stream before encoding. A value of <code>NULL</code>, <code>0</code> implies no metadata; otherwise, supply an array of pointers to metadata blocks. The array is non-const since the encoder may need to change the <em>is_last</em> flag inside them. Otherwise, the encoder will not modify or free the blocks. It is up to the caller to free the metadata blocks after encoding.
 
1423
<p>
 
1424
<dl compact><dt><b>
 
1425
Note: </b><dd>
 
1426
 The encoder stores only the <em>metadata</em> pointer; the passed-in array must survive at least until after <a class="el" href="group__flac__stream__encoder.html#a48">FLAC__stream_encoder_init</a>() returns. Do not modify the array or free the blocks until then.</dl><dl compact><dt><b>
 
1427
Note: </b><dd>
 
1428
 The STREAMINFO block is always written and no STREAMINFO block may occur in the supplied array.</dl><dl compact><dt><b>
 
1429
Note: </b><dd>
 
1430
 By default the encoder does not create a SEEKTABLE. If one is supplied in the <em>metadata</em> array it will be written verbatim. However by itself this is not very useful as the user will not know the stream offsets for the seekpoints ahead of time. You must use the seekable stream encoder to generate a legal seektable (see <a class="el" href="group__flac__seekable__stream__encoder.html#a23">FLAC__seekable_stream_encoder_set_metadata</a>())</dl><dl compact><dt><b>
 
1431
Note: </b><dd>
 
1432
 A VORBIS_COMMENT block may be supplied. The vendor string in it will be ignored. libFLAC will use it's own vendor string. libFLAC will not modify the passed-in VORBIS_COMMENT's vendor string, it will simply write it's own into the stream. If no VORBIS_COMMENT block is present in the <em>metadata</em> array, libFLAC will write an empty one, containing only the vendor string.</dl><dl compact><dt><b>
 
1433
Default Value:</b><dd>
 
1434
 <code>NULL</code>, 0 </dl><dl compact><dt><b>
 
1435
Parameters: </b><dd>
 
1436
<table border=0 cellspacing=2 cellpadding=0>
 
1437
<tr><td valign=top><em>encoder</em>&nbsp;</td><td>
 
1438
An encoder instance to set. </td></tr>
 
1439
<tr><td valign=top><em>metadata</em>&nbsp;</td><td>
 
1440
See above. </td></tr>
 
1441
<tr><td valign=top><em>num_blocks</em>&nbsp;</td><td>
 
1442
See above. </td></tr>
 
1443
</table>
 
1444
</dl><dl compact><dt><b>
 
1445
Assertions:</b><dd>
 
1446
 <div class="fragment"><pre>encoder != NULL 
 
1447
</pre></div> </dl><dl compact><dt><b>
 
1448
Return values: </b><dd>
 
1449
<table border=0 cellspacing=2 cellpadding=0>
 
1450
<tr><td valign=top><em>FLAC__bool</em>&nbsp;</td><td>
 
1451
<code>false</code> if the encoder is already initialized, else <code>true</code>. </td></tr>
 
1452
</table>
 
1453
</dl>    </td>
 
1454
  </tr>
 
1455
</table>
 
1456
<a name="a24" doxytag="stream_encoder.h::FLAC__stream_encoder_set_write_callback"></a><p>
 
1457
<table width="100%" cellpadding="2" cellspacing="0" border="0">
 
1458
  <tr>
 
1459
    <td class="md">
 
1460
      <table cellpadding="0" cellspacing="0" border="0">
 
1461
        <tr>
 
1462
          <td class="md" nowrap valign="top"> FLAC__bool FLAC__stream_encoder_set_write_callback </td>
 
1463
          <td class="md" valign="top">(&nbsp;</td>
 
1464
          <td class="md" nowrap valign="top"><a class="el" href="structFLAC____StreamEncoder.html">FLAC__StreamEncoder</a> *&nbsp;</td>
 
1465
          <td class="mdname" nowrap>&nbsp; <em>encoder</em>, </td>
 
1466
        </tr>
 
1467
        <tr>
 
1468
          <td></td>
 
1469
          <td></td>
 
1470
          <td class="md" nowrap><a class="el" href="group__flac__stream__encoder.html#a2">FLAC__StreamEncoderWriteCallback</a>&nbsp;</td>
 
1471
          <td class="mdname" nowrap>&nbsp; <em>value</em></td>
 
1472
        </tr>
 
1473
        <tr>
 
1474
          <td></td>
 
1475
          <td class="md">)&nbsp;</td>
 
1476
          <td class="md" colspan="2"></td>
 
1477
        </tr>
 
1478
 
 
1479
      </table>
 
1480
    </td>
 
1481
  </tr>
 
1482
</table>
 
1483
<table cellspacing=5 cellpadding=0 border=0>
 
1484
  <tr>
 
1485
    <td>
 
1486
      &nbsp;
 
1487
    </td>
 
1488
    <td>
 
1489
 
 
1490
<p>
 
1491
Set the write callback. The supplied function will be called by the encoder anytime there is raw encoded data ready to write. It may include metadata mixed with encoded audio frames and the data is not guaranteed to be aligned on frame or metadata block boundaries.
 
1492
<p>
 
1493
The only duty of the callback is to write out the <em>bytes</em> worth of data in <em>buffer</em> to the current position in the output stream. The arguments <em>samples</em> and <em>current_frame</em> are purely informational. If <em>samples</em> is greater than <code>0</code>, then <em>current_frame</em> will hold the current frame number that is being written; otherwise, the write callback is being called to write metadata.
 
1494
<p>
 
1495
<dl compact><dt><b>
 
1496
Note: </b><dd>
 
1497
 The callback is mandatory and must be set before initialization.</dl><dl compact><dt><b>
 
1498
Default Value:</b><dd>
 
1499
 <code>NULL</code> </dl><dl compact><dt><b>
 
1500
Parameters: </b><dd>
 
1501
<table border=0 cellspacing=2 cellpadding=0>
 
1502
<tr><td valign=top><em>encoder</em>&nbsp;</td><td>
 
1503
An encoder instance to set. </td></tr>
 
1504
<tr><td valign=top><em>value</em>&nbsp;</td><td>
 
1505
See above. </td></tr>
 
1506
</table>
 
1507
</dl><dl compact><dt><b>
 
1508
Assertions:</b><dd>
 
1509
 <div class="fragment"><pre>encoder != NULL 
 
1510
</pre></div> <div class="fragment"><pre>value != NULL 
 
1511
</pre></div> </dl><dl compact><dt><b>
 
1512
Return values: </b><dd>
 
1513
<table border=0 cellspacing=2 cellpadding=0>
 
1514
<tr><td valign=top><em>FLAC__bool</em>&nbsp;</td><td>
 
1515
<code>false</code> if the encoder is already initialized, else <code>true</code>. </td></tr>
 
1516
</table>
 
1517
</dl>    </td>
 
1518
  </tr>
 
1519
</table>
 
1520
<a name="a25" doxytag="stream_encoder.h::FLAC__stream_encoder_set_metadata_callback"></a><p>
 
1521
<table width="100%" cellpadding="2" cellspacing="0" border="0">
 
1522
  <tr>
 
1523
    <td class="md">
 
1524
      <table cellpadding="0" cellspacing="0" border="0">
 
1525
        <tr>
 
1526
          <td class="md" nowrap valign="top"> FLAC__bool FLAC__stream_encoder_set_metadata_callback </td>
 
1527
          <td class="md" valign="top">(&nbsp;</td>
 
1528
          <td class="md" nowrap valign="top"><a class="el" href="structFLAC____StreamEncoder.html">FLAC__StreamEncoder</a> *&nbsp;</td>
 
1529
          <td class="mdname" nowrap>&nbsp; <em>encoder</em>, </td>
 
1530
        </tr>
 
1531
        <tr>
 
1532
          <td></td>
 
1533
          <td></td>
 
1534
          <td class="md" nowrap><a class="el" href="group__flac__stream__encoder.html#a3">FLAC__StreamEncoderMetadataCallback</a>&nbsp;</td>
 
1535
          <td class="mdname" nowrap>&nbsp; <em>value</em></td>
 
1536
        </tr>
 
1537
        <tr>
 
1538
          <td></td>
 
1539
          <td class="md">)&nbsp;</td>
 
1540
          <td class="md" colspan="2"></td>
 
1541
        </tr>
 
1542
 
 
1543
      </table>
 
1544
    </td>
 
1545
  </tr>
 
1546
</table>
 
1547
<table cellspacing=5 cellpadding=0 border=0>
 
1548
  <tr>
 
1549
    <td>
 
1550
      &nbsp;
 
1551
    </td>
 
1552
    <td>
 
1553
 
 
1554
<p>
 
1555
Set the metadata callback. The supplied function will be called once at the end of encoding with the populated STREAMINFO structure. This is so file encoders can seek back to the beginning of the file and write the STREAMINFO block with the correct statistics after encoding (like minimum/maximum frame size and total samples).
 
1556
<p>
 
1557
<dl compact><dt><b>
 
1558
Note: </b><dd>
 
1559
 The callback is mandatory and must be set before initialization.</dl><dl compact><dt><b>
 
1560
Default Value:</b><dd>
 
1561
 <code>NULL</code> </dl><dl compact><dt><b>
 
1562
Parameters: </b><dd>
 
1563
<table border=0 cellspacing=2 cellpadding=0>
 
1564
<tr><td valign=top><em>encoder</em>&nbsp;</td><td>
 
1565
An encoder instance to set. </td></tr>
 
1566
<tr><td valign=top><em>value</em>&nbsp;</td><td>
 
1567
See above. </td></tr>
 
1568
</table>
 
1569
</dl><dl compact><dt><b>
 
1570
Assertions:</b><dd>
 
1571
 <div class="fragment"><pre>encoder != NULL 
 
1572
</pre></div> <div class="fragment"><pre>value != NULL 
 
1573
</pre></div> </dl><dl compact><dt><b>
 
1574
Return values: </b><dd>
 
1575
<table border=0 cellspacing=2 cellpadding=0>
 
1576
<tr><td valign=top><em>FLAC__bool</em>&nbsp;</td><td>
 
1577
<code>false</code> if the encoder is already initialized, else <code>true</code>. </td></tr>
 
1578
</table>
 
1579
</dl>    </td>
 
1580
  </tr>
 
1581
</table>
 
1582
<a name="a26" doxytag="stream_encoder.h::FLAC__stream_encoder_set_client_data"></a><p>
 
1583
<table width="100%" cellpadding="2" cellspacing="0" border="0">
 
1584
  <tr>
 
1585
    <td class="md">
 
1586
      <table cellpadding="0" cellspacing="0" border="0">
 
1587
        <tr>
 
1588
          <td class="md" nowrap valign="top"> FLAC__bool FLAC__stream_encoder_set_client_data </td>
 
1589
          <td class="md" valign="top">(&nbsp;</td>
 
1590
          <td class="md" nowrap valign="top"><a class="el" href="structFLAC____StreamEncoder.html">FLAC__StreamEncoder</a> *&nbsp;</td>
 
1591
          <td class="mdname" nowrap>&nbsp; <em>encoder</em>, </td>
 
1592
        </tr>
 
1593
        <tr>
 
1594
          <td></td>
 
1595
          <td></td>
 
1596
          <td class="md" nowrap>void *&nbsp;</td>
 
1597
          <td class="mdname" nowrap>&nbsp; <em>value</em></td>
 
1598
        </tr>
 
1599
        <tr>
 
1600
          <td></td>
 
1601
          <td class="md">)&nbsp;</td>
 
1602
          <td class="md" colspan="2"></td>
 
1603
        </tr>
 
1604
 
 
1605
      </table>
 
1606
    </td>
 
1607
  </tr>
 
1608
</table>
 
1609
<table cellspacing=5 cellpadding=0 border=0>
 
1610
  <tr>
 
1611
    <td>
 
1612
      &nbsp;
 
1613
    </td>
 
1614
    <td>
 
1615
 
 
1616
<p>
 
1617
Set the client data to be passed back to callbacks. This value will be supplied to callbacks in their <em>client_data</em> argument.<dl compact><dt><b>
 
1618
Default Value:</b><dd>
 
1619
 <code>NULL</code> </dl><dl compact><dt><b>
 
1620
Parameters: </b><dd>
 
1621
<table border=0 cellspacing=2 cellpadding=0>
 
1622
<tr><td valign=top><em>encoder</em>&nbsp;</td><td>
 
1623
An encoder instance to set. </td></tr>
 
1624
<tr><td valign=top><em>value</em>&nbsp;</td><td>
 
1625
See above. </td></tr>
 
1626
</table>
 
1627
</dl><dl compact><dt><b>
 
1628
Assertions:</b><dd>
 
1629
 <div class="fragment"><pre>encoder != NULL 
 
1630
</pre></div> </dl><dl compact><dt><b>
 
1631
Return values: </b><dd>
 
1632
<table border=0 cellspacing=2 cellpadding=0>
 
1633
<tr><td valign=top><em>FLAC__bool</em>&nbsp;</td><td>
 
1634
<code>false</code> if the encoder is already initialized, else <code>true</code>. </td></tr>
 
1635
</table>
 
1636
</dl>    </td>
 
1637
  </tr>
 
1638
</table>
 
1639
<a name="a27" doxytag="stream_encoder.h::FLAC__stream_encoder_get_state"></a><p>
 
1640
<table width="100%" cellpadding="2" cellspacing="0" border="0">
 
1641
  <tr>
 
1642
    <td class="md">
 
1643
      <table cellpadding="0" cellspacing="0" border="0">
 
1644
        <tr>
 
1645
          <td class="md" nowrap valign="top"> <a class="el" href="group__flac__stream__encoder.html#a52">FLAC__StreamEncoderState</a> FLAC__stream_encoder_get_state </td>
 
1646
          <td class="md" valign="top">(&nbsp;</td>
 
1647
          <td class="md" nowrap valign="top">const <a class="el" href="structFLAC____StreamEncoder.html">FLAC__StreamEncoder</a> *&nbsp;</td>
 
1648
          <td class="mdname1" valign="top" nowrap>&nbsp; <em>encoder</em>          </td>
 
1649
          <td class="md" valign="top">)&nbsp;</td>
 
1650
          <td class="md" nowrap></td>
 
1651
        </tr>
 
1652
 
 
1653
      </table>
 
1654
    </td>
 
1655
  </tr>
 
1656
</table>
 
1657
<table cellspacing=5 cellpadding=0 border=0>
 
1658
  <tr>
 
1659
    <td>
 
1660
      &nbsp;
 
1661
    </td>
 
1662
    <td>
 
1663
 
 
1664
<p>
 
1665
Get the current encoder state.<dl compact><dt><b>
 
1666
Parameters: </b><dd>
 
1667
<table border=0 cellspacing=2 cellpadding=0>
 
1668
<tr><td valign=top><em>encoder</em>&nbsp;</td><td>
 
1669
An encoder instance to query. </td></tr>
 
1670
</table>
 
1671
</dl><dl compact><dt><b>
 
1672
Assertions:</b><dd>
 
1673
 <div class="fragment"><pre>encoder != NULL 
 
1674
</pre></div> </dl><dl compact><dt><b>
 
1675
Return values: </b><dd>
 
1676
<table border=0 cellspacing=2 cellpadding=0>
 
1677
<tr><td valign=top><em>FLAC__StreamEncoderState</em>&nbsp;</td><td>
 
1678
The current encoder state. </td></tr>
 
1679
</table>
 
1680
</dl>    </td>
 
1681
  </tr>
 
1682
</table>
 
1683
<a name="a28" doxytag="stream_encoder.h::FLAC__stream_encoder_get_verify_decoder_state"></a><p>
 
1684
<table width="100%" cellpadding="2" cellspacing="0" border="0">
 
1685
  <tr>
 
1686
    <td class="md">
 
1687
      <table cellpadding="0" cellspacing="0" border="0">
 
1688
        <tr>
 
1689
          <td class="md" nowrap valign="top"> <a class="el" href="group__flac__stream__decoder.html#a34">FLAC__StreamDecoderState</a> FLAC__stream_encoder_get_verify_decoder_state </td>
 
1690
          <td class="md" valign="top">(&nbsp;</td>
 
1691
          <td class="md" nowrap valign="top">const <a class="el" href="structFLAC____StreamEncoder.html">FLAC__StreamEncoder</a> *&nbsp;</td>
 
1692
          <td class="mdname1" valign="top" nowrap>&nbsp; <em>encoder</em>          </td>
 
1693
          <td class="md" valign="top">)&nbsp;</td>
 
1694
          <td class="md" nowrap></td>
 
1695
        </tr>
 
1696
 
 
1697
      </table>
 
1698
    </td>
 
1699
  </tr>
 
1700
</table>
 
1701
<table cellspacing=5 cellpadding=0 border=0>
 
1702
  <tr>
 
1703
    <td>
 
1704
      &nbsp;
 
1705
    </td>
 
1706
    <td>
 
1707
 
 
1708
<p>
 
1709
Get the state of the verify stream decoder. Useful when the stream encoder state is <code>FLAC__STREAM_ENCODER_VERIFY_DECODER_ERROR</code>.<dl compact><dt><b>
 
1710
Parameters: </b><dd>
 
1711
<table border=0 cellspacing=2 cellpadding=0>
 
1712
<tr><td valign=top><em>encoder</em>&nbsp;</td><td>
 
1713
An encoder instance to query. </td></tr>
 
1714
</table>
 
1715
</dl><dl compact><dt><b>
 
1716
Assertions:</b><dd>
 
1717
 <div class="fragment"><pre>encoder != NULL 
 
1718
</pre></div> </dl><dl compact><dt><b>
 
1719
Return values: </b><dd>
 
1720
<table border=0 cellspacing=2 cellpadding=0>
 
1721
<tr><td valign=top><em>FLAC__StreamDecoderState</em>&nbsp;</td><td>
 
1722
The verify stream decoder state. </td></tr>
 
1723
</table>
 
1724
</dl>    </td>
 
1725
  </tr>
 
1726
</table>
 
1727
<a name="a29" doxytag="stream_encoder.h::FLAC__stream_encoder_get_resolved_state_string"></a><p>
 
1728
<table width="100%" cellpadding="2" cellspacing="0" border="0">
 
1729
  <tr>
 
1730
    <td class="md">
 
1731
      <table cellpadding="0" cellspacing="0" border="0">
 
1732
        <tr>
 
1733
          <td class="md" nowrap valign="top"> const char* FLAC__stream_encoder_get_resolved_state_string </td>
 
1734
          <td class="md" valign="top">(&nbsp;</td>
 
1735
          <td class="md" nowrap valign="top">const <a class="el" href="structFLAC____StreamEncoder.html">FLAC__StreamEncoder</a> *&nbsp;</td>
 
1736
          <td class="mdname1" valign="top" nowrap>&nbsp; <em>encoder</em>          </td>
 
1737
          <td class="md" valign="top">)&nbsp;</td>
 
1738
          <td class="md" nowrap></td>
 
1739
        </tr>
 
1740
 
 
1741
      </table>
 
1742
    </td>
 
1743
  </tr>
 
1744
</table>
 
1745
<table cellspacing=5 cellpadding=0 border=0>
 
1746
  <tr>
 
1747
    <td>
 
1748
      &nbsp;
 
1749
    </td>
 
1750
    <td>
 
1751
 
 
1752
<p>
 
1753
Get the current encoder state as a C string. This version automatically resolves <code>FLAC__STREAM_ENCODER_VERIFY_DECODER_ERROR</code> by getting the verify decoder's state.<dl compact><dt><b>
 
1754
Parameters: </b><dd>
 
1755
<table border=0 cellspacing=2 cellpadding=0>
 
1756
<tr><td valign=top><em>encoder</em>&nbsp;</td><td>
 
1757
A encoder instance to query. </td></tr>
 
1758
</table>
 
1759
</dl><dl compact><dt><b>
 
1760
Assertions:</b><dd>
 
1761
 <div class="fragment"><pre>encoder != NULL 
 
1762
</pre></div> </dl><dl compact><dt><b>
 
1763
Return values: </b><dd>
 
1764
<table border=0 cellspacing=2 cellpadding=0>
 
1765
<tr><td valign=top><em>const</em>&nbsp;</td><td>
 
1766
char * The encoder state as a C string. Do not modify the contents. </td></tr>
 
1767
</table>
 
1768
</dl>    </td>
 
1769
  </tr>
 
1770
</table>
 
1771
<a name="a30" doxytag="stream_encoder.h::FLAC__stream_encoder_get_verify_decoder_error_stats"></a><p>
 
1772
<table width="100%" cellpadding="2" cellspacing="0" border="0">
 
1773
  <tr>
 
1774
    <td class="md">
 
1775
      <table cellpadding="0" cellspacing="0" border="0">
 
1776
        <tr>
 
1777
          <td class="md" nowrap valign="top"> void FLAC__stream_encoder_get_verify_decoder_error_stats </td>
 
1778
          <td class="md" valign="top">(&nbsp;</td>
 
1779
          <td class="md" nowrap valign="top">const <a class="el" href="structFLAC____StreamEncoder.html">FLAC__StreamEncoder</a> *&nbsp;</td>
 
1780
          <td class="mdname" nowrap>&nbsp; <em>encoder</em>, </td>
 
1781
        </tr>
 
1782
        <tr>
 
1783
          <td></td>
 
1784
          <td></td>
 
1785
          <td class="md" nowrap>FLAC__uint64 *&nbsp;</td>
 
1786
          <td class="mdname" nowrap>&nbsp; <em>absolute_sample</em>, </td>
 
1787
        </tr>
 
1788
        <tr>
 
1789
          <td></td>
 
1790
          <td></td>
 
1791
          <td class="md" nowrap>unsigned *&nbsp;</td>
 
1792
          <td class="mdname" nowrap>&nbsp; <em>frame_number</em>, </td>
 
1793
        </tr>
 
1794
        <tr>
 
1795
          <td></td>
 
1796
          <td></td>
 
1797
          <td class="md" nowrap>unsigned *&nbsp;</td>
 
1798
          <td class="mdname" nowrap>&nbsp; <em>channel</em>, </td>
 
1799
        </tr>
 
1800
        <tr>
 
1801
          <td></td>
 
1802
          <td></td>
 
1803
          <td class="md" nowrap>unsigned *&nbsp;</td>
 
1804
          <td class="mdname" nowrap>&nbsp; <em>sample</em>, </td>
 
1805
        </tr>
 
1806
        <tr>
 
1807
          <td></td>
 
1808
          <td></td>
 
1809
          <td class="md" nowrap>FLAC__int32 *&nbsp;</td>
 
1810
          <td class="mdname" nowrap>&nbsp; <em>expected</em>, </td>
 
1811
        </tr>
 
1812
        <tr>
 
1813
          <td></td>
 
1814
          <td></td>
 
1815
          <td class="md" nowrap>FLAC__int32 *&nbsp;</td>
 
1816
          <td class="mdname" nowrap>&nbsp; <em>got</em></td>
 
1817
        </tr>
 
1818
        <tr>
 
1819
          <td></td>
 
1820
          <td class="md">)&nbsp;</td>
 
1821
          <td class="md" colspan="2"></td>
 
1822
        </tr>
 
1823
 
 
1824
      </table>
 
1825
    </td>
 
1826
  </tr>
 
1827
</table>
 
1828
<table cellspacing=5 cellpadding=0 border=0>
 
1829
  <tr>
 
1830
    <td>
 
1831
      &nbsp;
 
1832
    </td>
 
1833
    <td>
 
1834
 
 
1835
<p>
 
1836
Get relevant values about the nature of a verify decoder error. Useful when the stream encoder state is <code>FLAC__STREAM_ENCODER_VERIFY_DECODER_ERROR</code>. The arguments should be addresses in which the stats will be returned, or NULL if value is not desired.<dl compact><dt><b>
 
1837
Parameters: </b><dd>
 
1838
<table border=0 cellspacing=2 cellpadding=0>
 
1839
<tr><td valign=top><em>encoder</em>&nbsp;</td><td>
 
1840
An encoder instance to query. </td></tr>
 
1841
<tr><td valign=top><em>absolute_sample</em>&nbsp;</td><td>
 
1842
The absolute sample number of the mismatch. </td></tr>
 
1843
<tr><td valign=top><em>frame_number</em>&nbsp;</td><td>
 
1844
The number of the frame in which the mismatch occurred. </td></tr>
 
1845
<tr><td valign=top><em>channel</em>&nbsp;</td><td>
 
1846
The channel in which the mismatch occurred. </td></tr>
 
1847
<tr><td valign=top><em>sample</em>&nbsp;</td><td>
 
1848
The number of the sample (relative to the frame) in which the mismatch occurred. </td></tr>
 
1849
<tr><td valign=top><em>expected</em>&nbsp;</td><td>
 
1850
The expected value for the sample in question. </td></tr>
 
1851
<tr><td valign=top><em>got</em>&nbsp;</td><td>
 
1852
The actual value returned by the decoder. </td></tr>
 
1853
</table>
 
1854
</dl><dl compact><dt><b>
 
1855
Assertions:</b><dd>
 
1856
 <div class="fragment"><pre>encoder != NULL 
 
1857
</pre></div> </dl>    </td>
 
1858
  </tr>
 
1859
</table>
 
1860
<a name="a31" doxytag="stream_encoder.h::FLAC__stream_encoder_get_verify"></a><p>
 
1861
<table width="100%" cellpadding="2" cellspacing="0" border="0">
 
1862
  <tr>
 
1863
    <td class="md">
 
1864
      <table cellpadding="0" cellspacing="0" border="0">
 
1865
        <tr>
 
1866
          <td class="md" nowrap valign="top"> FLAC__bool FLAC__stream_encoder_get_verify </td>
 
1867
          <td class="md" valign="top">(&nbsp;</td>
 
1868
          <td class="md" nowrap valign="top">const <a class="el" href="structFLAC____StreamEncoder.html">FLAC__StreamEncoder</a> *&nbsp;</td>
 
1869
          <td class="mdname1" valign="top" nowrap>&nbsp; <em>encoder</em>          </td>
 
1870
          <td class="md" valign="top">)&nbsp;</td>
 
1871
          <td class="md" nowrap></td>
 
1872
        </tr>
 
1873
 
 
1874
      </table>
 
1875
    </td>
 
1876
  </tr>
 
1877
</table>
 
1878
<table cellspacing=5 cellpadding=0 border=0>
 
1879
  <tr>
 
1880
    <td>
 
1881
      &nbsp;
 
1882
    </td>
 
1883
    <td>
 
1884
 
 
1885
<p>
 
1886
Get the "verify" flag.<dl compact><dt><b>
 
1887
Parameters: </b><dd>
 
1888
<table border=0 cellspacing=2 cellpadding=0>
 
1889
<tr><td valign=top><em>encoder</em>&nbsp;</td><td>
 
1890
An encoder instance to query. </td></tr>
 
1891
</table>
 
1892
</dl><dl compact><dt><b>
 
1893
Assertions:</b><dd>
 
1894
 <div class="fragment"><pre>encoder != NULL 
 
1895
</pre></div> </dl><dl compact><dt><b>
 
1896
Return values: </b><dd>
 
1897
<table border=0 cellspacing=2 cellpadding=0>
 
1898
<tr><td valign=top><em>FLAC__bool</em>&nbsp;</td><td>
 
1899
See <a class="el" href="group__flac__stream__encoder.html#a6">FLAC__stream_encoder_set_verify</a>(). </td></tr>
 
1900
</table>
 
1901
</dl>    </td>
 
1902
  </tr>
 
1903
</table>
 
1904
<a name="a32" doxytag="stream_encoder.h::FLAC__stream_encoder_get_streamable_subset"></a><p>
 
1905
<table width="100%" cellpadding="2" cellspacing="0" border="0">
 
1906
  <tr>
 
1907
    <td class="md">
 
1908
      <table cellpadding="0" cellspacing="0" border="0">
 
1909
        <tr>
 
1910
          <td class="md" nowrap valign="top"> FLAC__bool FLAC__stream_encoder_get_streamable_subset </td>
 
1911
          <td class="md" valign="top">(&nbsp;</td>
 
1912
          <td class="md" nowrap valign="top">const <a class="el" href="structFLAC____StreamEncoder.html">FLAC__StreamEncoder</a> *&nbsp;</td>
 
1913
          <td class="mdname1" valign="top" nowrap>&nbsp; <em>encoder</em>          </td>
 
1914
          <td class="md" valign="top">)&nbsp;</td>
 
1915
          <td class="md" nowrap></td>
 
1916
        </tr>
 
1917
 
 
1918
      </table>
 
1919
    </td>
 
1920
  </tr>
 
1921
</table>
 
1922
<table cellspacing=5 cellpadding=0 border=0>
 
1923
  <tr>
 
1924
    <td>
 
1925
      &nbsp;
 
1926
    </td>
 
1927
    <td>
 
1928
 
 
1929
<p>
 
1930
Get the "streamable subset" flag.<dl compact><dt><b>
 
1931
Parameters: </b><dd>
 
1932
<table border=0 cellspacing=2 cellpadding=0>
 
1933
<tr><td valign=top><em>encoder</em>&nbsp;</td><td>
 
1934
An encoder instance to query. </td></tr>
 
1935
</table>
 
1936
</dl><dl compact><dt><b>
 
1937
Assertions:</b><dd>
 
1938
 <div class="fragment"><pre>encoder != NULL 
 
1939
</pre></div> </dl><dl compact><dt><b>
 
1940
Return values: </b><dd>
 
1941
<table border=0 cellspacing=2 cellpadding=0>
 
1942
<tr><td valign=top><em>FLAC__bool</em>&nbsp;</td><td>
 
1943
See <a class="el" href="group__flac__stream__encoder.html#a7">FLAC__stream_encoder_set_streamable_subset</a>(). </td></tr>
 
1944
</table>
 
1945
</dl>    </td>
 
1946
  </tr>
 
1947
</table>
 
1948
<a name="a33" doxytag="stream_encoder.h::FLAC__stream_encoder_get_do_mid_side_stereo"></a><p>
 
1949
<table width="100%" cellpadding="2" cellspacing="0" border="0">
 
1950
  <tr>
 
1951
    <td class="md">
 
1952
      <table cellpadding="0" cellspacing="0" border="0">
 
1953
        <tr>
 
1954
          <td class="md" nowrap valign="top"> FLAC__bool FLAC__stream_encoder_get_do_mid_side_stereo </td>
 
1955
          <td class="md" valign="top">(&nbsp;</td>
 
1956
          <td class="md" nowrap valign="top">const <a class="el" href="structFLAC____StreamEncoder.html">FLAC__StreamEncoder</a> *&nbsp;</td>
 
1957
          <td class="mdname1" valign="top" nowrap>&nbsp; <em>encoder</em>          </td>
 
1958
          <td class="md" valign="top">)&nbsp;</td>
 
1959
          <td class="md" nowrap></td>
 
1960
        </tr>
 
1961
 
 
1962
      </table>
 
1963
    </td>
 
1964
  </tr>
 
1965
</table>
 
1966
<table cellspacing=5 cellpadding=0 border=0>
 
1967
  <tr>
 
1968
    <td>
 
1969
      &nbsp;
 
1970
    </td>
 
1971
    <td>
 
1972
 
 
1973
<p>
 
1974
Get the "mid/side stereo coding" flag.<dl compact><dt><b>
 
1975
Parameters: </b><dd>
 
1976
<table border=0 cellspacing=2 cellpadding=0>
 
1977
<tr><td valign=top><em>encoder</em>&nbsp;</td><td>
 
1978
An encoder instance to query. </td></tr>
 
1979
</table>
 
1980
</dl><dl compact><dt><b>
 
1981
Assertions:</b><dd>
 
1982
 <div class="fragment"><pre>encoder != NULL 
 
1983
</pre></div> </dl><dl compact><dt><b>
 
1984
Return values: </b><dd>
 
1985
<table border=0 cellspacing=2 cellpadding=0>
 
1986
<tr><td valign=top><em>FLAC__bool</em>&nbsp;</td><td>
 
1987
See <a class="el" href="group__flac__stream__encoder.html#a33">FLAC__stream_encoder_get_do_mid_side_stereo</a>(). </td></tr>
 
1988
</table>
 
1989
</dl>    </td>
 
1990
  </tr>
 
1991
</table>
 
1992
<a name="a34" doxytag="stream_encoder.h::FLAC__stream_encoder_get_loose_mid_side_stereo"></a><p>
 
1993
<table width="100%" cellpadding="2" cellspacing="0" border="0">
 
1994
  <tr>
 
1995
    <td class="md">
 
1996
      <table cellpadding="0" cellspacing="0" border="0">
 
1997
        <tr>
 
1998
          <td class="md" nowrap valign="top"> FLAC__bool FLAC__stream_encoder_get_loose_mid_side_stereo </td>
 
1999
          <td class="md" valign="top">(&nbsp;</td>
 
2000
          <td class="md" nowrap valign="top">const <a class="el" href="structFLAC____StreamEncoder.html">FLAC__StreamEncoder</a> *&nbsp;</td>
 
2001
          <td class="mdname1" valign="top" nowrap>&nbsp; <em>encoder</em>          </td>
 
2002
          <td class="md" valign="top">)&nbsp;</td>
 
2003
          <td class="md" nowrap></td>
 
2004
        </tr>
 
2005
 
 
2006
      </table>
 
2007
    </td>
 
2008
  </tr>
 
2009
</table>
 
2010
<table cellspacing=5 cellpadding=0 border=0>
 
2011
  <tr>
 
2012
    <td>
 
2013
      &nbsp;
 
2014
    </td>
 
2015
    <td>
 
2016
 
 
2017
<p>
 
2018
Get the "adaptive mid/side switching" flag.<dl compact><dt><b>
 
2019
Parameters: </b><dd>
 
2020
<table border=0 cellspacing=2 cellpadding=0>
 
2021
<tr><td valign=top><em>encoder</em>&nbsp;</td><td>
 
2022
An encoder instance to query. </td></tr>
 
2023
</table>
 
2024
</dl><dl compact><dt><b>
 
2025
Assertions:</b><dd>
 
2026
 <div class="fragment"><pre>encoder != NULL 
 
2027
</pre></div> </dl><dl compact><dt><b>
 
2028
Return values: </b><dd>
 
2029
<table border=0 cellspacing=2 cellpadding=0>
 
2030
<tr><td valign=top><em>FLAC__bool</em>&nbsp;</td><td>
 
2031
See <a class="el" href="group__flac__stream__encoder.html#a9">FLAC__stream_encoder_set_loose_mid_side_stereo</a>(). </td></tr>
 
2032
</table>
 
2033
</dl>    </td>
 
2034
  </tr>
 
2035
</table>
 
2036
<a name="a35" doxytag="stream_encoder.h::FLAC__stream_encoder_get_channels"></a><p>
 
2037
<table width="100%" cellpadding="2" cellspacing="0" border="0">
 
2038
  <tr>
 
2039
    <td class="md">
 
2040
      <table cellpadding="0" cellspacing="0" border="0">
 
2041
        <tr>
 
2042
          <td class="md" nowrap valign="top"> unsigned FLAC__stream_encoder_get_channels </td>
 
2043
          <td class="md" valign="top">(&nbsp;</td>
 
2044
          <td class="md" nowrap valign="top">const <a class="el" href="structFLAC____StreamEncoder.html">FLAC__StreamEncoder</a> *&nbsp;</td>
 
2045
          <td class="mdname1" valign="top" nowrap>&nbsp; <em>encoder</em>          </td>
 
2046
          <td class="md" valign="top">)&nbsp;</td>
 
2047
          <td class="md" nowrap></td>
 
2048
        </tr>
 
2049
 
 
2050
      </table>
 
2051
    </td>
 
2052
  </tr>
 
2053
</table>
 
2054
<table cellspacing=5 cellpadding=0 border=0>
 
2055
  <tr>
 
2056
    <td>
 
2057
      &nbsp;
 
2058
    </td>
 
2059
    <td>
 
2060
 
 
2061
<p>
 
2062
Get the number of input channels being processed.<dl compact><dt><b>
 
2063
Parameters: </b><dd>
 
2064
<table border=0 cellspacing=2 cellpadding=0>
 
2065
<tr><td valign=top><em>encoder</em>&nbsp;</td><td>
 
2066
An encoder instance to query. </td></tr>
 
2067
</table>
 
2068
</dl><dl compact><dt><b>
 
2069
Assertions:</b><dd>
 
2070
 <div class="fragment"><pre>encoder != NULL 
 
2071
</pre></div> </dl><dl compact><dt><b>
 
2072
Return values: </b><dd>
 
2073
<table border=0 cellspacing=2 cellpadding=0>
 
2074
<tr><td valign=top><em>unsigned</em>&nbsp;</td><td>
 
2075
See <a class="el" href="group__flac__stream__encoder.html#a10">FLAC__stream_encoder_set_channels</a>(). </td></tr>
 
2076
</table>
 
2077
</dl>    </td>
 
2078
  </tr>
 
2079
</table>
 
2080
<a name="a36" doxytag="stream_encoder.h::FLAC__stream_encoder_get_bits_per_sample"></a><p>
 
2081
<table width="100%" cellpadding="2" cellspacing="0" border="0">
 
2082
  <tr>
 
2083
    <td class="md">
 
2084
      <table cellpadding="0" cellspacing="0" border="0">
 
2085
        <tr>
 
2086
          <td class="md" nowrap valign="top"> unsigned FLAC__stream_encoder_get_bits_per_sample </td>
 
2087
          <td class="md" valign="top">(&nbsp;</td>
 
2088
          <td class="md" nowrap valign="top">const <a class="el" href="structFLAC____StreamEncoder.html">FLAC__StreamEncoder</a> *&nbsp;</td>
 
2089
          <td class="mdname1" valign="top" nowrap>&nbsp; <em>encoder</em>          </td>
 
2090
          <td class="md" valign="top">)&nbsp;</td>
 
2091
          <td class="md" nowrap></td>
 
2092
        </tr>
 
2093
 
 
2094
      </table>
 
2095
    </td>
 
2096
  </tr>
 
2097
</table>
 
2098
<table cellspacing=5 cellpadding=0 border=0>
 
2099
  <tr>
 
2100
    <td>
 
2101
      &nbsp;
 
2102
    </td>
 
2103
    <td>
 
2104
 
 
2105
<p>
 
2106
Get the input sample resolution setting.<dl compact><dt><b>
 
2107
Parameters: </b><dd>
 
2108
<table border=0 cellspacing=2 cellpadding=0>
 
2109
<tr><td valign=top><em>encoder</em>&nbsp;</td><td>
 
2110
An encoder instance to query. </td></tr>
 
2111
</table>
 
2112
</dl><dl compact><dt><b>
 
2113
Assertions:</b><dd>
 
2114
 <div class="fragment"><pre>encoder != NULL 
 
2115
</pre></div> </dl><dl compact><dt><b>
 
2116
Return values: </b><dd>
 
2117
<table border=0 cellspacing=2 cellpadding=0>
 
2118
<tr><td valign=top><em>unsigned</em>&nbsp;</td><td>
 
2119
See <a class="el" href="group__flac__stream__encoder.html#a11">FLAC__stream_encoder_set_bits_per_sample</a>(). </td></tr>
 
2120
</table>
 
2121
</dl>    </td>
 
2122
  </tr>
 
2123
</table>
 
2124
<a name="a37" doxytag="stream_encoder.h::FLAC__stream_encoder_get_sample_rate"></a><p>
 
2125
<table width="100%" cellpadding="2" cellspacing="0" border="0">
 
2126
  <tr>
 
2127
    <td class="md">
 
2128
      <table cellpadding="0" cellspacing="0" border="0">
 
2129
        <tr>
 
2130
          <td class="md" nowrap valign="top"> unsigned FLAC__stream_encoder_get_sample_rate </td>
 
2131
          <td class="md" valign="top">(&nbsp;</td>
 
2132
          <td class="md" nowrap valign="top">const <a class="el" href="structFLAC____StreamEncoder.html">FLAC__StreamEncoder</a> *&nbsp;</td>
 
2133
          <td class="mdname1" valign="top" nowrap>&nbsp; <em>encoder</em>          </td>
 
2134
          <td class="md" valign="top">)&nbsp;</td>
 
2135
          <td class="md" nowrap></td>
 
2136
        </tr>
 
2137
 
 
2138
      </table>
 
2139
    </td>
 
2140
  </tr>
 
2141
</table>
 
2142
<table cellspacing=5 cellpadding=0 border=0>
 
2143
  <tr>
 
2144
    <td>
 
2145
      &nbsp;
 
2146
    </td>
 
2147
    <td>
 
2148
 
 
2149
<p>
 
2150
Get the input sample rate setting.<dl compact><dt><b>
 
2151
Parameters: </b><dd>
 
2152
<table border=0 cellspacing=2 cellpadding=0>
 
2153
<tr><td valign=top><em>encoder</em>&nbsp;</td><td>
 
2154
An encoder instance to query. </td></tr>
 
2155
</table>
 
2156
</dl><dl compact><dt><b>
 
2157
Assertions:</b><dd>
 
2158
 <div class="fragment"><pre>encoder != NULL 
 
2159
</pre></div> </dl><dl compact><dt><b>
 
2160
Return values: </b><dd>
 
2161
<table border=0 cellspacing=2 cellpadding=0>
 
2162
<tr><td valign=top><em>unsigned</em>&nbsp;</td><td>
 
2163
See <a class="el" href="group__flac__stream__encoder.html#a12">FLAC__stream_encoder_set_sample_rate</a>(). </td></tr>
 
2164
</table>
 
2165
</dl>    </td>
 
2166
  </tr>
 
2167
</table>
 
2168
<a name="a38" doxytag="stream_encoder.h::FLAC__stream_encoder_get_blocksize"></a><p>
 
2169
<table width="100%" cellpadding="2" cellspacing="0" border="0">
 
2170
  <tr>
 
2171
    <td class="md">
 
2172
      <table cellpadding="0" cellspacing="0" border="0">
 
2173
        <tr>
 
2174
          <td class="md" nowrap valign="top"> unsigned FLAC__stream_encoder_get_blocksize </td>
 
2175
          <td class="md" valign="top">(&nbsp;</td>
 
2176
          <td class="md" nowrap valign="top">const <a class="el" href="structFLAC____StreamEncoder.html">FLAC__StreamEncoder</a> *&nbsp;</td>
 
2177
          <td class="mdname1" valign="top" nowrap>&nbsp; <em>encoder</em>          </td>
 
2178
          <td class="md" valign="top">)&nbsp;</td>
 
2179
          <td class="md" nowrap></td>
 
2180
        </tr>
 
2181
 
 
2182
      </table>
 
2183
    </td>
 
2184
  </tr>
 
2185
</table>
 
2186
<table cellspacing=5 cellpadding=0 border=0>
 
2187
  <tr>
 
2188
    <td>
 
2189
      &nbsp;
 
2190
    </td>
 
2191
    <td>
 
2192
 
 
2193
<p>
 
2194
Get the blocksize setting.<dl compact><dt><b>
 
2195
Parameters: </b><dd>
 
2196
<table border=0 cellspacing=2 cellpadding=0>
 
2197
<tr><td valign=top><em>encoder</em>&nbsp;</td><td>
 
2198
An encoder instance to query. </td></tr>
 
2199
</table>
 
2200
</dl><dl compact><dt><b>
 
2201
Assertions:</b><dd>
 
2202
 <div class="fragment"><pre>encoder != NULL 
 
2203
</pre></div> </dl><dl compact><dt><b>
 
2204
Return values: </b><dd>
 
2205
<table border=0 cellspacing=2 cellpadding=0>
 
2206
<tr><td valign=top><em>unsigned</em>&nbsp;</td><td>
 
2207
See <a class="el" href="group__flac__stream__encoder.html#a13">FLAC__stream_encoder_set_blocksize</a>(). </td></tr>
 
2208
</table>
 
2209
</dl>    </td>
 
2210
  </tr>
 
2211
</table>
 
2212
<a name="a39" doxytag="stream_encoder.h::FLAC__stream_encoder_get_max_lpc_order"></a><p>
 
2213
<table width="100%" cellpadding="2" cellspacing="0" border="0">
 
2214
  <tr>
 
2215
    <td class="md">
 
2216
      <table cellpadding="0" cellspacing="0" border="0">
 
2217
        <tr>
 
2218
          <td class="md" nowrap valign="top"> unsigned FLAC__stream_encoder_get_max_lpc_order </td>
 
2219
          <td class="md" valign="top">(&nbsp;</td>
 
2220
          <td class="md" nowrap valign="top">const <a class="el" href="structFLAC____StreamEncoder.html">FLAC__StreamEncoder</a> *&nbsp;</td>
 
2221
          <td class="mdname1" valign="top" nowrap>&nbsp; <em>encoder</em>          </td>
 
2222
          <td class="md" valign="top">)&nbsp;</td>
 
2223
          <td class="md" nowrap></td>
 
2224
        </tr>
 
2225
 
 
2226
      </table>
 
2227
    </td>
 
2228
  </tr>
 
2229
</table>
 
2230
<table cellspacing=5 cellpadding=0 border=0>
 
2231
  <tr>
 
2232
    <td>
 
2233
      &nbsp;
 
2234
    </td>
 
2235
    <td>
 
2236
 
 
2237
<p>
 
2238
Get the maximum LPC order setting.<dl compact><dt><b>
 
2239
Parameters: </b><dd>
 
2240
<table border=0 cellspacing=2 cellpadding=0>
 
2241
<tr><td valign=top><em>encoder</em>&nbsp;</td><td>
 
2242
An encoder instance to query. </td></tr>
 
2243
</table>
 
2244
</dl><dl compact><dt><b>
 
2245
Assertions:</b><dd>
 
2246
 <div class="fragment"><pre>encoder != NULL 
 
2247
</pre></div> </dl><dl compact><dt><b>
 
2248
Return values: </b><dd>
 
2249
<table border=0 cellspacing=2 cellpadding=0>
 
2250
<tr><td valign=top><em>unsigned</em>&nbsp;</td><td>
 
2251
See <a class="el" href="group__flac__stream__encoder.html#a14">FLAC__stream_encoder_set_max_lpc_order</a>(). </td></tr>
 
2252
</table>
 
2253
</dl>    </td>
 
2254
  </tr>
 
2255
</table>
 
2256
<a name="a40" doxytag="stream_encoder.h::FLAC__stream_encoder_get_qlp_coeff_precision"></a><p>
 
2257
<table width="100%" cellpadding="2" cellspacing="0" border="0">
 
2258
  <tr>
 
2259
    <td class="md">
 
2260
      <table cellpadding="0" cellspacing="0" border="0">
 
2261
        <tr>
 
2262
          <td class="md" nowrap valign="top"> unsigned FLAC__stream_encoder_get_qlp_coeff_precision </td>
 
2263
          <td class="md" valign="top">(&nbsp;</td>
 
2264
          <td class="md" nowrap valign="top">const <a class="el" href="structFLAC____StreamEncoder.html">FLAC__StreamEncoder</a> *&nbsp;</td>
 
2265
          <td class="mdname1" valign="top" nowrap>&nbsp; <em>encoder</em>          </td>
 
2266
          <td class="md" valign="top">)&nbsp;</td>
 
2267
          <td class="md" nowrap></td>
 
2268
        </tr>
 
2269
 
 
2270
      </table>
 
2271
    </td>
 
2272
  </tr>
 
2273
</table>
 
2274
<table cellspacing=5 cellpadding=0 border=0>
 
2275
  <tr>
 
2276
    <td>
 
2277
      &nbsp;
 
2278
    </td>
 
2279
    <td>
 
2280
 
 
2281
<p>
 
2282
Get the quantized linear predictor coefficient precision setting.<dl compact><dt><b>
 
2283
Parameters: </b><dd>
 
2284
<table border=0 cellspacing=2 cellpadding=0>
 
2285
<tr><td valign=top><em>encoder</em>&nbsp;</td><td>
 
2286
An encoder instance to query. </td></tr>
 
2287
</table>
 
2288
</dl><dl compact><dt><b>
 
2289
Assertions:</b><dd>
 
2290
 <div class="fragment"><pre>encoder != NULL 
 
2291
</pre></div> </dl><dl compact><dt><b>
 
2292
Return values: </b><dd>
 
2293
<table border=0 cellspacing=2 cellpadding=0>
 
2294
<tr><td valign=top><em>unsigned</em>&nbsp;</td><td>
 
2295
See <a class="el" href="group__flac__stream__encoder.html#a15">FLAC__stream_encoder_set_qlp_coeff_precision</a>(). </td></tr>
 
2296
</table>
 
2297
</dl>    </td>
 
2298
  </tr>
 
2299
</table>
 
2300
<a name="a41" doxytag="stream_encoder.h::FLAC__stream_encoder_get_do_qlp_coeff_prec_search"></a><p>
 
2301
<table width="100%" cellpadding="2" cellspacing="0" border="0">
 
2302
  <tr>
 
2303
    <td class="md">
 
2304
      <table cellpadding="0" cellspacing="0" border="0">
 
2305
        <tr>
 
2306
          <td class="md" nowrap valign="top"> FLAC__bool FLAC__stream_encoder_get_do_qlp_coeff_prec_search </td>
 
2307
          <td class="md" valign="top">(&nbsp;</td>
 
2308
          <td class="md" nowrap valign="top">const <a class="el" href="structFLAC____StreamEncoder.html">FLAC__StreamEncoder</a> *&nbsp;</td>
 
2309
          <td class="mdname1" valign="top" nowrap>&nbsp; <em>encoder</em>          </td>
 
2310
          <td class="md" valign="top">)&nbsp;</td>
 
2311
          <td class="md" nowrap></td>
 
2312
        </tr>
 
2313
 
 
2314
      </table>
 
2315
    </td>
 
2316
  </tr>
 
2317
</table>
 
2318
<table cellspacing=5 cellpadding=0 border=0>
 
2319
  <tr>
 
2320
    <td>
 
2321
      &nbsp;
 
2322
    </td>
 
2323
    <td>
 
2324
 
 
2325
<p>
 
2326
Get the qlp coefficient precision search flag.<dl compact><dt><b>
 
2327
Parameters: </b><dd>
 
2328
<table border=0 cellspacing=2 cellpadding=0>
 
2329
<tr><td valign=top><em>encoder</em>&nbsp;</td><td>
 
2330
An encoder instance to query. </td></tr>
 
2331
</table>
 
2332
</dl><dl compact><dt><b>
 
2333
Assertions:</b><dd>
 
2334
 <div class="fragment"><pre>encoder != NULL 
 
2335
</pre></div> </dl><dl compact><dt><b>
 
2336
Return values: </b><dd>
 
2337
<table border=0 cellspacing=2 cellpadding=0>
 
2338
<tr><td valign=top><em>FLAC__bool</em>&nbsp;</td><td>
 
2339
See <a class="el" href="group__flac__stream__encoder.html#a16">FLAC__stream_encoder_set_do_qlp_coeff_prec_search</a>(). </td></tr>
 
2340
</table>
 
2341
</dl>    </td>
 
2342
  </tr>
 
2343
</table>
 
2344
<a name="a42" doxytag="stream_encoder.h::FLAC__stream_encoder_get_do_escape_coding"></a><p>
 
2345
<table width="100%" cellpadding="2" cellspacing="0" border="0">
 
2346
  <tr>
 
2347
    <td class="md">
 
2348
      <table cellpadding="0" cellspacing="0" border="0">
 
2349
        <tr>
 
2350
          <td class="md" nowrap valign="top"> FLAC__bool FLAC__stream_encoder_get_do_escape_coding </td>
 
2351
          <td class="md" valign="top">(&nbsp;</td>
 
2352
          <td class="md" nowrap valign="top">const <a class="el" href="structFLAC____StreamEncoder.html">FLAC__StreamEncoder</a> *&nbsp;</td>
 
2353
          <td class="mdname1" valign="top" nowrap>&nbsp; <em>encoder</em>          </td>
 
2354
          <td class="md" valign="top">)&nbsp;</td>
 
2355
          <td class="md" nowrap></td>
 
2356
        </tr>
 
2357
 
 
2358
      </table>
 
2359
    </td>
 
2360
  </tr>
 
2361
</table>
 
2362
<table cellspacing=5 cellpadding=0 border=0>
 
2363
  <tr>
 
2364
    <td>
 
2365
      &nbsp;
 
2366
    </td>
 
2367
    <td>
 
2368
 
 
2369
<p>
 
2370
Get the "escape coding" flag.<dl compact><dt><b>
 
2371
Parameters: </b><dd>
 
2372
<table border=0 cellspacing=2 cellpadding=0>
 
2373
<tr><td valign=top><em>encoder</em>&nbsp;</td><td>
 
2374
An encoder instance to query. </td></tr>
 
2375
</table>
 
2376
</dl><dl compact><dt><b>
 
2377
Assertions:</b><dd>
 
2378
 <div class="fragment"><pre>encoder != NULL 
 
2379
</pre></div> </dl><dl compact><dt><b>
 
2380
Return values: </b><dd>
 
2381
<table border=0 cellspacing=2 cellpadding=0>
 
2382
<tr><td valign=top><em>FLAC__bool</em>&nbsp;</td><td>
 
2383
See <a class="el" href="group__flac__stream__encoder.html#a17">FLAC__stream_encoder_set_do_escape_coding</a>(). </td></tr>
 
2384
</table>
 
2385
</dl>    </td>
 
2386
  </tr>
 
2387
</table>
 
2388
<a name="a43" doxytag="stream_encoder.h::FLAC__stream_encoder_get_do_exhaustive_model_search"></a><p>
 
2389
<table width="100%" cellpadding="2" cellspacing="0" border="0">
 
2390
  <tr>
 
2391
    <td class="md">
 
2392
      <table cellpadding="0" cellspacing="0" border="0">
 
2393
        <tr>
 
2394
          <td class="md" nowrap valign="top"> FLAC__bool FLAC__stream_encoder_get_do_exhaustive_model_search </td>
 
2395
          <td class="md" valign="top">(&nbsp;</td>
 
2396
          <td class="md" nowrap valign="top">const <a class="el" href="structFLAC____StreamEncoder.html">FLAC__StreamEncoder</a> *&nbsp;</td>
 
2397
          <td class="mdname1" valign="top" nowrap>&nbsp; <em>encoder</em>          </td>
 
2398
          <td class="md" valign="top">)&nbsp;</td>
 
2399
          <td class="md" nowrap></td>
 
2400
        </tr>
 
2401
 
 
2402
      </table>
 
2403
    </td>
 
2404
  </tr>
 
2405
</table>
 
2406
<table cellspacing=5 cellpadding=0 border=0>
 
2407
  <tr>
 
2408
    <td>
 
2409
      &nbsp;
 
2410
    </td>
 
2411
    <td>
 
2412
 
 
2413
<p>
 
2414
Get the exhaustive model search flag.<dl compact><dt><b>
 
2415
Parameters: </b><dd>
 
2416
<table border=0 cellspacing=2 cellpadding=0>
 
2417
<tr><td valign=top><em>encoder</em>&nbsp;</td><td>
 
2418
An encoder instance to query. </td></tr>
 
2419
</table>
 
2420
</dl><dl compact><dt><b>
 
2421
Assertions:</b><dd>
 
2422
 <div class="fragment"><pre>encoder != NULL 
 
2423
</pre></div> </dl><dl compact><dt><b>
 
2424
Return values: </b><dd>
 
2425
<table border=0 cellspacing=2 cellpadding=0>
 
2426
<tr><td valign=top><em>FLAC__bool</em>&nbsp;</td><td>
 
2427
See <a class="el" href="group__flac__stream__encoder.html#a18">FLAC__stream_encoder_set_do_exhaustive_model_search</a>(). </td></tr>
 
2428
</table>
 
2429
</dl>    </td>
 
2430
  </tr>
 
2431
</table>
 
2432
<a name="a44" doxytag="stream_encoder.h::FLAC__stream_encoder_get_min_residual_partition_order"></a><p>
 
2433
<table width="100%" cellpadding="2" cellspacing="0" border="0">
 
2434
  <tr>
 
2435
    <td class="md">
 
2436
      <table cellpadding="0" cellspacing="0" border="0">
 
2437
        <tr>
 
2438
          <td class="md" nowrap valign="top"> unsigned FLAC__stream_encoder_get_min_residual_partition_order </td>
 
2439
          <td class="md" valign="top">(&nbsp;</td>
 
2440
          <td class="md" nowrap valign="top">const <a class="el" href="structFLAC____StreamEncoder.html">FLAC__StreamEncoder</a> *&nbsp;</td>
 
2441
          <td class="mdname1" valign="top" nowrap>&nbsp; <em>encoder</em>          </td>
 
2442
          <td class="md" valign="top">)&nbsp;</td>
 
2443
          <td class="md" nowrap></td>
 
2444
        </tr>
 
2445
 
 
2446
      </table>
 
2447
    </td>
 
2448
  </tr>
 
2449
</table>
 
2450
<table cellspacing=5 cellpadding=0 border=0>
 
2451
  <tr>
 
2452
    <td>
 
2453
      &nbsp;
 
2454
    </td>
 
2455
    <td>
 
2456
 
 
2457
<p>
 
2458
Get the minimum residual partition order setting.<dl compact><dt><b>
 
2459
Parameters: </b><dd>
 
2460
<table border=0 cellspacing=2 cellpadding=0>
 
2461
<tr><td valign=top><em>encoder</em>&nbsp;</td><td>
 
2462
An encoder instance to query. </td></tr>
 
2463
</table>
 
2464
</dl><dl compact><dt><b>
 
2465
Assertions:</b><dd>
 
2466
 <div class="fragment"><pre>encoder != NULL 
 
2467
</pre></div> </dl><dl compact><dt><b>
 
2468
Return values: </b><dd>
 
2469
<table border=0 cellspacing=2 cellpadding=0>
 
2470
<tr><td valign=top><em>unsigned</em>&nbsp;</td><td>
 
2471
See <a class="el" href="group__flac__stream__encoder.html#a19">FLAC__stream_encoder_set_min_residual_partition_order</a>(). </td></tr>
 
2472
</table>
 
2473
</dl>    </td>
 
2474
  </tr>
 
2475
</table>
 
2476
<a name="a45" doxytag="stream_encoder.h::FLAC__stream_encoder_get_max_residual_partition_order"></a><p>
 
2477
<table width="100%" cellpadding="2" cellspacing="0" border="0">
 
2478
  <tr>
 
2479
    <td class="md">
 
2480
      <table cellpadding="0" cellspacing="0" border="0">
 
2481
        <tr>
 
2482
          <td class="md" nowrap valign="top"> unsigned FLAC__stream_encoder_get_max_residual_partition_order </td>
 
2483
          <td class="md" valign="top">(&nbsp;</td>
 
2484
          <td class="md" nowrap valign="top">const <a class="el" href="structFLAC____StreamEncoder.html">FLAC__StreamEncoder</a> *&nbsp;</td>
 
2485
          <td class="mdname1" valign="top" nowrap>&nbsp; <em>encoder</em>          </td>
 
2486
          <td class="md" valign="top">)&nbsp;</td>
 
2487
          <td class="md" nowrap></td>
 
2488
        </tr>
 
2489
 
 
2490
      </table>
 
2491
    </td>
 
2492
  </tr>
 
2493
</table>
 
2494
<table cellspacing=5 cellpadding=0 border=0>
 
2495
  <tr>
 
2496
    <td>
 
2497
      &nbsp;
 
2498
    </td>
 
2499
    <td>
 
2500
 
 
2501
<p>
 
2502
Get maximum residual partition order setting.<dl compact><dt><b>
 
2503
Parameters: </b><dd>
 
2504
<table border=0 cellspacing=2 cellpadding=0>
 
2505
<tr><td valign=top><em>encoder</em>&nbsp;</td><td>
 
2506
An encoder instance to query. </td></tr>
 
2507
</table>
 
2508
</dl><dl compact><dt><b>
 
2509
Assertions:</b><dd>
 
2510
 <div class="fragment"><pre>encoder != NULL 
 
2511
</pre></div> </dl><dl compact><dt><b>
 
2512
Return values: </b><dd>
 
2513
<table border=0 cellspacing=2 cellpadding=0>
 
2514
<tr><td valign=top><em>unsigned</em>&nbsp;</td><td>
 
2515
See <a class="el" href="group__flac__stream__encoder.html#a20">FLAC__stream_encoder_set_max_residual_partition_order</a>(). </td></tr>
 
2516
</table>
 
2517
</dl>    </td>
 
2518
  </tr>
 
2519
</table>
 
2520
<a name="a46" doxytag="stream_encoder.h::FLAC__stream_encoder_get_rice_parameter_search_dist"></a><p>
 
2521
<table width="100%" cellpadding="2" cellspacing="0" border="0">
 
2522
  <tr>
 
2523
    <td class="md">
 
2524
      <table cellpadding="0" cellspacing="0" border="0">
 
2525
        <tr>
 
2526
          <td class="md" nowrap valign="top"> unsigned FLAC__stream_encoder_get_rice_parameter_search_dist </td>
 
2527
          <td class="md" valign="top">(&nbsp;</td>
 
2528
          <td class="md" nowrap valign="top">const <a class="el" href="structFLAC____StreamEncoder.html">FLAC__StreamEncoder</a> *&nbsp;</td>
 
2529
          <td class="mdname1" valign="top" nowrap>&nbsp; <em>encoder</em>          </td>
 
2530
          <td class="md" valign="top">)&nbsp;</td>
 
2531
          <td class="md" nowrap></td>
 
2532
        </tr>
 
2533
 
 
2534
      </table>
 
2535
    </td>
 
2536
  </tr>
 
2537
</table>
 
2538
<table cellspacing=5 cellpadding=0 border=0>
 
2539
  <tr>
 
2540
    <td>
 
2541
      &nbsp;
 
2542
    </td>
 
2543
    <td>
 
2544
 
 
2545
<p>
 
2546
Get the Rice parameter search distance setting.<dl compact><dt><b>
 
2547
Parameters: </b><dd>
 
2548
<table border=0 cellspacing=2 cellpadding=0>
 
2549
<tr><td valign=top><em>encoder</em>&nbsp;</td><td>
 
2550
An encoder instance to query. </td></tr>
 
2551
</table>
 
2552
</dl><dl compact><dt><b>
 
2553
Assertions:</b><dd>
 
2554
 <div class="fragment"><pre>encoder != NULL 
 
2555
</pre></div> </dl><dl compact><dt><b>
 
2556
Return values: </b><dd>
 
2557
<table border=0 cellspacing=2 cellpadding=0>
 
2558
<tr><td valign=top><em>unsigned</em>&nbsp;</td><td>
 
2559
See <a class="el" href="group__flac__stream__encoder.html#a21">FLAC__stream_encoder_set_rice_parameter_search_dist</a>(). </td></tr>
 
2560
</table>
 
2561
</dl>    </td>
 
2562
  </tr>
 
2563
</table>
 
2564
<a name="a47" doxytag="stream_encoder.h::FLAC__stream_encoder_get_total_samples_estimate"></a><p>
 
2565
<table width="100%" cellpadding="2" cellspacing="0" border="0">
 
2566
  <tr>
 
2567
    <td class="md">
 
2568
      <table cellpadding="0" cellspacing="0" border="0">
 
2569
        <tr>
 
2570
          <td class="md" nowrap valign="top"> FLAC__uint64 FLAC__stream_encoder_get_total_samples_estimate </td>
 
2571
          <td class="md" valign="top">(&nbsp;</td>
 
2572
          <td class="md" nowrap valign="top">const <a class="el" href="structFLAC____StreamEncoder.html">FLAC__StreamEncoder</a> *&nbsp;</td>
 
2573
          <td class="mdname1" valign="top" nowrap>&nbsp; <em>encoder</em>          </td>
 
2574
          <td class="md" valign="top">)&nbsp;</td>
 
2575
          <td class="md" nowrap></td>
 
2576
        </tr>
 
2577
 
 
2578
      </table>
 
2579
    </td>
 
2580
  </tr>
 
2581
</table>
 
2582
<table cellspacing=5 cellpadding=0 border=0>
 
2583
  <tr>
 
2584
    <td>
 
2585
      &nbsp;
 
2586
    </td>
 
2587
    <td>
 
2588
 
 
2589
<p>
 
2590
Get the previously set estimate of the total samples to be encoded. The encoder merely mimics back the value given to <a class="el" href="group__flac__stream__encoder.html#a22">FLAC__stream_encoder_set_total_samples_estimate</a>() since it has no other way of knowing how many samples the user will encode.<dl compact><dt><b>
 
2591
Parameters: </b><dd>
 
2592
<table border=0 cellspacing=2 cellpadding=0>
 
2593
<tr><td valign=top><em>encoder</em>&nbsp;</td><td>
 
2594
An encoder instance to set. </td></tr>
 
2595
</table>
 
2596
</dl><dl compact><dt><b>
 
2597
Assertions:</b><dd>
 
2598
 <div class="fragment"><pre>encoder != NULL 
 
2599
</pre></div> </dl><dl compact><dt><b>
 
2600
Return values: </b><dd>
 
2601
<table border=0 cellspacing=2 cellpadding=0>
 
2602
<tr><td valign=top><em>FLAC__uint64</em>&nbsp;</td><td>
 
2603
See <a class="el" href="group__flac__stream__encoder.html#a47">FLAC__stream_encoder_get_total_samples_estimate</a>(). </td></tr>
 
2604
</table>
 
2605
</dl>    </td>
 
2606
  </tr>
 
2607
</table>
 
2608
<a name="a48" doxytag="stream_encoder.h::FLAC__stream_encoder_init"></a><p>
 
2609
<table width="100%" cellpadding="2" cellspacing="0" border="0">
 
2610
  <tr>
 
2611
    <td class="md">
 
2612
      <table cellpadding="0" cellspacing="0" border="0">
 
2613
        <tr>
 
2614
          <td class="md" nowrap valign="top"> <a class="el" href="group__flac__stream__encoder.html#a52">FLAC__StreamEncoderState</a> FLAC__stream_encoder_init </td>
 
2615
          <td class="md" valign="top">(&nbsp;</td>
 
2616
          <td class="md" nowrap valign="top"><a class="el" href="structFLAC____StreamEncoder.html">FLAC__StreamEncoder</a> *&nbsp;</td>
 
2617
          <td class="mdname1" valign="top" nowrap>&nbsp; <em>encoder</em>          </td>
 
2618
          <td class="md" valign="top">)&nbsp;</td>
 
2619
          <td class="md" nowrap></td>
 
2620
        </tr>
 
2621
 
 
2622
      </table>
 
2623
    </td>
 
2624
  </tr>
 
2625
</table>
 
2626
<table cellspacing=5 cellpadding=0 border=0>
 
2627
  <tr>
 
2628
    <td>
 
2629
      &nbsp;
 
2630
    </td>
 
2631
    <td>
 
2632
 
 
2633
<p>
 
2634
Initialize the encoder instance. Should be called after <a class="el" href="group__flac__stream__encoder.html#a4">FLAC__stream_encoder_new</a>() and FLAC__stream_encoder_set_*() but before <a class="el" href="group__flac__stream__encoder.html#a50">FLAC__stream_encoder_process</a>() or <a class="el" href="group__flac__stream__encoder.html#a51">FLAC__stream_encoder_process_interleaved</a>(). Will set and return the encoder state, which will be FLAC__STREAM_ENCODER_OK if initialization succeeded.
 
2635
<p>
 
2636
The call to <a class="el" href="group__flac__stream__encoder.html#a48">FLAC__stream_encoder_init</a>() currently will also immediately call the write callback several times, once with the <code>fLaC</code> signature, and once for each encoded metadata block.<dl compact><dt><b>
 
2637
Parameters: </b><dd>
 
2638
<table border=0 cellspacing=2 cellpadding=0>
 
2639
<tr><td valign=top><em>encoder</em>&nbsp;</td><td>
 
2640
An uninitialized encoder instance. </td></tr>
 
2641
</table>
 
2642
</dl><dl compact><dt><b>
 
2643
Assertions:</b><dd>
 
2644
 <div class="fragment"><pre>encoder != NULL 
 
2645
</pre></div> </dl><dl compact><dt><b>
 
2646
Return values: </b><dd>
 
2647
<table border=0 cellspacing=2 cellpadding=0>
 
2648
<tr><td valign=top><em>FLAC__StreamEncoderState</em>&nbsp;</td><td>
 
2649
<code>FLAC__STREAM_ENCODER_OK</code> if initialization was successful; see FLAC__StreamEncoderState for the meanings of other return values. </td></tr>
 
2650
</table>
 
2651
</dl>    </td>
 
2652
  </tr>
 
2653
</table>
 
2654
<a name="a49" doxytag="stream_encoder.h::FLAC__stream_encoder_finish"></a><p>
 
2655
<table width="100%" cellpadding="2" cellspacing="0" border="0">
 
2656
  <tr>
 
2657
    <td class="md">
 
2658
      <table cellpadding="0" cellspacing="0" border="0">
 
2659
        <tr>
 
2660
          <td class="md" nowrap valign="top"> void FLAC__stream_encoder_finish </td>
 
2661
          <td class="md" valign="top">(&nbsp;</td>
 
2662
          <td class="md" nowrap valign="top"><a class="el" href="structFLAC____StreamEncoder.html">FLAC__StreamEncoder</a> *&nbsp;</td>
 
2663
          <td class="mdname1" valign="top" nowrap>&nbsp; <em>encoder</em>          </td>
 
2664
          <td class="md" valign="top">)&nbsp;</td>
 
2665
          <td class="md" nowrap></td>
 
2666
        </tr>
 
2667
 
 
2668
      </table>
 
2669
    </td>
 
2670
  </tr>
 
2671
</table>
 
2672
<table cellspacing=5 cellpadding=0 border=0>
 
2673
  <tr>
 
2674
    <td>
 
2675
      &nbsp;
 
2676
    </td>
 
2677
    <td>
 
2678
 
 
2679
<p>
 
2680
Finish the encoding process. Flushes the encoding buffer, releases resources, resets the encoder settings to their defaults, and returns the encoder state to FLAC__STREAM_ENCODER_UNINITIALIZED. Note that this can generate one or more write callbacks before returning, and will generate a metadata callback.
 
2681
<p>
 
2682
In the event of a prematurely-terminated encode, it is not strictly necessary to call this immediately before <a class="el" href="group__flac__stream__encoder.html#a5">FLAC__stream_encoder_delete</a>() but it is good practice to match every <a class="el" href="group__flac__stream__encoder.html#a48">FLAC__stream_encoder_init</a>() with a <a class="el" href="group__flac__stream__encoder.html#a49">FLAC__stream_encoder_finish</a>().<dl compact><dt><b>
 
2683
Parameters: </b><dd>
 
2684
<table border=0 cellspacing=2 cellpadding=0>
 
2685
<tr><td valign=top><em>encoder</em>&nbsp;</td><td>
 
2686
An uninitialized encoder instance. </td></tr>
 
2687
</table>
 
2688
</dl><dl compact><dt><b>
 
2689
Assertions:</b><dd>
 
2690
 <div class="fragment"><pre>encoder != NULL 
 
2691
</pre></div> </dl>    </td>
 
2692
  </tr>
 
2693
</table>
 
2694
<a name="a50" doxytag="stream_encoder.h::FLAC__stream_encoder_process"></a><p>
 
2695
<table width="100%" cellpadding="2" cellspacing="0" border="0">
 
2696
  <tr>
 
2697
    <td class="md">
 
2698
      <table cellpadding="0" cellspacing="0" border="0">
 
2699
        <tr>
 
2700
          <td class="md" nowrap valign="top"> FLAC__bool FLAC__stream_encoder_process </td>
 
2701
          <td class="md" valign="top">(&nbsp;</td>
 
2702
          <td class="md" nowrap valign="top"><a class="el" href="structFLAC____StreamEncoder.html">FLAC__StreamEncoder</a> *&nbsp;</td>
 
2703
          <td class="mdname" nowrap>&nbsp; <em>encoder</em>, </td>
 
2704
        </tr>
 
2705
        <tr>
 
2706
          <td></td>
 
2707
          <td></td>
 
2708
          <td class="md" nowrap>const FLAC__int32 *const&nbsp;</td>
 
2709
          <td class="mdname" nowrap>&nbsp; <em>buffer</em>[], </td>
 
2710
        </tr>
 
2711
        <tr>
 
2712
          <td></td>
 
2713
          <td></td>
 
2714
          <td class="md" nowrap>unsigned&nbsp;</td>
 
2715
          <td class="mdname" nowrap>&nbsp; <em>samples</em></td>
 
2716
        </tr>
 
2717
        <tr>
 
2718
          <td></td>
 
2719
          <td class="md">)&nbsp;</td>
 
2720
          <td class="md" colspan="2"></td>
 
2721
        </tr>
 
2722
 
 
2723
      </table>
 
2724
    </td>
 
2725
  </tr>
 
2726
</table>
 
2727
<table cellspacing=5 cellpadding=0 border=0>
 
2728
  <tr>
 
2729
    <td>
 
2730
      &nbsp;
 
2731
    </td>
 
2732
    <td>
 
2733
 
 
2734
<p>
 
2735
Submit data for encoding. This version allows you to supply the input data via an array of pointers, each pointer pointing to an array of <em>samples</em> samples representing one channel. The samples need not be block-aligned, but each channel should have the same number of samples.<dl compact><dt><b>
 
2736
Parameters: </b><dd>
 
2737
<table border=0 cellspacing=2 cellpadding=0>
 
2738
<tr><td valign=top><em>encoder</em>&nbsp;</td><td>
 
2739
An initialized encoder instance in the OK state. </td></tr>
 
2740
<tr><td valign=top><em>buffer</em>&nbsp;</td><td>
 
2741
An array of pointers to each channel's signal. </td></tr>
 
2742
<tr><td valign=top><em>samples</em>&nbsp;</td><td>
 
2743
The number of samples in one channel. </td></tr>
 
2744
</table>
 
2745
</dl><dl compact><dt><b>
 
2746
Assertions:</b><dd>
 
2747
 <div class="fragment"><pre>encoder != NULL 
 
2748
</pre></div> <div class="fragment"><pre><a class="code" href="FLAC_2stream__encoder_8h.html#a27">FLAC__stream_encoder_get_state</a>(encoder) == <a class="code" href="FLAC_2stream__encoder_8h.html#a52a4">FLAC__STREAM_ENCODER_OK</a> 
 
2749
</pre></div> </dl><dl compact><dt><b>
 
2750
Return values: </b><dd>
 
2751
<table border=0 cellspacing=2 cellpadding=0>
 
2752
<tr><td valign=top><em>FLAC__bool</em>&nbsp;</td><td>
 
2753
<code>true</code> if successful, else <code>false</code>; in this case, check the encoder state with <a class="el" href="group__flac__stream__encoder.html#a27">FLAC__stream_encoder_get_state</a>() to see what went wrong. </td></tr>
 
2754
</table>
 
2755
</dl>    </td>
 
2756
  </tr>
 
2757
</table>
 
2758
<a name="a51" doxytag="stream_encoder.h::FLAC__stream_encoder_process_interleaved"></a><p>
 
2759
<table width="100%" cellpadding="2" cellspacing="0" border="0">
 
2760
  <tr>
 
2761
    <td class="md">
 
2762
      <table cellpadding="0" cellspacing="0" border="0">
 
2763
        <tr>
 
2764
          <td class="md" nowrap valign="top"> FLAC__bool FLAC__stream_encoder_process_interleaved </td>
 
2765
          <td class="md" valign="top">(&nbsp;</td>
 
2766
          <td class="md" nowrap valign="top"><a class="el" href="structFLAC____StreamEncoder.html">FLAC__StreamEncoder</a> *&nbsp;</td>
 
2767
          <td class="mdname" nowrap>&nbsp; <em>encoder</em>, </td>
 
2768
        </tr>
 
2769
        <tr>
 
2770
          <td></td>
 
2771
          <td></td>
 
2772
          <td class="md" nowrap>const FLAC__int32&nbsp;</td>
 
2773
          <td class="mdname" nowrap>&nbsp; <em>buffer</em>[], </td>
 
2774
        </tr>
 
2775
        <tr>
 
2776
          <td></td>
 
2777
          <td></td>
 
2778
          <td class="md" nowrap>unsigned&nbsp;</td>
 
2779
          <td class="mdname" nowrap>&nbsp; <em>samples</em></td>
 
2780
        </tr>
 
2781
        <tr>
 
2782
          <td></td>
 
2783
          <td class="md">)&nbsp;</td>
 
2784
          <td class="md" colspan="2"></td>
 
2785
        </tr>
 
2786
 
 
2787
      </table>
 
2788
    </td>
 
2789
  </tr>
 
2790
</table>
 
2791
<table cellspacing=5 cellpadding=0 border=0>
 
2792
  <tr>
 
2793
    <td>
 
2794
      &nbsp;
 
2795
    </td>
 
2796
    <td>
 
2797
 
 
2798
<p>
 
2799
Submit data for encoding. This version allows you to supply the input data where the channels are interleaved into a single array (i.e. channel0_sample0, channel1_sample0, ... , channelN_sample0, channel0_sample1, ...). The samples need not be block-aligned but they must be sample-aligned, i.e. the first value should be channel0_sample0 and the last value channelN_sampleM.<dl compact><dt><b>
 
2800
Parameters: </b><dd>
 
2801
<table border=0 cellspacing=2 cellpadding=0>
 
2802
<tr><td valign=top><em>encoder</em>&nbsp;</td><td>
 
2803
An initialized encoder instance in the OK state. </td></tr>
 
2804
<tr><td valign=top><em>buffer</em>&nbsp;</td><td>
 
2805
An array of channel-interleaved data (see above). </td></tr>
 
2806
<tr><td valign=top><em>samples</em>&nbsp;</td><td>
 
2807
The number of samples in one channel, the same as for <a class="el" href="group__flac__stream__encoder.html#a50">FLAC__stream_encoder_process</a>(). For example, if encoding two channels, <code>1000</code> <em>samples</em> corresponds to a <em>buffer</em> of 2000 values. </td></tr>
 
2808
</table>
 
2809
</dl><dl compact><dt><b>
 
2810
Assertions:</b><dd>
 
2811
 <div class="fragment"><pre>encoder != NULL 
 
2812
</pre></div> <div class="fragment"><pre><a class="code" href="FLAC_2stream__encoder_8h.html#a27">FLAC__stream_encoder_get_state</a>(encoder) == <a class="code" href="FLAC_2stream__encoder_8h.html#a52a4">FLAC__STREAM_ENCODER_OK</a> 
 
2813
</pre></div> </dl><dl compact><dt><b>
 
2814
Return values: </b><dd>
 
2815
<table border=0 cellspacing=2 cellpadding=0>
 
2816
<tr><td valign=top><em>FLAC__bool</em>&nbsp;</td><td>
 
2817
<code>true</code> if successful, else <code>false</code>; in this case, check the encoder state with <a class="el" href="group__flac__stream__encoder.html#a27">FLAC__stream_encoder_get_state</a>() to see what went wrong. </td></tr>
 
2818
</table>
 
2819
</dl>    </td>
 
2820
  </tr>
 
2821
</table>
 
2822
<hr><h2>Variable Documentation</h2>
 
2823
<a name="a0" doxytag="stream_encoder.h::FLAC__StreamEncoderStateString"></a><p>
 
2824
<table width="100%" cellpadding="2" cellspacing="0" border="0">
 
2825
  <tr>
 
2826
    <td class="md">
 
2827
      <table cellpadding="0" cellspacing="0" border="0">
 
2828
        <tr>
 
2829
          <td class="md" nowrap valign="top"> const char* const FLAC__StreamEncoderStateString[]
 
2830
      </table>
 
2831
    </td>
 
2832
  </tr>
 
2833
</table>
 
2834
<table cellspacing=5 cellpadding=0 border=0>
 
2835
  <tr>
 
2836
    <td>
 
2837
      &nbsp;
 
2838
    </td>
 
2839
    <td>
 
2840
 
 
2841
<p>
 
2842
Maps a FLAC__StreamEncoderState to a C string.
 
2843
<p>
 
2844
Using a FLAC__StreamEncoderState as the index to this array will give the string equivalent. The contents should not be modified.     </td>
 
2845
  </tr>
 
2846
</table>
 
2847
<a name="a1" doxytag="stream_encoder.h::FLAC__StreamEncoderWriteStatusString"></a><p>
 
2848
<table width="100%" cellpadding="2" cellspacing="0" border="0">
 
2849
  <tr>
 
2850
    <td class="md">
 
2851
      <table cellpadding="0" cellspacing="0" border="0">
 
2852
        <tr>
 
2853
          <td class="md" nowrap valign="top"> const char* const FLAC__StreamEncoderWriteStatusString[]
 
2854
      </table>
 
2855
    </td>
 
2856
  </tr>
 
2857
</table>
 
2858
<table cellspacing=5 cellpadding=0 border=0>
 
2859
  <tr>
 
2860
    <td>
 
2861
      &nbsp;
 
2862
    </td>
 
2863
    <td>
 
2864
 
 
2865
<p>
 
2866
Maps a FLAC__StreamEncoderWriteStatus to a C string.
 
2867
<p>
 
2868
Using a FLAC__StreamEncoderWriteStatus as the index to this array will give the string equivalent. The contents should not be modified.     </td>
 
2869
  </tr>
 
2870
</table>
 
2871
<hr><address><small>Generated on Sat Jan 25 10:44:57 2003 for FLAC by
 
2872
<a href="http://www.doxygen.org/index.html">
 
2873
<img src="doxygen.gif" alt="doxygen" align="middle" border=0 
 
2874
width=110 height=53></a>1.2.14 written by <a href="mailto:dimitri@stack.nl">Dimitri van Heesch</a>,
 
2875
 &copy;&nbsp;1997-2002</small></address>
 
2876
</body>
 
2877
</html>