summaryrefslogtreecommitdiffstats
path: root/gst/audiofx/audiowsincband.h
Commit message (Collapse)AuthorAgeFilesLines
* gst/audiofx/: Use a custom mutex for protecting the instance fields instead ↵Sebastian Dröge2009-01-131-1/+3
| | | | | | | | | | | | | | | | | | | | | | | | | of the GstObject lock. Using the latter c... Original commit message from CVS: * gst/audiofx/audiochebband.c: (gst_audio_cheb_band_class_init), (gst_audio_cheb_band_init), (gst_audio_cheb_band_finalize), (gst_audio_cheb_band_set_property): * gst/audiofx/audiochebband.h: * gst/audiofx/audiocheblimit.c: (gst_audio_cheb_limit_class_init), (gst_audio_cheb_limit_init), (gst_audio_cheb_limit_finalize), (gst_audio_cheb_limit_set_property): * gst/audiofx/audiocheblimit.h: * gst/audiofx/audiowsincband.c: (gst_audio_wsincband_class_init), (gst_audio_wsincband_init), (gst_audio_wsincband_finalize), (gst_audio_wsincband_set_property): * gst/audiofx/audiowsincband.h: * gst/audiofx/audiowsinclimit.c: (gst_audio_wsinclimit_class_init), (gst_audio_wsinclimit_init), (gst_audio_wsinclimit_finalize), (gst_audio_wsinclimit_set_property): * gst/audiofx/audiowsinclimit.h: Use a custom mutex for protecting the instance fields instead of the GstObject lock. Using the latter can lead to deadlocks, especially with the FIR filters when updating the latency.
* gst/audiofx/: Implement a base class for generic audio FIR filters.Sebastian Dröge2009-01-111-16/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Original commit message from CVS: * gst/audiofx/Makefile.am: * gst/audiofx/audiofxbasefirfilter.c: (gst_audio_fx_base_fir_filter_dispose), (gst_audio_fx_base_fir_filter_base_init), (gst_audio_fx_base_fir_filter_class_init), (gst_audio_fx_base_fir_filter_init), (gst_audio_fx_base_fir_filter_push_residue), (gst_audio_fx_base_fir_filter_setup), (gst_audio_fx_base_fir_filter_transform), (gst_audio_fx_base_fir_filter_start), (gst_audio_fx_base_fir_filter_stop), (gst_audio_fx_base_fir_filter_query), (gst_audio_fx_base_fir_filter_query_type), (gst_audio_fx_base_fir_filter_event), (gst_audio_fx_base_fir_filter_set_kernel): * gst/audiofx/audiofxbasefirfilter.h: * gst/audiofx/audiofxbaseiirfilter.c: Implement a base class for generic audio FIR filters. * gst/audiofx/audiowsincband.c: (gst_gst_audio_wsincband_mode_get_type), (gst_gst_audio_wsincband_window_get_type), (gst_audio_wsincband_base_init), (gst_audio_wsincband_class_init), (gst_audio_wsincband_init), (gst_audio_wsincband_build_kernel), (gst_audio_wsincband_setup), (gst_audio_wsincband_set_property), (gst_audio_wsincband_get_property): * gst/audiofx/audiowsincband.h: * gst/audiofx/audiowsinclimit.c: (gst_audio_wsinclimit_mode_get_type), (gst_audio_wsinclimit_window_get_type), (gst_audio_wsinclimit_base_init), (gst_audio_wsinclimit_class_init), (gst_audio_wsinclimit_init), (gst_audio_wsinclimit_build_kernel), (gst_audio_wsinclimit_setup), (gst_audio_wsinclimit_set_property), (gst_audio_wsinclimit_get_property): * gst/audiofx/audiowsinclimit.h: * tests/check/elements/audiowsincband.c: (GST_START_TEST): * tests/check/elements/audiowsinclimit.c: (GST_START_TEST): Use this new base class for audiowsincband and audiowsinclimit. Also cleanup both elements.
* Move the lpwsinc and bpwsinc elements from gst-plugins-bad into the audiofx ↵Jan Schmidt2008-02-071-22/+21
| | | | | | | | | | | | | | | | | | | | | | | | plugin, and rename to audiowsinclimit and... Original commit message from CVS: * docs/plugins/Makefile.am: * docs/plugins/gst-plugins-good-plugins-docs.sgml: * docs/plugins/gst-plugins-good-plugins-sections.txt: * docs/plugins/gst-plugins-good-plugins.args: * docs/plugins/inspect/plugin-audiofx.xml: * gst/audiofx/Makefile.am: * gst/audiofx/audiofx.c: * gst/audiofx/audiowsincband.c: * gst/audiofx/audiowsincband.h: * gst/audiofx/audiowsinclimit.c: * gst/audiofx/audiowsinclimit.h: * tests/check/Makefile.am: * tests/check/elements/audiowsincband.c: * tests/check/elements/audiowsinclimit.c: Move the lpwsinc and bpwsinc elements from gst-plugins-bad into the audiofx plugin, and rename to audiowsinclimit and audiowsincband respectively. Fixes: #467666
* Use generator macros for the process functions for the different sample ↵Sebastian Dröge2007-08-171-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | types, add lower upper boundaries for the GOb... Original commit message from CVS: * gst/filter/gstbpwsinc.c: (gst_bpwsinc_class_init), (bpwsinc_set_property), (bpwsinc_get_property): * gst/filter/gstbpwsinc.h: * gst/filter/gstlpwsinc.c: (gst_lpwsinc_class_init), (gst_lpwsinc_init), (lpwsinc_build_kernel), (lpwsinc_set_property), (lpwsinc_get_property): * gst/filter/gstlpwsinc.h: * tests/check/elements/lpwsinc.c: (GST_START_TEST): Use generator macros for the process functions for the different sample types, add lower upper boundaries for the GObject properties so automatically generated UIs can use sliders and change frequency properties to floats to save a bit of memory, even ints would in theory be enough. Also rename frequency to cutoff for consistency reasons. * docs/plugins/gst-plugins-bad-plugins.args: * docs/plugins/gst-plugins-bad-plugins.signals: * docs/plugins/inspect/plugin-gstrtpmanager.xml: Regenerated for the above changes.
* gst/filter/gstbpwsinc.*: Implement latency query and only forward those ↵Sebastian Dröge2007-08-161-0/+4
| | | | | | | | | | | | | | | | | | | | samples downstream that actually contain the ... Original commit message from CVS: * gst/filter/gstbpwsinc.c: (gst_bpwsinc_class_init), (gst_bpwsinc_init), (process_32), (process_64), (bpwsinc_build_kernel), (bpwsinc_push_residue), (bpwsinc_transform), (bpwsinc_start), (bpwsinc_query), (bpwsinc_query_type), (bpwsinc_event), (bpwsinc_set_property): * gst/filter/gstbpwsinc.h: Implement latency query and only forward those samples downstream that actually contain the data we want, i.e. drop kernel_length/2 in the beginning and append kernel_length/2 (created by convolving the filter kernel with zeroes) to the end. * tests/check/elements/bpwsinc.c: (GST_START_TEST): Adjust the unit test for this slightly changed behaviour. * gst/filter/gstlpwsinc.c: (lpwsinc_build_kernel): Reset residue length only when actually creating a residue.
* Add docs for lpwsinc and bpwsinc and integrate them into the build system. ↵Sebastian Dröge2007-08-131-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | While doing that also update all other doc... Original commit message from CVS: * docs/plugins/Makefile.am: * docs/plugins/gst-plugins-bad-plugins-docs.sgml: * docs/plugins/gst-plugins-bad-plugins-sections.txt: * docs/plugins/gst-plugins-bad-plugins.args: * docs/plugins/gst-plugins-bad-plugins.signals: * docs/plugins/inspect/plugin-bz2.xml: * docs/plugins/inspect/plugin-cdxaparse.xml: * docs/plugins/inspect/plugin-dtsdec.xml: * docs/plugins/inspect/plugin-faac.xml: * docs/plugins/inspect/plugin-faad.xml: * docs/plugins/inspect/plugin-filter.xml: * docs/plugins/inspect/plugin-freeze.xml: * docs/plugins/inspect/plugin-gsm.xml: * docs/plugins/inspect/plugin-gstrtpmanager.xml: * docs/plugins/inspect/plugin-h264parse.xml: * docs/plugins/inspect/plugin-modplug.xml: * docs/plugins/inspect/plugin-mpeg2enc.xml: * docs/plugins/inspect/plugin-musepack.xml: * docs/plugins/inspect/plugin-musicbrainz.xml: * docs/plugins/inspect/plugin-nsfdec.xml: * docs/plugins/inspect/plugin-replaygain.xml: * docs/plugins/inspect/plugin-soundtouch.xml: * docs/plugins/inspect/plugin-spcdec.xml: * docs/plugins/inspect/plugin-spectrum.xml: * docs/plugins/inspect/plugin-speed.xml: * docs/plugins/inspect/plugin-tta.xml: * docs/plugins/inspect/plugin-videosignal.xml: * docs/plugins/inspect/plugin-xingheader.xml: * docs/plugins/inspect/plugin-xvid.xml: * gst/filter/gstbpwsinc.c: * gst/filter/gstbpwsinc.h: * gst/filter/gstlpwsinc.c: * gst/filter/gstlpwsinc.h: Add docs for lpwsinc and bpwsinc and integrate them into the build system. While doing that also update all other docs via make update in docs/plugins.
* gst/filter/gstbpwsinc.*: Add support for a bandreject mode and allow ↵Sebastian Dröge2007-08-101-1/+2
| | | | | | | | | | | | | | | specifying the window function that should be used. Original commit message from CVS: * gst/filter/gstbpwsinc.c: (gst_bpwsinc_mode_get_type), (gst_bpwsinc_window_get_type), (gst_bpwsinc_class_init), (gst_bpwsinc_init), (bpwsinc_build_kernel), (bpwsinc_set_property), (bpwsinc_get_property): * gst/filter/gstbpwsinc.h: Add support for a bandreject mode and allow specifying the window function that should be used. * gst/filter/gstlpwsinc.c: And another small formatting fix.
* gst/filter/gstbpwsinc.*: Apply the same changes to the bandpass filter:Sebastian Dröge2007-08-101-10/+10
| | | | | | | | | | | | | | | | | | | | | | | | Original commit message from CVS: * gst/filter/gstbpwsinc.c: (gst_bpwsinc_class_init), (gst_bpwsinc_init), (process_32), (process_64), (bpwsinc_build_kernel), (bpwsinc_setup), (bpwsinc_get_unit_size), (bpwsinc_transform), (bpwsinc_set_property), (bpwsinc_get_property): * gst/filter/gstbpwsinc.h: Apply the same changes to the bandpass filter: - Support double input - Fix processing for input with >1 channels - Specify frequency in Hz - Specify actual filter kernel length - Use transform instead of transform_ip as we're working out of place anyway - Factor out filter kernel generation and update the filter kernel when the properties are set Fix bandpass filter kernel generation to actually generate a bandpass filter by creating a highpass instead of a second lowpass. * gst/filter/gstlpwsinc.c: (gst_lpwsinc_class_init): Small formatting fix.
* gst/filter/: Use GstAudioFilter as base class and don't leak the memory of ↵Sebastian Dröge2007-08-081-3/+3
| | | | | | | | | | | | | | | | | the filter kernel and residue. Original commit message from CVS: * gst/filter/Makefile.am: * gst/filter/gstbpwsinc.c: (gst_bpwsinc_dispose), (gst_bpwsinc_base_init), (gst_bpwsinc_class_init), (gst_bpwsinc_init), (bpwsinc_setup): * gst/filter/gstbpwsinc.h: * gst/filter/gstlpwsinc.c: (gst_lpwsinc_dispose), (gst_lpwsinc_base_init), (gst_lpwsinc_class_init), (gst_lpwsinc_init), (lpwsinc_setup): * gst/filter/gstlpwsinc.h: Use GstAudioFilter as base class and don't leak the memory of the filter kernel and residue.
* gst/filter/: Don't forget new files.Wim Taymans2006-07-101-0/+80
Original commit message from CVS: * gst/filter/gstbpwsinc.h: * gst/filter/gstiir.h: * gst/filter/gstlpwsinc.h: Don't forget new files.