2 <!-- This file was automatically generated from C sources - DO NOT EDIT!
3 To affect the contents of this file, edit the original C definitions,
4 and/or use gtk-doc annotations. -->
5 <repository version="1.2"
6 xmlns="http://www.gtk.org/introspection/core/1.0"
7 xmlns:c="http://www.gtk.org/introspection/c/1.0"
8 xmlns:glib="http://www.gtk.org/introspection/glib/1.0">
9 <include name="GLib" version="2.0"/>
10 <include name="GModule" version="2.0"/>
11 <include name="GObject" version="2.0"/>
12 <include name="Gst" version="0.10"/>
13 <include name="libxml2" version="2.0"/>
14 <package name="gstreamer-fft-0.10"/>
15 <c:include name="gst/fft/gstfft.h"/>
16 <c:include name="gst/fft/gstfftf32.h"/>
17 <c:include name="gst/fft/gstfftf64.h"/>
18 <c:include name="gst/fft/gstffts16.h"/>
19 <c:include name="gst/fft/gstffts32.h"/>
20 <namespace name="GstFft"
22 shared-library="libgstfft-0.10.so.0"
23 c:identifier-prefixes="Gst"
24 c:symbol-prefixes="gst">
25 <record name="FFTF32" c:type="GstFFTF32">
26 <doc xml:whitespace="preserve">Instance structure for #GstFFTF32.</doc>
27 <field name="cfg" readable="0" private="1">
28 <type name="gpointer" c:type="void*"/>
30 <field name="inverse" readable="0" private="1">
31 <type name="gboolean" c:type="gboolean"/>
33 <field name="len" readable="0" private="1">
34 <type name="gint" c:type="gint"/>
36 <field name="_padding" readable="0" private="1">
37 <array zero-terminated="0" c:type="gpointer" fixed-size="4">
38 <type name="gpointer" c:type="gpointer"/>
41 <method name="fft" c:identifier="gst_fft_f32_fft">
42 <doc xml:whitespace="preserve">This performs the FFT on @timedata and puts the result in @freqdata.
43 allocating the #GstFFTF32 instance with gst_fft_f32_new().
45 <return-value transfer-ownership="none">
46 <type name="none" c:type="void"/>
49 <parameter name="timedata" transfer-ownership="none">
50 <doc xml:whitespace="preserve">Buffer of the samples in the time domain</doc>
51 <type name="gfloat" c:type="gfloat*"/>
53 <parameter name="freqdata" transfer-ownership="none">
54 <doc xml:whitespace="preserve">Target buffer for the samples in the frequency domain</doc>
55 <type name="FFTF32Complex" c:type="GstFFTF32Complex*"/>
59 <method name="free" c:identifier="gst_fft_f32_free">
60 <doc xml:whitespace="preserve">This frees the memory allocated for @self.</doc>
61 <return-value transfer-ownership="none">
62 <type name="none" c:type="void"/>
65 <method name="inverse_fft" c:identifier="gst_fft_f32_inverse_fft">
66 <doc xml:whitespace="preserve">This performs the inverse FFT on @freqdata and puts the result in @timedata.
67 while allocating the #GstFFTF32 instance with gst_fft_f32_new().</doc>
68 <return-value transfer-ownership="none">
69 <type name="none" c:type="void"/>
72 <parameter name="freqdata" transfer-ownership="none">
73 <doc xml:whitespace="preserve">Buffer of the samples in the frequency domain</doc>
74 <type name="FFTF32Complex" c:type="GstFFTF32Complex*"/>
76 <parameter name="timedata" transfer-ownership="none">
77 <doc xml:whitespace="preserve">Target buffer for the samples in the time domain</doc>
78 <type name="gfloat" c:type="gfloat*"/>
82 <method name="window" c:identifier="gst_fft_f32_window">
83 <doc xml:whitespace="preserve">This calls the window function @window on the @timedata sample buffer.</doc>
84 <return-value transfer-ownership="none">
85 <type name="none" c:type="void"/>
88 <parameter name="timedata" transfer-ownership="none">
89 <doc xml:whitespace="preserve">Time domain samples</doc>
90 <type name="gfloat" c:type="gfloat*"/>
92 <parameter name="window" transfer-ownership="none">
93 <doc xml:whitespace="preserve">Window function to apply</doc>
94 <type name="FFTWindow" c:type="GstFFTWindow"/>
99 <record name="FFTF32Complex" c:type="GstFFTF32Complex">
100 <doc xml:whitespace="preserve">Data type for complex numbers composed of
102 <field name="r" writable="1">
103 <type name="gfloat" c:type="gfloat"/>
105 <field name="i" writable="1">
106 <type name="gfloat" c:type="gfloat"/>
109 <record name="FFTF64" c:type="GstFFTF64">
110 <doc xml:whitespace="preserve">Instance structure for #GstFFTF64.</doc>
111 <field name="cfg" readable="0" private="1">
112 <type name="gpointer" c:type="void*"/>
114 <field name="inverse" readable="0" private="1">
115 <type name="gboolean" c:type="gboolean"/>
117 <field name="len" readable="0" private="1">
118 <type name="gint" c:type="gint"/>
120 <field name="_padding" readable="0" private="1">
121 <array zero-terminated="0" c:type="gpointer" fixed-size="4">
122 <type name="gpointer" c:type="gpointer"/>
125 <method name="fft" c:identifier="gst_fft_f64_fft">
126 <doc xml:whitespace="preserve">This performs the FFT on @timedata and puts the result in @freqdata.
127 allocating the #GstFFTF64 instance with gst_fft_f64_new().
128 domain samples.</doc>
129 <return-value transfer-ownership="none">
130 <type name="none" c:type="void"/>
133 <parameter name="timedata" transfer-ownership="none">
134 <doc xml:whitespace="preserve">Buffer of the samples in the time domain</doc>
135 <type name="gdouble" c:type="gdouble*"/>
137 <parameter name="freqdata" transfer-ownership="none">
138 <doc xml:whitespace="preserve">Target buffer for the samples in the frequency domain</doc>
139 <type name="FFTF64Complex" c:type="GstFFTF64Complex*"/>
143 <method name="free" c:identifier="gst_fft_f64_free">
144 <doc xml:whitespace="preserve">This frees the memory allocated for @self.</doc>
145 <return-value transfer-ownership="none">
146 <type name="none" c:type="void"/>
149 <method name="inverse_fft" c:identifier="gst_fft_f64_inverse_fft">
150 <doc xml:whitespace="preserve">This performs the inverse FFT on @freqdata and puts the result in @timedata.
151 while allocating the #GstFFTF64 instance with gst_fft_f64_new().</doc>
152 <return-value transfer-ownership="none">
153 <type name="none" c:type="void"/>
156 <parameter name="freqdata" transfer-ownership="none">
157 <doc xml:whitespace="preserve">Buffer of the samples in the frequency domain</doc>
158 <type name="FFTF64Complex" c:type="GstFFTF64Complex*"/>
160 <parameter name="timedata" transfer-ownership="none">
161 <doc xml:whitespace="preserve">Target buffer for the samples in the time domain</doc>
162 <type name="gdouble" c:type="gdouble*"/>
166 <method name="window" c:identifier="gst_fft_f64_window">
167 <doc xml:whitespace="preserve">This calls the window function @window on the @timedata sample buffer.</doc>
168 <return-value transfer-ownership="none">
169 <type name="none" c:type="void"/>
172 <parameter name="timedata" transfer-ownership="none">
173 <doc xml:whitespace="preserve">Time domain samples</doc>
174 <type name="gdouble" c:type="gdouble*"/>
176 <parameter name="window" transfer-ownership="none">
177 <doc xml:whitespace="preserve">Window function to apply</doc>
178 <type name="FFTWindow" c:type="GstFFTWindow"/>
183 <record name="FFTF64Complex" c:type="GstFFTF64Complex">
184 <doc xml:whitespace="preserve">Data type for complex numbers composed of
186 <field name="r" writable="1">
187 <type name="gdouble" c:type="gdouble"/>
189 <field name="i" writable="1">
190 <type name="gdouble" c:type="gdouble"/>
193 <record name="FFTS16" c:type="GstFFTS16">
194 <doc xml:whitespace="preserve">Instance structure for #GstFFTS16.</doc>
195 <field name="cfg" readable="0" private="1">
196 <type name="gpointer" c:type="void*"/>
198 <field name="inverse" readable="0" private="1">
199 <type name="gboolean" c:type="gboolean"/>
201 <field name="len" readable="0" private="1">
202 <type name="gint" c:type="gint"/>
204 <field name="_padding" readable="0" private="1">
205 <array zero-terminated="0" c:type="gpointer" fixed-size="4">
206 <type name="gpointer" c:type="gpointer"/>
209 <method name="fft" c:identifier="gst_fft_s16_fft">
210 <doc xml:whitespace="preserve">This performs the FFT on @timedata and puts the result in @freqdata.
211 allocating the #GstFFTS16 instance with gst_fft_s16_new().
212 domain samples.</doc>
213 <return-value transfer-ownership="none">
214 <type name="none" c:type="void"/>
217 <parameter name="timedata" transfer-ownership="none">
218 <doc xml:whitespace="preserve">Buffer of the samples in the time domain</doc>
219 <type name="gint16" c:type="gint16*"/>
221 <parameter name="freqdata" transfer-ownership="none">
222 <doc xml:whitespace="preserve">Target buffer for the samples in the frequency domain</doc>
223 <type name="FFTS16Complex" c:type="GstFFTS16Complex*"/>
227 <method name="free" c:identifier="gst_fft_s16_free">
228 <doc xml:whitespace="preserve">This frees the memory allocated for @self.</doc>
229 <return-value transfer-ownership="none">
230 <type name="none" c:type="void"/>
233 <method name="inverse_fft" c:identifier="gst_fft_s16_inverse_fft">
234 <doc xml:whitespace="preserve">This performs the inverse FFT on @freqdata and puts the result in @timedata.
235 while allocating the #GstFFTS16 instance with gst_fft_s16_new().</doc>
236 <return-value transfer-ownership="none">
237 <type name="none" c:type="void"/>
240 <parameter name="freqdata" transfer-ownership="none">
241 <doc xml:whitespace="preserve">Buffer of the samples in the frequency domain</doc>
242 <type name="FFTS16Complex" c:type="GstFFTS16Complex*"/>
244 <parameter name="timedata" transfer-ownership="none">
245 <doc xml:whitespace="preserve">Target buffer for the samples in the time domain</doc>
246 <type name="gint16" c:type="gint16*"/>
250 <method name="window" c:identifier="gst_fft_s16_window">
251 <doc xml:whitespace="preserve">This calls the window function @window on the @timedata sample buffer.</doc>
252 <return-value transfer-ownership="none">
253 <type name="none" c:type="void"/>
256 <parameter name="timedata" transfer-ownership="none">
257 <doc xml:whitespace="preserve">Time domain samples</doc>
258 <type name="gint16" c:type="gint16*"/>
260 <parameter name="window" transfer-ownership="none">
261 <doc xml:whitespace="preserve">Window function to apply</doc>
262 <type name="FFTWindow" c:type="GstFFTWindow"/>
267 <record name="FFTS16Complex" c:type="GstFFTS16Complex">
268 <doc xml:whitespace="preserve">Data type for complex numbers composed of
269 signed 16 bit integers.</doc>
270 <field name="r" writable="1">
271 <type name="gint16" c:type="gint16"/>
273 <field name="i" writable="1">
274 <type name="gint16" c:type="gint16"/>
277 <record name="FFTS32" c:type="GstFFTS32">
278 <doc xml:whitespace="preserve">Instance structure for #GstFFTS32.</doc>
279 <field name="cfg" readable="0" private="1">
280 <type name="gpointer" c:type="void*"/>
282 <field name="inverse" readable="0" private="1">
283 <type name="gboolean" c:type="gboolean"/>
285 <field name="len" readable="0" private="1">
286 <type name="gint" c:type="gint"/>
288 <field name="_padding" readable="0" private="1">
289 <array zero-terminated="0" c:type="gpointer" fixed-size="4">
290 <type name="gpointer" c:type="gpointer"/>
293 <method name="fft" c:identifier="gst_fft_s32_fft">
294 <doc xml:whitespace="preserve">This performs the FFT on @timedata and puts the result in @freqdata.
295 allocating the #GstFFTS32 instance with gst_fft_s32_new().
296 domain samples.</doc>
297 <return-value transfer-ownership="none">
298 <type name="none" c:type="void"/>
301 <parameter name="timedata" transfer-ownership="none">
302 <doc xml:whitespace="preserve">Buffer of the samples in the time domain</doc>
303 <type name="gint32" c:type="gint32*"/>
305 <parameter name="freqdata" transfer-ownership="none">
306 <doc xml:whitespace="preserve">Target buffer for the samples in the frequency domain</doc>
307 <type name="FFTS32Complex" c:type="GstFFTS32Complex*"/>
311 <method name="free" c:identifier="gst_fft_s32_free">
312 <doc xml:whitespace="preserve">This frees the memory allocated for @self.</doc>
313 <return-value transfer-ownership="none">
314 <type name="none" c:type="void"/>
317 <method name="inverse_fft" c:identifier="gst_fft_s32_inverse_fft">
318 <doc xml:whitespace="preserve">This performs the inverse FFT on @freqdata and puts the result in @timedata.
319 while allocating the #GstFFTS32 instance with gst_fft_s32_new().</doc>
320 <return-value transfer-ownership="none">
321 <type name="none" c:type="void"/>
324 <parameter name="freqdata" transfer-ownership="none">
325 <doc xml:whitespace="preserve">Buffer of the samples in the frequency domain</doc>
326 <type name="FFTS32Complex" c:type="GstFFTS32Complex*"/>
328 <parameter name="timedata" transfer-ownership="none">
329 <doc xml:whitespace="preserve">Target buffer for the samples in the time domain</doc>
330 <type name="gint32" c:type="gint32*"/>
334 <method name="window" c:identifier="gst_fft_s32_window">
335 <doc xml:whitespace="preserve">This calls the window function @window on the @timedata sample buffer.</doc>
336 <return-value transfer-ownership="none">
337 <type name="none" c:type="void"/>
340 <parameter name="timedata" transfer-ownership="none">
341 <doc xml:whitespace="preserve">Time domain samples</doc>
342 <type name="gint32" c:type="gint32*"/>
344 <parameter name="window" transfer-ownership="none">
345 <doc xml:whitespace="preserve">Window function to apply</doc>
346 <type name="FFTWindow" c:type="GstFFTWindow"/>
351 <record name="FFTS32Complex" c:type="GstFFTS32Complex">
352 <doc xml:whitespace="preserve">Data type for complex numbers composed of
353 signed 32 bit integers.</doc>
354 <field name="r" writable="1">
355 <type name="gint32" c:type="gint32"/>
357 <field name="i" writable="1">
358 <type name="gint32" c:type="gint32"/>
361 <enumeration name="FFTWindow" c:type="GstFFTWindow">
362 <doc xml:whitespace="preserve">The various window functions available.</doc>
363 <member name="rectangular"
365 c:identifier="GST_FFT_WINDOW_RECTANGULAR"/>
366 <member name="hamming" value="1" c:identifier="GST_FFT_WINDOW_HAMMING"/>
367 <member name="hann" value="2" c:identifier="GST_FFT_WINDOW_HANN"/>
368 <member name="bartlett"
370 c:identifier="GST_FFT_WINDOW_BARTLETT"/>
371 <member name="blackman"
373 c:identifier="GST_FFT_WINDOW_BLACKMAN"/>
375 <function name="fft_f32_new"
376 c:identifier="gst_fft_f32_new"
378 <doc xml:whitespace="preserve">This returns a new #GstFFTF32 instance with the given parameters. It makes
379 sense to keep one instance for several calls for speed reasons.
380 2, 3 and 5. To get the next number with this characteristics use
381 gst_fft_next_fast_length().</doc>
383 <doc xml:whitespace="preserve">a new #GstFFTF32 instance.</doc>
384 <type name="FFTF32" c:type="GstFFTF32*"/>
387 <parameter name="len" transfer-ownership="none">
388 <doc xml:whitespace="preserve">Length of the FFT in the time domain</doc>
389 <type name="gint" c:type="gint"/>
391 <parameter name="inverse" transfer-ownership="none">
392 <doc xml:whitespace="preserve">%TRUE if the #GstFFTF32 instance should be used for the inverse FFT</doc>
393 <type name="gboolean" c:type="gboolean"/>
397 <function name="fft_f64_new"
398 c:identifier="gst_fft_f64_new"
400 <doc xml:whitespace="preserve">This returns a new #GstFFTF64 instance with the given parameters. It makes
401 sense to keep one instance for several calls for speed reasons.
402 2, 3 and 5. To get the next number with this characteristics use
403 gst_fft_next_fast_length().</doc>
405 <doc xml:whitespace="preserve">a new #GstFFTF64 instance.</doc>
406 <type name="FFTF64" c:type="GstFFTF64*"/>
409 <parameter name="len" transfer-ownership="none">
410 <doc xml:whitespace="preserve">Length of the FFT in the time domain</doc>
411 <type name="gint" c:type="gint"/>
413 <parameter name="inverse" transfer-ownership="none">
414 <doc xml:whitespace="preserve">%TRUE if the #GstFFTF64 instance should be used for the inverse FFT</doc>
415 <type name="gboolean" c:type="gboolean"/>
419 <function name="fft_next_fast_length"
420 c:identifier="gst_fft_next_fast_length">
421 <doc xml:whitespace="preserve">Returns the next number to @n that is entirely a product
422 of 2, 3 and 5. Using this as the @len parameter for
423 the different GstFFT types will provide the best performance.</doc>
424 <return-value transfer-ownership="none">
425 <doc xml:whitespace="preserve">the next fast FFT length.</doc>
426 <type name="gint" c:type="gint"/>
429 <parameter name="n" transfer-ownership="none">
430 <doc xml:whitespace="preserve">Number for which the next fast length should be returned</doc>
431 <type name="gint" c:type="gint"/>
435 <function name="fft_s16_new"
436 c:identifier="gst_fft_s16_new"
438 <doc xml:whitespace="preserve">This returns a new #GstFFTS16 instance with the given parameters. It makes
439 sense to keep one instance for several calls for speed reasons.
440 2, 3 and 5. To get the next number with this characteristics use
441 gst_fft_next_fast_length().</doc>
443 <doc xml:whitespace="preserve">a new #GstFFTS16 instance.</doc>
444 <type name="FFTS16" c:type="GstFFTS16*"/>
447 <parameter name="len" transfer-ownership="none">
448 <doc xml:whitespace="preserve">Length of the FFT in the time domain</doc>
449 <type name="gint" c:type="gint"/>
451 <parameter name="inverse" transfer-ownership="none">
452 <doc xml:whitespace="preserve">%TRUE if the #GstFFTS16 instance should be used for the inverse FFT</doc>
453 <type name="gboolean" c:type="gboolean"/>
457 <function name="fft_s32_new"
458 c:identifier="gst_fft_s32_new"
460 <doc xml:whitespace="preserve">This returns a new #GstFFTS32 instance with the given parameters. It makes
461 sense to keep one instance for several calls for speed reasons.
462 2, 3 and 5. To get the next number with this characteristics use
463 gst_fft_next_fast_length().</doc>
465 <doc xml:whitespace="preserve">a new #GstFFTS32 instance.</doc>
466 <type name="FFTS32" c:type="GstFFTS32*"/>
469 <parameter name="len" transfer-ownership="none">
470 <doc xml:whitespace="preserve">Length of the FFT in the time domain</doc>
471 <type name="gint" c:type="gint"/>
473 <parameter name="inverse" transfer-ownership="none">
474 <doc xml:whitespace="preserve">%TRUE if the #GstFFTS32 instance should be used for the inverse FFT</doc>
475 <type name="gboolean" c:type="gboolean"/>