This file is indexed.

/usr/share/gtk-doc/html/gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstfftf32.html is in gstreamer1.0-plugins-base-doc 1.2.3-1.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>gstfftf32</title>
<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
<link rel="home" href="index.html" title="GStreamer Base Plugins 1.0 Library Reference Manual">
<link rel="up" href="gstreamer-ffft.html" title="FFT Library">
<link rel="prev" href="gst-plugins-base-libs-gstffts32.html" title="gstffts32">
<link rel="next" href="gst-plugins-base-libs-gstfftf64.html" title="gstfftf64">
<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
<tr valign="middle">
<td><a accesskey="p" href="gst-plugins-base-libs-gstffts32.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
<td><a accesskey="u" href="gstreamer-ffft.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
<th width="100%" align="center">GStreamer Base Plugins 1.0 Library Reference Manual</th>
<td><a accesskey="n" href="gst-plugins-base-libs-gstfftf64.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
</tr>
<tr><td colspan="5" class="shortcuts">
<a href="#gst-plugins-base-libs-gstfftf32.synopsis" class="shortcut">Top</a>
                   | 
                  <a href="#gst-plugins-base-libs-gstfftf32.description" class="shortcut">Description</a>
</td></tr>
</table>
<div class="refentry">
<a name="gst-plugins-base-libs-gstfftf32"></a><div class="titlepage"></div>
<div class="refnamediv"><table width="100%"><tr>
<td valign="top">
<h2><span class="refentrytitle"><a name="gst-plugins-base-libs-gstfftf32.top_of_page"></a>gstfftf32</span></h2>
<p>gstfftf32 — FFT functions for 32 bit float samples</p>
</td>
<td valign="top" align="right"></td>
</tr></table></div>
<div class="refsynopsisdiv">
<a name="gst-plugins-base-libs-gstfftf32.synopsis"></a><h2>Synopsis</h2>
<pre class="synopsis">
#include &lt;gst/fft/gstfftf32.h&gt;

                    <a class="link" href="gst-plugins-base-libs-gstfftf32.html#GstFFTF32" title="GstFFTF32">GstFFTF32</a>;
struct              <a class="link" href="gst-plugins-base-libs-gstfftf32.html#GstFFTF32Complex" title="struct GstFFTF32Complex">GstFFTF32Complex</a>;
<a class="link" href="gst-plugins-base-libs-gstfftf32.html#GstFFTF32" title="GstFFTF32"><span class="returnvalue">GstFFTF32</span></a> *         <a class="link" href="gst-plugins-base-libs-gstfftf32.html#gst-fft-f32-new" title="gst_fft_f32_new ()">gst_fft_f32_new</a>                     (<em class="parameter"><code><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gint"><span class="type">gint</span></a> len</code></em>,
                                                         <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> inverse</code></em>);
<span class="returnvalue">void</span>                <a class="link" href="gst-plugins-base-libs-gstfftf32.html#gst-fft-f32-fft" title="gst_fft_f32_fft ()">gst_fft_f32_fft</a>                     (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstfftf32.html#GstFFTF32" title="GstFFTF32"><span class="type">GstFFTF32</span></a> *self</code></em>,
                                                         <em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gfloat"><span class="type">gfloat</span></a> *timedata</code></em>,
                                                         <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstfftf32.html#GstFFTF32Complex" title="struct GstFFTF32Complex"><span class="type">GstFFTF32Complex</span></a> *freqdata</code></em>);
<span class="returnvalue">void</span>                <a class="link" href="gst-plugins-base-libs-gstfftf32.html#gst-fft-f32-inverse-fft" title="gst_fft_f32_inverse_fft ()">gst_fft_f32_inverse_fft</a>             (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstfftf32.html#GstFFTF32" title="GstFFTF32"><span class="type">GstFFTF32</span></a> *self</code></em>,
                                                         <em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstfftf32.html#GstFFTF32Complex" title="struct GstFFTF32Complex"><span class="type">GstFFTF32Complex</span></a> *freqdata</code></em>,
                                                         <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gfloat"><span class="type">gfloat</span></a> *timedata</code></em>);
<span class="returnvalue">void</span>                <a class="link" href="gst-plugins-base-libs-gstfftf32.html#gst-fft-f32-window" title="gst_fft_f32_window ()">gst_fft_f32_window</a>                  (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstfftf32.html#GstFFTF32" title="GstFFTF32"><span class="type">GstFFTF32</span></a> *self</code></em>,
                                                         <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gfloat"><span class="type">gfloat</span></a> *timedata</code></em>,
                                                         <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstfft.html#GstFFTWindow" title="enum GstFFTWindow"><span class="type">GstFFTWindow</span></a> window</code></em>);
<span class="returnvalue">void</span>                <a class="link" href="gst-plugins-base-libs-gstfftf32.html#gst-fft-f32-free" title="gst_fft_f32_free ()">gst_fft_f32_free</a>                    (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstfftf32.html#GstFFTF32" title="GstFFTF32"><span class="type">GstFFTF32</span></a> *self</code></em>);
</pre>
</div>
<div class="refsect1">
<a name="gst-plugins-base-libs-gstfftf32.description"></a><h2>Description</h2>
<p>
<a class="link" href="gst-plugins-base-libs-gstfftf32.html#GstFFTF32" title="GstFFTF32"><span class="type">GstFFTF32</span></a> provides a FFT implementation and related functions for
32 bit float samples. To use this call <a class="link" href="gst-plugins-base-libs-gstfftf32.html#gst-fft-f32-new" title="gst_fft_f32_new ()"><code class="function">gst_fft_f32_new()</code></a> for
allocating a <a class="link" href="gst-plugins-base-libs-gstfftf32.html#GstFFTF32" title="GstFFTF32"><span class="type">GstFFTF32</span></a> instance with the appropriate parameters and
then call <a class="link" href="gst-plugins-base-libs-gstfftf32.html#gst-fft-f32-fft" title="gst_fft_f32_fft ()"><code class="function">gst_fft_f32_fft()</code></a> or <a class="link" href="gst-plugins-base-libs-gstfftf32.html#gst-fft-f32-inverse-fft" title="gst_fft_f32_inverse_fft ()"><code class="function">gst_fft_f32_inverse_fft()</code></a> to perform the
FFT or inverse FFT on a buffer of samples.
</p>
<p>
After use free the <a class="link" href="gst-plugins-base-libs-gstfftf32.html#GstFFTF32" title="GstFFTF32"><span class="type">GstFFTF32</span></a> instance with <a class="link" href="gst-plugins-base-libs-gstfftf32.html#gst-fft-f32-free" title="gst_fft_f32_free ()"><code class="function">gst_fft_f32_free()</code></a>.
</p>
<p>
For the best performance use <a class="link" href="gst-plugins-base-libs-gstfft.html#gst-fft-next-fast-length" title="gst_fft_next_fast_length ()"><code class="function">gst_fft_next_fast_length()</code></a> to get a
number that is entirely a product of 2, 3 and 5 and use this as the
<em class="parameter"><code>len</code></em> parameter for <a class="link" href="gst-plugins-base-libs-gstfftf32.html#gst-fft-f32-new" title="gst_fft_f32_new ()"><code class="function">gst_fft_f32_new()</code></a>.
</p>
<p>
The <em class="parameter"><code>len</code></em> parameter specifies the number of samples in the time domain that
will be processed or generated. The number of samples in the frequency domain
is <em class="parameter"><code>len</code></em>/2 + 1. To get n samples in the frequency domain use 2*n - 2 as <em class="parameter"><code>len</code></em>.
</p>
<p>
Before performing the FFT on time domain data it usually makes sense
to apply a window function to it. For this <a class="link" href="gst-plugins-base-libs-gstfftf32.html#gst-fft-f32-window" title="gst_fft_f32_window ()"><code class="function">gst_fft_f32_window()</code></a> can comfortably
be used.
</p>
<p>
Be aware, that you can't simply run <a class="link" href="gst-plugins-base-libs-gstfftf32.html#gst-fft-f32-inverse-fft" title="gst_fft_f32_inverse_fft ()"><code class="function">gst_fft_f32_inverse_fft()</code></a> on the
resulting frequency data of <a class="link" href="gst-plugins-base-libs-gstfftf32.html#gst-fft-f32-fft" title="gst_fft_f32_fft ()"><code class="function">gst_fft_f32_fft()</code></a> to get the original data back.
The relation between them is iFFT (FFT (x)) = x * nfft where nfft is the
length of the FFT. This also has to be taken into account when calculation
the magnitude of the frequency data.
</p>
</div>
<div class="refsect1">
<a name="gst-plugins-base-libs-gstfftf32.details"></a><h2>Details</h2>
<div class="refsect2">
<a name="GstFFTF32"></a><h3>GstFFTF32</h3>
<pre class="programlisting">typedef struct _GstFFTF32 GstFFTF32;</pre>
</div>
<hr>
<div class="refsect2">
<a name="GstFFTF32Complex"></a><h3>struct GstFFTF32Complex</h3>
<pre class="programlisting">struct GstFFTF32Complex {
  gfloat r;
  gfloat i;
};
</pre>
<p>
Data type for complex numbers composed of
32 bit float.
</p>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
<col>
</colgroup>
<tbody>
<tr>
<td><p><span class="term"><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gfloat"><span class="type">gfloat</span></a> <em class="structfield"><code><a name="GstFFTF32Complex.r"></a>r</code></em>;</span></p></td>
<td>Real part</td>
</tr>
<tr>
<td><p><span class="term"><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gfloat"><span class="type">gfloat</span></a> <em class="structfield"><code><a name="GstFFTF32Complex.i"></a>i</code></em>;</span></p></td>
<td>Imaginary part</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="gst-fft-f32-new"></a><h3>gst_fft_f32_new ()</h3>
<pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstfftf32.html#GstFFTF32" title="GstFFTF32"><span class="returnvalue">GstFFTF32</span></a> *         gst_fft_f32_new                     (<em class="parameter"><code><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gint"><span class="type">gint</span></a> len</code></em>,
                                                         <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> inverse</code></em>);</pre>
<p>
This returns a new <a class="link" href="gst-plugins-base-libs-gstfftf32.html#GstFFTF32" title="GstFFTF32"><span class="type">GstFFTF32</span></a> instance with the given parameters. It makes
sense to keep one instance for several calls for speed reasons.
</p>
<p>
<em class="parameter"><code>len</code></em> must be even and to get the best performance a product of
2, 3 and 5. To get the next number with this characteristics use
<a class="link" href="gst-plugins-base-libs-gstfft.html#gst-fft-next-fast-length" title="gst_fft_next_fast_length ()"><code class="function">gst_fft_next_fast_length()</code></a>.
</p>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
<col>
</colgroup>
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>len</code></em> :</span></p></td>
<td>Length of the FFT in the time domain</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>inverse</code></em> :</span></p></td>
<td>
<a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the <a class="link" href="gst-plugins-base-libs-gstfftf32.html#GstFFTF32" title="GstFFTF32"><span class="type">GstFFTF32</span></a> instance should be used for the inverse FFT</td>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td>a new <a class="link" href="gst-plugins-base-libs-gstfftf32.html#GstFFTF32" title="GstFFTF32"><span class="type">GstFFTF32</span></a> instance.</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="gst-fft-f32-fft"></a><h3>gst_fft_f32_fft ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>                gst_fft_f32_fft                     (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstfftf32.html#GstFFTF32" title="GstFFTF32"><span class="type">GstFFTF32</span></a> *self</code></em>,
                                                         <em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gfloat"><span class="type">gfloat</span></a> *timedata</code></em>,
                                                         <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstfftf32.html#GstFFTF32Complex" title="struct GstFFTF32Complex"><span class="type">GstFFTF32Complex</span></a> *freqdata</code></em>);</pre>
<p>
This performs the FFT on <em class="parameter"><code>timedata</code></em> and puts the result in <em class="parameter"><code>freqdata</code></em>.
</p>
<p>
<em class="parameter"><code>timedata</code></em> must have as many samples as specified with the <em class="parameter"><code>len</code></em> parameter while
allocating the <a class="link" href="gst-plugins-base-libs-gstfftf32.html#GstFFTF32" title="GstFFTF32"><span class="type">GstFFTF32</span></a> instance with <a class="link" href="gst-plugins-base-libs-gstfftf32.html#gst-fft-f32-new" title="gst_fft_f32_new ()"><code class="function">gst_fft_f32_new()</code></a>.
</p>
<p>
<em class="parameter"><code>freqdata</code></em> must be large enough to hold <em class="parameter"><code>len</code></em>/2 + 1 <a class="link" href="gst-plugins-base-libs-gstfftf32.html#GstFFTF32Complex" title="struct GstFFTF32Complex"><span class="type">GstFFTF32Complex</span></a> frequency
domain samples.
</p>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
<col>
</colgroup>
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
<td>
<a class="link" href="gst-plugins-base-libs-gstfftf32.html#GstFFTF32" title="GstFFTF32"><span class="type">GstFFTF32</span></a> instance for this call</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>timedata</code></em> :</span></p></td>
<td>Buffer of the samples in the time domain</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>freqdata</code></em> :</span></p></td>
<td>Target buffer for the samples in the frequency domain</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="gst-fft-f32-inverse-fft"></a><h3>gst_fft_f32_inverse_fft ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>                gst_fft_f32_inverse_fft             (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstfftf32.html#GstFFTF32" title="GstFFTF32"><span class="type">GstFFTF32</span></a> *self</code></em>,
                                                         <em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstfftf32.html#GstFFTF32Complex" title="struct GstFFTF32Complex"><span class="type">GstFFTF32Complex</span></a> *freqdata</code></em>,
                                                         <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gfloat"><span class="type">gfloat</span></a> *timedata</code></em>);</pre>
<p>
This performs the inverse FFT on <em class="parameter"><code>freqdata</code></em> and puts the result in <em class="parameter"><code>timedata</code></em>.
</p>
<p>
<em class="parameter"><code>freqdata</code></em> must have <em class="parameter"><code>len</code></em>/2 + 1 samples, where <em class="parameter"><code>len</code></em> is the parameter specified
while allocating the <a class="link" href="gst-plugins-base-libs-gstfftf32.html#GstFFTF32" title="GstFFTF32"><span class="type">GstFFTF32</span></a> instance with <a class="link" href="gst-plugins-base-libs-gstfftf32.html#gst-fft-f32-new" title="gst_fft_f32_new ()"><code class="function">gst_fft_f32_new()</code></a>.
</p>
<p>
<em class="parameter"><code>timedata</code></em> must be large enough to hold <em class="parameter"><code>len</code></em> time domain samples.
</p>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
<col>
</colgroup>
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
<td>
<a class="link" href="gst-plugins-base-libs-gstfftf32.html#GstFFTF32" title="GstFFTF32"><span class="type">GstFFTF32</span></a> instance for this call</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>freqdata</code></em> :</span></p></td>
<td>Buffer of the samples in the frequency domain</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>timedata</code></em> :</span></p></td>
<td>Target buffer for the samples in the time domain</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="gst-fft-f32-window"></a><h3>gst_fft_f32_window ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>                gst_fft_f32_window                  (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstfftf32.html#GstFFTF32" title="GstFFTF32"><span class="type">GstFFTF32</span></a> *self</code></em>,
                                                         <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gfloat"><span class="type">gfloat</span></a> *timedata</code></em>,
                                                         <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstfft.html#GstFFTWindow" title="enum GstFFTWindow"><span class="type">GstFFTWindow</span></a> window</code></em>);</pre>
<p>
This calls the window function <em class="parameter"><code>window</code></em> on the <em class="parameter"><code>timedata</code></em> sample buffer.
</p>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
<col>
</colgroup>
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
<td>
<a class="link" href="gst-plugins-base-libs-gstfftf32.html#GstFFTF32" title="GstFFTF32"><span class="type">GstFFTF32</span></a> instance for this call</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>timedata</code></em> :</span></p></td>
<td>Time domain samples</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>window</code></em> :</span></p></td>
<td>Window function to apply</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="gst-fft-f32-free"></a><h3>gst_fft_f32_free ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>                gst_fft_f32_free                    (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstfftf32.html#GstFFTF32" title="GstFFTF32"><span class="type">GstFFTF32</span></a> *self</code></em>);</pre>
<p>
This frees the memory allocated for <em class="parameter"><code>self</code></em>.
</p>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
<col>
</colgroup>
<tbody><tr>
<td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
<td>
<a class="link" href="gst-plugins-base-libs-gstfftf32.html#GstFFTF32" title="GstFFTF32"><span class="type">GstFFTF32</span></a> instance for this call</td>
</tr></tbody>
</table></div>
</div>
</div>
</div>
<div class="footer">
<hr>
          Generated by GTK-Doc V1.19</div>
</body>
</html>