Add libgstfft, a FFT library based on Kiss FFT which is
Original commit message from CVS:
Reviewed by: Stefan Kost <ensonic@users.sf.net>
* configure.ac:
* gst-libs/gst/Makefile.am:
* gst-libs/gst/fft/Makefile.am:
* gst-libs/gst/fft/_kiss_fft_guts_f32.h:
* gst-libs/gst/fft/_kiss_fft_guts_f64.h:
* gst-libs/gst/fft/_kiss_fft_guts_s16.h:
* gst-libs/gst/fft/_kiss_fft_guts_s32.h:
* gst-libs/gst/fft/gstfft.c: (gst_fft_next_fast_length):
* gst-libs/gst/fft/gstfft.h:
* gst-libs/gst/fft/gstfftf32.c: (gst_fft_f32_new),
(gst_fft_f32_fft), (gst_fft_f32_inverse_fft), (gst_fft_f32_free),
(gst_fft_f32_window), (gst_fft_f32_magnitude), (gst_fft_f32_phase):
* gst-libs/gst/fft/gstfftf32.h:
* gst-libs/gst/fft/gstfftf64.c: (gst_fft_f64_new),
(gst_fft_f64_fft), (gst_fft_f64_inverse_fft), (gst_fft_f64_free),
(gst_fft_f64_window), (gst_fft_f64_magnitude), (gst_fft_f64_phase):
* gst-libs/gst/fft/gstfftf64.h:
* gst-libs/gst/fft/gstffts16.c: (gst_fft_s16_new),
(gst_fft_s16_fft), (gst_fft_s16_inverse_fft), (gst_fft_s16_free),
(gst_fft_s16_window), (gst_fft_s16_magnitude), (gst_fft_s16_phase):
* gst-libs/gst/fft/gstffts16.h:
* gst-libs/gst/fft/gstffts32.c: (gst_fft_s32_new),
(gst_fft_s32_fft), (gst_fft_s32_inverse_fft), (gst_fft_s32_free),
(gst_fft_s32_window), (gst_fft_s32_magnitude), (gst_fft_s32_phase):
* gst-libs/gst/fft/gstffts32.h:
* gst-libs/gst/fft/kiss_fft_f32.c: (kf_bfly2), (kf_bfly4),
(kf_bfly3), (kf_bfly5), (kf_bfly_generic), (kf_work), (kf_factor),
(kiss_fft_f32_alloc), (kiss_fft_f32_stride), (kiss_fft_f32),
(kiss_fft_f32_cleanup), (kiss_fft_f32_next_fast_size):
* gst-libs/gst/fft/kiss_fft_f32.h:
* gst-libs/gst/fft/kiss_fft_f64.c: (kf_bfly2), (kf_bfly4),
(kf_bfly3), (kf_bfly5), (kf_bfly_generic), (kf_work), (kf_factor),
(kiss_fft_f64_alloc), (kiss_fft_f64_stride), (kiss_fft_f64),
(kiss_fft_f64_cleanup), (kiss_fft_f64_next_fast_size):
* gst-libs/gst/fft/kiss_fft_f64.h:
* gst-libs/gst/fft/kiss_fft_s16.c: (kf_bfly2), (kf_bfly4),
(kf_bfly3), (kf_bfly5), (kf_bfly_generic), (kf_work), (kf_factor),
(kiss_fft_s16_alloc), (kiss_fft_s16_stride), (kiss_fft_s16),
(kiss_fft_s16_cleanup), (kiss_fft_s16_next_fast_size):
* gst-libs/gst/fft/kiss_fft_s16.h:
* gst-libs/gst/fft/kiss_fft_s32.c: (kf_bfly2), (kf_bfly4),
(kf_bfly3), (kf_bfly5), (kf_bfly_generic), (kf_work), (kf_factor),
(kiss_fft_s32_alloc), (kiss_fft_s32_stride), (kiss_fft_s32),
(kiss_fft_s32_cleanup), (kiss_fft_s32_next_fast_size):
* gst-libs/gst/fft/kiss_fft_s32.h:
* gst-libs/gst/fft/kiss_fftr_f32.c: (kiss_fftr_f32_alloc),
(kiss_fftr_f32), (kiss_fftri_f32):
* gst-libs/gst/fft/kiss_fftr_f32.h:
* gst-libs/gst/fft/kiss_fftr_f64.c: (kiss_fftr_f64_alloc),
(kiss_fftr_f64), (kiss_fftri_f64):
* gst-libs/gst/fft/kiss_fftr_f64.h:
* gst-libs/gst/fft/kiss_fftr_s16.c: (kiss_fftr_s16_alloc),
(kiss_fftr_s16), (kiss_fftri_s16):
* gst-libs/gst/fft/kiss_fftr_s16.h:
* gst-libs/gst/fft/kiss_fftr_s32.c: (kiss_fftr_s32_alloc),
(kiss_fftr_s32), (kiss_fftri_s32):
* gst-libs/gst/fft/kiss_fftr_s32.h:
* gst-libs/gst/fft/kiss_version:
* pkgconfig/gstreamer-plugins-base-uninstalled.pc.in:
* pkgconfig/gstreamer-plugins-base.pc.in:
Add libgstfft, a FFT library based on Kiss FFT which is
BSD licensed. Supported sample formats are int16, int32,
float and double. For those formats a real FFT and IFFT
can be done, different windowing functions can be applied
and functions for extracting the magnitude and phase exist.
Fixes #468619.
* docs/libs/Makefile.am:
* docs/libs/gst-plugins-base-libs-docs.sgml:
* docs/libs/gst-plugins-base-libs-sections.txt:
Integrate libgstfft into the docs.
* tests/check/Makefile.am:
* tests/check/libs/fft.c: (GST_START_TEST), (fft_suite), (main):
Add unit tests for libgstfft, currently only testing the FFT.
Unit tests for IFFT will follow soon.
2007-09-06 07:00:36 +00:00
|
|
|
lib_LTLIBRARIES = libgstfft-@GST_MAJORMINOR@.la
|
|
|
|
|
|
|
|
libgstfft_@GST_MAJORMINOR@_includedir = $(includedir)/gstreamer-@GST_MAJORMINOR@/gst/fft
|
|
|
|
|
|
|
|
libgstfft_@GST_MAJORMINOR@_include_HEADERS = \
|
|
|
|
gstfft.h \
|
|
|
|
gstffts16.h \
|
|
|
|
gstffts32.h \
|
|
|
|
gstfftf32.h \
|
|
|
|
gstfftf64.h
|
|
|
|
|
|
|
|
noinst_HEADERS = \
|
|
|
|
kiss_fft_s16.h \
|
|
|
|
kiss_fft_s32.h \
|
|
|
|
kiss_fft_f32.h \
|
|
|
|
kiss_fft_f64.h \
|
|
|
|
kiss_fftr_s16.h \
|
|
|
|
kiss_fftr_s32.h \
|
|
|
|
kiss_fftr_f32.h \
|
|
|
|
kiss_fftr_f64.h \
|
|
|
|
_kiss_fft_guts_s16.h \
|
|
|
|
_kiss_fft_guts_s32.h \
|
|
|
|
_kiss_fft_guts_f32.h \
|
|
|
|
_kiss_fft_guts_f64.h
|
|
|
|
|
|
|
|
libgstfft_@GST_MAJORMINOR@_la_SOURCES = \
|
|
|
|
gstfft.c \
|
|
|
|
gstffts16.c \
|
|
|
|
gstffts32.c \
|
|
|
|
gstfftf32.c \
|
|
|
|
gstfftf64.c \
|
|
|
|
kiss_fft_s16.c \
|
|
|
|
kiss_fft_s32.c \
|
|
|
|
kiss_fft_f32.c \
|
|
|
|
kiss_fft_f64.c \
|
|
|
|
kiss_fftr_s16.c \
|
|
|
|
kiss_fftr_s32.c \
|
|
|
|
kiss_fftr_f32.c \
|
|
|
|
kiss_fftr_f64.c
|
|
|
|
|
|
|
|
libgstfft_@GST_MAJORMINOR@_la_LIBADD = $(GST_LIBS) $(LIBM)
|
|
|
|
libgstfft_@GST_MAJORMINOR@_la_CFLAGS = $(GST_CFLAGS)
|
|
|
|
libgstfft_@GST_MAJORMINOR@_la_LDFLAGS = $(GST_LIB_LDFLAGS) $(GST_ALL_LDFLAGS) $(GST_LT_LDFLAGS)
|
|
|
|
|
|
|
|
EXTRA_DIST = kiss_version
|
|
|
|
|
2009-09-05 09:04:19 +00:00
|
|
|
if HAVE_INTROSPECTION
|
|
|
|
BUILT_GIRSOURCES = GstFft-@GST_MAJORMINOR@.gir
|
|
|
|
|
|
|
|
gir_headers=$(patsubst %,$(srcdir)/%, $(libgstfft_@GST_MAJORMINOR@_include_HEADERS))
|
|
|
|
gir_sources=$(patsubst %,$(srcdir)/%, $(libgstfft_@GST_MAJORMINOR@_la_SOURCES))
|
|
|
|
gir_cincludes=$(patsubst %,--c-include='gst/fft/%',$(libgstfft_@GST_MAJORMINOR@_include_HEADERS))
|
|
|
|
|
|
|
|
GstFft-@GST_MAJORMINOR@.gir: $(INTROSPECTION_SCANNER) libgstfft-@GST_MAJORMINOR@.la
|
2009-09-12 12:01:20 +00:00
|
|
|
PKG_CONFIG_PATH="$(PKG_CONFIG_PATH):$(top_builddir)/pkgconfig" \
|
|
|
|
$(INTROSPECTION_SCANNER) -v --namespace GstFft \
|
2009-09-05 09:04:19 +00:00
|
|
|
--nsversion=@GST_MAJORMINOR@ \
|
2009-09-05 10:31:47 +00:00
|
|
|
--strip-prefix=Gst \
|
2009-09-05 09:04:19 +00:00
|
|
|
$(gir_cincludes) \
|
|
|
|
--add-include-path=`$(PKG_CONFIG) --variable=libdir gstreamer-0.10`/gst \
|
|
|
|
--library=gstfft-0.10 \
|
|
|
|
--include=Gst-0.10 \
|
|
|
|
--libtool="$(top_builddir)/libtool" \
|
|
|
|
--pkg gstreamer-0.10 \
|
|
|
|
--output $@ \
|
|
|
|
$(gir_headers) \
|
|
|
|
$(gir_sources)
|
|
|
|
|
|
|
|
# INTROSPECTION_GIRDIR/INTROSPECTION_TYPELIBDIR aren't the right place to
|
|
|
|
# install anything - we need to install inside our prefix.
|
|
|
|
girdir = $(datadir)/gir-1.0
|
|
|
|
gir_DATA = $(BUILT_GIRSOURCES)
|
|
|
|
|
|
|
|
typelibsdir = $(libdir)/girepository-1.0/
|
|
|
|
|
|
|
|
typelibs_DATA = $(BUILT_GIRSOURCES:.gir=.typelib)
|
|
|
|
|
|
|
|
%.typelib: %.gir $(INTROSPECTION_COMPILER)
|
2009-09-05 09:49:41 +00:00
|
|
|
$(INTROSPECTION_COMPILER) --includedir=$(srcdir) --includedir=$(builddir) --includedir=`$(PKG_CONFIG) --variable=libdir gstreamer-0.10`/gst $(INTROSPECTION_COMPILER_OPTS) $< -o $(@F)
|
2009-09-05 09:04:19 +00:00
|
|
|
|
|
|
|
CLEANFILES = $(BUILT_GIRSOURCES) $(typelibs_DATA)
|
|
|
|
endif
|