cannam@85
|
1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
|
cannam@85
|
2 <HTML>
|
cannam@85
|
3
|
cannam@85
|
4 <HEAD>
|
cannam@85
|
5 <TITLE>
|
cannam@85
|
6 Secret Rabbit Code (aka libsamplerate)
|
cannam@85
|
7 </TITLE>
|
cannam@85
|
8 <META NAME="Author" CONTENT="Erik de Castro Lopo (erikd AT mega-nerd DOT com)">
|
cannam@85
|
9 <META NAME="Version" CONTENT="libsamplerate-0.1.8">
|
cannam@85
|
10 <META NAME="Description" CONTENT="The Secret Rabbit Code Home Page">
|
cannam@85
|
11 <META NAME="Keywords" CONTENT="libsamplerate sound resample audio dsp Linux">
|
cannam@85
|
12 <LINK REL=StyleSheet HREF="SRC.css" TYPE="text/css" MEDIA="all">
|
cannam@85
|
13 </HEAD>
|
cannam@85
|
14
|
cannam@85
|
15 <BODY TEXT="#FFFFFF" BGCOLOR="#000000" LINK="#FB1465" VLINK="#FB1465" ALINK="#FB1465">
|
cannam@85
|
16 <!-- pepper -->
|
cannam@85
|
17 <CENTER>
|
cannam@85
|
18 <IMG SRC="SRC.png" HEIGHT=100 WIDTH=760 ALT="SRC.png">
|
cannam@85
|
19 </CENTER>
|
cannam@85
|
20 <!-- pepper -->
|
cannam@85
|
21 <BR>
|
cannam@85
|
22 <!-- pepper -->
|
cannam@85
|
23 <TABLE ALIGN="center" WIDTH="98%">
|
cannam@85
|
24 <TR>
|
cannam@85
|
25 <TD VALIGN="top">
|
cannam@85
|
26 <BR>
|
cannam@85
|
27 <DIV CLASS="nav">
|
cannam@85
|
28 <BR>
|
cannam@85
|
29 <A HREF="index.html">Home</A><BR>
|
cannam@85
|
30 <A HREF="license.html">License</A><BR>
|
cannam@85
|
31 <A HREF="history.html">History</A><BR>
|
cannam@85
|
32 <A HREF="download.html">Download</A><BR>
|
cannam@85
|
33 <A HREF="quality.html">Quality</A><BR>
|
cannam@85
|
34 <A HREF="api.html">API</A><BR>
|
cannam@85
|
35 <A HREF="bugs.html">Bug Reporting</A><BR>
|
cannam@85
|
36 <A HREF="win32.html">On Win32</A><BR>
|
cannam@85
|
37 <A HREF="faq.html">FAQ</A><BR>
|
cannam@85
|
38 <A HREF="lists.html">Mailing Lists</A><BR>
|
cannam@85
|
39 <A HREF="ChangeLog">ChangeLog</A><BR>
|
cannam@85
|
40 <BR>
|
cannam@85
|
41 <DIV CLASS="block">
|
cannam@85
|
42 Author :<BR>Erik de Castro Lopo
|
cannam@85
|
43 <!-- pepper -->
|
cannam@85
|
44 <BR><BR>
|
cannam@85
|
45 <!-- pepper -->
|
cannam@85
|
46
|
cannam@85
|
47 </DIV>
|
cannam@85
|
48 <IMG SRC=
|
cannam@85
|
49 "/cgi-bin/Count.cgi?ft=6|frgb=55;55;55|tr=0|md=6|dd=B|st=1|sh=1|df=src_api.dat"
|
cannam@85
|
50 HEIGHT=30 WIDTH=100 ALT="counter.gif">
|
cannam@85
|
51 </DIV>
|
cannam@85
|
52
|
cannam@85
|
53 </TD>
|
cannam@85
|
54 <!-- pepper -->
|
cannam@85
|
55 <!-- ######################################################################## -->
|
cannam@85
|
56 <!-- pepper -->
|
cannam@85
|
57 <TD VALIGN="top">
|
cannam@85
|
58 <DIV CLASS="block">
|
cannam@85
|
59
|
cannam@85
|
60 <H1><B>Applications Programming Interface</B></H1>
|
cannam@85
|
61 <P>
|
cannam@85
|
62 The publically callable functions of libsamplerate are all listed in the
|
cannam@85
|
63 <B><samplerate.h></B> header file.
|
cannam@85
|
64 In order to use any of the functionality of libsamplerate, you need to add
|
cannam@85
|
65 </P>
|
cannam@85
|
66 <PRE>
|
cannam@85
|
67 #include <samplerate.h>
|
cannam@85
|
68 </PRE>
|
cannam@85
|
69 <P>
|
cannam@85
|
70 to the top of any function that call any of the following functions.
|
cannam@85
|
71 You will also need to link you binary with the libsamplerate library.
|
cannam@85
|
72 </P>
|
cannam@85
|
73 <P>
|
cannam@85
|
74 The API allows three methods for accessing the capabilies of the library:
|
cannam@85
|
75 </P>
|
cannam@85
|
76 <UL>
|
cannam@85
|
77 <LI>A <A HREF="api_simple.html">simple interface</A> which can sample rate convert
|
cannam@85
|
78 a single block of samples (one or more channels) in one go.
|
cannam@85
|
79 The simple API is less capable than the full API.
|
cannam@85
|
80 <LI>A <A HREF="api_full.html">more fully featured interface</A> which allows time
|
cannam@85
|
81 varying sample rate conversion on streaming data (again one or more
|
cannam@85
|
82 channels).
|
cannam@85
|
83 <LI>A <A HREF="api_callback.html">callback interface</A> which has the same
|
cannam@85
|
84 functionality as the interface above but allows the details of input and
|
cannam@85
|
85 output to be separated.
|
cannam@85
|
86 The output is generated by call a read function and the library calls a user
|
cannam@85
|
87 supplied callback function to obtain its input.
|
cannam@85
|
88 This interface is particularly well suited to applications where the output
|
cannam@85
|
89 sample rate is varied with time.
|
cannam@85
|
90 </UL>
|
cannam@85
|
91
|
cannam@85
|
92 <P>
|
cannam@85
|
93 <b>NB :</b> All three access methods are able to process multi channel interleaved
|
cannam@85
|
94 data.
|
cannam@85
|
95 </P>
|
cannam@85
|
96
|
cannam@85
|
97 <P>
|
cannam@85
|
98 The parts of the API which are common to all three interfaces are:
|
cannam@85
|
99 </P>
|
cannam@85
|
100 <UL>
|
cannam@85
|
101 <LI> The <A HREF="api_misc.html#ErrorReporting">error reporting</A> mechanisim.
|
cannam@85
|
102 <LI> The available <A HREF="api_misc.html#Converters">converter</A> types.
|
cannam@85
|
103 <LI> The <A HREF="api_misc.html#SRC_DATA">SRC_DATA</A> struct.
|
cannam@85
|
104 </UL>
|
cannam@85
|
105 <P>
|
cannam@85
|
106 All three versions of the API are restricted to operating on buffers of ISO C
|
cannam@85
|
107 Standard <B>float</B> data.
|
cannam@85
|
108 However, there are two
|
cannam@85
|
109 <A HREF="api_misc.html#Aux">auxillary functions</A>
|
cannam@85
|
110 for converting arrays of float data to and from short data.
|
cannam@85
|
111 </P>
|
cannam@85
|
112
|
cannam@85
|
113 <P>
|
cannam@85
|
114 <B>Note:</B> The <B>tests/</B> and <B>examples/</B> directories of the source code
|
cannam@85
|
115 distribution contain numerous example programs showing the use of the library.
|
cannam@85
|
116 </P>
|
cannam@85
|
117
|
cannam@85
|
118 <!-- pepper -->
|
cannam@85
|
119 <!-- <A HREF="mailto:aldel0305@mega-nerd.com">For the spam bots</A> -->
|
cannam@85
|
120 <!-- pepper -->
|
cannam@85
|
121
|
cannam@85
|
122 </DIV>
|
cannam@85
|
123 </TD></TR>
|
cannam@85
|
124 </TABLE>
|
cannam@85
|
125
|
cannam@85
|
126 </BODY>
|
cannam@85
|
127 </HTML>
|