/** * gst_fft_f64_new: * @len: Length of the FFT in the time domain * @inverse: %TRUE if the #GstFFTF64 instance should be used for the inverse FFT * * This returns a new #GstFFTF64 instance with the given parameters. It makes * sense to keep one instance for several calls for speed reasons. * * @len 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 * gst_fft_next_fast_length(). * * Returns: a new #GstFFTF64 instance. */ GstFFTF64 * gst_fft_f64_new (gint len, gboolean inverse) { GstFFTF64 *self; gsize subsize = 0, memneeded; g_return_val_if_fail (len > 0, NULL); g_return_val_if_fail (len % 2 == 0, NULL); kiss_fftr_f64_alloc (len, (inverse) ? 1 : 0, NULL, &subsize); memneeded = ALIGN_STRUCT (sizeof (GstFFTF64)) + subsize; self = (GstFFTF64 *) g_malloc0 (memneeded); self->cfg = (((guint8 *) self) + ALIGN_STRUCT (sizeof (GstFFTF64))); self->cfg = kiss_fftr_f64_alloc (len, (inverse) ? 1 : 0, self->cfg, &subsize); g_assert (self->cfg); self->inverse = inverse; self->len = len; return self; }
/** * gst_fft_f64_new: * @len: Length of the FFT in the time domain * @inverse: %TRUE if the #GstFFTF64 instance should be used for the inverse FFT * * This returns a new #GstFFTF64 instance with the given parameters. It makes * sense to keep one instance for several calls for speed reasons. * * @len 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 * gst_fft_next_fast_length(). * * Returns: a new #GstFFTF64 instance. */ GstFFTF64 * gst_fft_f64_new (gint len, gboolean inverse) { GstFFTF64 *self; g_return_val_if_fail (len > 0, NULL); g_return_val_if_fail (len % 2 == 0, NULL); self = g_new (GstFFTF64, 1); self->cfg = kiss_fftr_f64_alloc (len, (inverse) ? 1 : 0, NULL, NULL); g_assert (self->cfg); self->inverse = inverse; self->len = len; return self; }