diff options
author | George Hazan <ghazan@miranda.im> | 2022-08-03 21:02:36 +0300 |
---|---|---|
committer | George Hazan <ghazan@miranda.im> | 2022-08-03 21:02:36 +0300 |
commit | 5323a782c4e8c42781f22ce2f488962a18f82554 (patch) | |
tree | f71537197b16f0f8fd0d6937f7120d018d220814 /include/gst/fft | |
parent | 50acf9d37183f86f6f623aad410003392b0af41f (diff) |
Jabber: initial version of Jingle support
Diffstat (limited to 'include/gst/fft')
-rw-r--r-- | include/gst/fft/fft-prelude.h | 33 | ||||
-rw-r--r-- | include/gst/fft/fft.h | 31 | ||||
-rw-r--r-- | include/gst/fft/gstfft.h | 57 | ||||
-rw-r--r-- | include/gst/fft/gstfftf32.h | 71 | ||||
-rw-r--r-- | include/gst/fft/gstfftf64.h | 71 | ||||
-rw-r--r-- | include/gst/fft/gstffts16.h | 71 | ||||
-rw-r--r-- | include/gst/fft/gstffts32.h | 71 |
7 files changed, 405 insertions, 0 deletions
diff --git a/include/gst/fft/fft-prelude.h b/include/gst/fft/fft-prelude.h new file mode 100644 index 0000000000..71a873dbc3 --- /dev/null +++ b/include/gst/fft/fft-prelude.h @@ -0,0 +1,33 @@ +/* GStreamer FFT Library + * Copyright (C) 2018 GStreamer developers + * + * fft-prelude.h: prelude include header for gst-fft library + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. + */ + +#ifndef __GST_FFT_PRELUDE_H__ +#define __GST_FFT_PRELUDE_H__ + +#include <gst/gst.h> + +#ifdef BUILDING_GST_FFT +#define GST_FFT_API GST_API_EXPORT /* from config.h */ +#else +#define GST_FFT_API GST_API_IMPORT +#endif + +#endif /* __GST_FFT_PRELUDE_H__ */ diff --git a/include/gst/fft/fft.h b/include/gst/fft/fft.h new file mode 100644 index 0000000000..fc78a42cde --- /dev/null +++ b/include/gst/fft/fft.h @@ -0,0 +1,31 @@ +/* GStreamer + * Copyright (C) 2012 GStreamer developers + * + * gstfft.h: single include header for gst-fft library + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. + */ + +#ifndef __GST_FFT__H__ +#define __GST_FFT__H__ + +#include <gst/fft/gstfft.h> +#include <gst/fft/gstffts16.h> +#include <gst/fft/gstffts32.h> +#include <gst/fft/gstfftf32.h> +#include <gst/fft/gstfftf64.h> + +#endif /* __GST_FFT__H__ */ diff --git a/include/gst/fft/gstfft.h b/include/gst/fft/gstfft.h new file mode 100644 index 0000000000..b3ff54aef9 --- /dev/null +++ b/include/gst/fft/gstfft.h @@ -0,0 +1,57 @@ +/* GStreamer + * Copyright (C) <2007> Sebastian Dröge <slomo@circular-chaos.org> + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. + */ + +#include <glib.h> +#include <math.h> +#include <gst/gst.h> + +#ifndef __GST_FFT_H__ +#define __GST_FFT_H__ + +#include <gst/fft/fft-prelude.h> + +G_BEGIN_DECLS + +/** + * GstFFTWindow: + * @GST_FFT_WINDOW_RECTANGULAR: Rectangular window + * @GST_FFT_WINDOW_HAMMING: Hamming window + * @GST_FFT_WINDOW_HANN: Hann (sometimes also called Hanning) window + * @GST_FFT_WINDOW_BARTLETT: Bartlett window + * @GST_FFT_WINDOW_BLACKMAN: Blackman window + * + * The various window functions available. + */ +typedef enum +{ + GST_FFT_WINDOW_RECTANGULAR, + GST_FFT_WINDOW_HAMMING, + GST_FFT_WINDOW_HANN, + GST_FFT_WINDOW_BARTLETT, + GST_FFT_WINDOW_BLACKMAN +} GstFFTWindow; + +/* Functions */ + +GST_FFT_API +gint gst_fft_next_fast_length (gint n) G_GNUC_CONST; + +G_END_DECLS + +#endif /* __GST_FFT_H__ */ diff --git a/include/gst/fft/gstfftf32.h b/include/gst/fft/gstfftf32.h new file mode 100644 index 0000000000..0cd5c41656 --- /dev/null +++ b/include/gst/fft/gstfftf32.h @@ -0,0 +1,71 @@ +/* GStreamer + * Copyright (C) <2007> Sebastian Dröge <slomo@circular-chaos.org> + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. + */ + +#ifndef __GST_FFT_F32_H__ +#define __GST_FFT_F32_H__ + +#include <glib.h> +#include <gst/gst.h> + +#include "gstfft.h" + +G_BEGIN_DECLS + +typedef struct _GstFFTF32 GstFFTF32; +typedef struct _GstFFTF32Complex GstFFTF32Complex; + +/* Copy of kiss_fft_f32_cpx for documentation reasons, + * do NOT change! */ + +/** + * GstFFTF32Complex: + * @r: Real part + * @i: Imaginary part + * + * Data type for complex numbers composed of + * 32 bit float. + */ +struct _GstFFTF32Complex +{ + gfloat r; + gfloat i; +}; + +/* Functions */ + +GST_FFT_API +GstFFTF32 * gst_fft_f32_new (gint len, gboolean inverse); + +GST_FFT_API +void gst_fft_f32_free (GstFFTF32 *self); + +GST_FFT_API +void gst_fft_f32_fft (GstFFTF32 *self, const gfloat *timedata, + GstFFTF32Complex *freqdata); + +GST_FFT_API +void gst_fft_f32_inverse_fft (GstFFTF32 *self, const GstFFTF32Complex *freqdata, + gfloat *timedata); + +GST_FFT_API +void gst_fft_f32_window (GstFFTF32 *self, gfloat *timedata, GstFFTWindow window); + +G_END_DECLS + +#endif /* __GST_FFT_F32_H__ */ diff --git a/include/gst/fft/gstfftf64.h b/include/gst/fft/gstfftf64.h new file mode 100644 index 0000000000..52700b45e0 --- /dev/null +++ b/include/gst/fft/gstfftf64.h @@ -0,0 +1,71 @@ +/* GStreamer + * Copyright (C) <2007> Sebastian Dröge <slomo@circular-chaos.org> + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. + */ + +#ifndef __GST_FFT_F64_H__ +#define __GST_FFT_F64_H__ + +#include <glib.h> +#include <gst/gst.h> + +#include "gstfft.h" + +G_BEGIN_DECLS + +typedef struct _GstFFTF64 GstFFTF64; +typedef struct _GstFFTF64Complex GstFFTF64Complex; + +/* Copy of kiss_fft_f64_cpx for documentation reasons, + * do NOT change! */ + +/** + * GstFFTF64Complex: + * @r: Real part + * @i: Imaginary part + * + * Data type for complex numbers composed of + * 64 bit float. + */ +struct _GstFFTF64Complex +{ + gdouble r; + gdouble i; +}; + +/* Functions */ + +GST_FFT_API +GstFFTF64 * gst_fft_f64_new (gint len, gboolean inverse); + +GST_FFT_API +void gst_fft_f64_free (GstFFTF64 *self); + +GST_FFT_API +void gst_fft_f64_fft (GstFFTF64 *self, const gdouble *timedata, + GstFFTF64Complex *freqdata); + +GST_FFT_API +void gst_fft_f64_inverse_fft (GstFFTF64 *self, const GstFFTF64Complex *freqdata, + gdouble *timedata); + +GST_FFT_API +void gst_fft_f64_window (GstFFTF64 *self, gdouble *timedata, GstFFTWindow window); + +G_END_DECLS + +#endif /* __GST_FFT_F64_H__ */ diff --git a/include/gst/fft/gstffts16.h b/include/gst/fft/gstffts16.h new file mode 100644 index 0000000000..b0f9b9271b --- /dev/null +++ b/include/gst/fft/gstffts16.h @@ -0,0 +1,71 @@ +/* GStreamer + * Copyright (C) <2007> Sebastian Dröge <slomo@circular-chaos.org> + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. + */ + +#ifndef __GST_FFT_S16_H__ +#define __GST_FFT_S16_H__ + +#include <glib.h> +#include <gst/gst.h> + +#include "gstfft.h" + +G_BEGIN_DECLS + +typedef struct _GstFFTS16 GstFFTS16; +typedef struct _GstFFTS16Complex GstFFTS16Complex; + +/* Copy of kiss_fft_s16_cpx for documentation reasons, + * do NOT change! */ + +/** + * GstFFTS16Complex: + * @r: Real part + * @i: Imaginary part + * + * Data type for complex numbers composed of + * signed 16 bit integers. + */ +struct _GstFFTS16Complex +{ + gint16 r; + gint16 i; +}; + +/* Functions */ + +GST_FFT_API +GstFFTS16 * gst_fft_s16_new (gint len, gboolean inverse); + +GST_FFT_API +void gst_fft_s16_free (GstFFTS16 *self); + +GST_FFT_API +void gst_fft_s16_fft (GstFFTS16 *self, const gint16 *timedata, + GstFFTS16Complex *freqdata); + +GST_FFT_API +void gst_fft_s16_inverse_fft (GstFFTS16 *self, const GstFFTS16Complex *freqdata, + gint16 *timedata); + +GST_FFT_API +void gst_fft_s16_window (GstFFTS16 *self, gint16 *timedata, GstFFTWindow window); + +G_END_DECLS + +#endif /* __GST_FFT_S16_H__ */ diff --git a/include/gst/fft/gstffts32.h b/include/gst/fft/gstffts32.h new file mode 100644 index 0000000000..29505c26ec --- /dev/null +++ b/include/gst/fft/gstffts32.h @@ -0,0 +1,71 @@ +/* GStreamer + * Copyright (C) <2007> Sebastian Dröge <slomo@circular-chaos.org> + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. + */ + +#ifndef __GST_FFT_S32_H__ +#define __GST_FFT_S32_H__ + +#include <glib.h> +#include <gst/gst.h> + +#include "gstfft.h" + +G_BEGIN_DECLS + +typedef struct _GstFFTS32 GstFFTS32; +typedef struct _GstFFTS32Complex GstFFTS32Complex; + +/* Copy of kiss_fft_s32_cpx for documentation reasons, + * do NOT change! */ + +/** + * GstFFTS32Complex: + * @r: Real part + * @i: Imaginary part + * + * Data type for complex numbers composed of + * signed 32 bit integers. + */ +struct _GstFFTS32Complex +{ + gint32 r; + gint32 i; +}; + +/* Functions */ + +GST_FFT_API +GstFFTS32 * gst_fft_s32_new (gint len, gboolean inverse); + +GST_FFT_API +void gst_fft_s32_free (GstFFTS32 *self); + +GST_FFT_API +void gst_fft_s32_fft (GstFFTS32 *self, const gint32 *timedata, + GstFFTS32Complex *freqdata); + +GST_FFT_API +void gst_fft_s32_inverse_fft (GstFFTS32 *self, const GstFFTS32Complex *freqdata, + gint32 *timedata); + +GST_FFT_API +void gst_fft_s32_window (GstFFTS32 *self, gint32 *timedata, GstFFTWindow window); + +G_END_DECLS + +#endif /* __GST_FFT_S32_H__ */ |