summaryrefslogtreecommitdiffstats
path: root/gst/audiofx
Commit message (Collapse)AuthorAgeFilesLines
* Make stuff compile with GST_DISABLE_GST_DEBUG.Tim-Philipp Müller2008-08-301-0/+4
| | | | | | | | | | | | | Original commit message from CVS: * ext/raw1394/gsthdv1394src.c: (gst_hdv1394src_create): * gst/alpha/gstalpha.c: (gst_alpha_get_unit_size): * gst/audiofx/audiocheblimit.c: (generate_coefficients): * gst/avi/gstavidemux.c: (gst_avi_demux_src_convert): * gst/matroska/ebml-read.c: (gst_ebml_read_element_id), (gst_ebml_read_element_length): * gst/matroska/matroska-demux.c: (gst_matroska_demux_check_subtitle_buffer): Make stuff compile with GST_DISABLE_GST_DEBUG.
* Rename audiovoice to audiokaraoke and add it to the docs.Stefan Kost2008-05-284-59/+59
| | | | | | | | | | | | | | | | | 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/gst-plugins-good-plugins.hierarchy: * docs/plugins/inspect/plugin-audiofx.xml: * gst/audiofx/Makefile.am: * gst/audiofx/audiofx.c: * gst/audiofx/audiokaraoke.c: * gst/audiofx/audiokaraoke.h: * gst/audiofx/audiovoice.c: * gst/audiofx/audiovoice.h: Rename audiovoice to audiokaraoke and add it to the docs.
* gst/audiofx/: Add simple voice removal element. Yay karaoke.Wim Taymans2008-05-264-0/+434
| | | | | | | | | | | | | | Original commit message from CVS: * gst/audiofx/Makefile.am: * gst/audiofx/audiofx.c: (plugin_init): * gst/audiofx/audiovoice.c: (gst_audio_voice_base_init), (gst_audio_voice_class_init), (gst_audio_voice_init), (update_filter), (gst_audio_voice_set_property), (gst_audio_voice_get_property), (gst_audio_voice_setup), (gst_audio_voice_transform_int), (gst_audio_voice_transform_float), (gst_audio_voice_transform_ip): * gst/audiofx/audiovoice.h: Add simple voice removal element. Yay karaoke.
* gst/audiofx/audiofx.c: Use GST_LICENSE, GST_PACKAGE_NAME and ↵Sebastian Dröge2008-03-131-1/+1
| | | | | | | | | GST_PACKAGE_ORIGIN instead of hardcoding values. Original commit message from CVS: * gst/audiofx/audiofx.c: Use GST_LICENSE, GST_PACKAGE_NAME and GST_PACKAGE_ORIGIN instead of hardcoding values.
* Check for sinh(), cosh() and asinh() and define our own implementations if ↵Sebastian Dröge2008-03-074-1/+61
| | | | | | | | | | | | | they're not available. Fixes bug #520880. Original commit message from CVS: * configure.ac: * gst/audiofx/Makefile.am: * gst/audiofx/audiochebband.c: * gst/audiofx/audiocheblimit.c: * gst/audiofx/math_compat.h: Check for sinh(), cosh() and asinh() and define our own implementations if they're not available. Fixes bug #520880.
* gst/audiofx/: Fix long description of audiofx elements. Fixes bug #515457.Sebastian Dröge2008-02-108-10/+10
| | | | | | | | | | | | | Original commit message from CVS: * gst/audiofx/audioamplify.c: * gst/audiofx/audiochebband.c: * gst/audiofx/audiocheblimit.c: * gst/audiofx/audiodynamic.c: * gst/audiofx/audioinvert.c: * gst/audiofx/audiopanorama.c: * gst/audiofx/audiowsincband.c: * gst/audiofx/audiowsinclimit.c: Fix long description of audiofx elements. Fixes bug #515457.
* add missing header files for distingChristian Schaller2008-02-081-1/+3
| | | | | Original commit message from CVS: add missing header files for disting
* Move the lpwsinc and bpwsinc elements from gst-plugins-bad into the audiofx ↵Jan Schmidt2008-02-076-187/+202
| | | | | | | | | | | | | | | | | | | | | | | | 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
* gst/filter/gstlpwsinc.c: Fix typo in the long description of the element.Sebastian Dröge2008-02-071-1/+1
| | | | | | Original commit message from CVS: * gst/filter/gstlpwsinc.c: Fix typo in the long description of the element.
* Rename audiochebyshevfreqband -> audiochebband and audiochebyshevfreqlimit ↵Jan Schmidt2008-02-0610-2070/+158
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | -> audiocheblimit and do the requisite CVS... 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/audiochebband.c: * gst/audiofx/audiochebband.h: * gst/audiofx/audiocheblimit.c: * gst/audiofx/audiocheblimit.h: * gst/audiofx/audiochebyshevfreqband.c: * gst/audiofx/audiochebyshevfreqband.h: * gst/audiofx/audiochebyshevfreqlimit.c: * gst/audiofx/audiochebyshevfreqlimit.h: * gst/audiofx/audiofx.c: * tests/check/Makefile.am: * tests/check/elements/.cvsignore: * tests/check/elements/audiochebband.c: * tests/check/elements/audiocheblimit.c: * tests/check/elements/audiochebyshevfreqband.c: * tests/check/elements/audiochebyshevfreqlimit.c: Rename audiochebyshevfreqband -> audiochebband and audiochebyshevfreqlimit -> audiocheblimit and do the requisite CVS surgery. Closes: #491811
* gst/filter/: Don't implement get_unit_size() ourselves, the GstAudioFilter ↵Sebastian Dröge2008-01-262-42/+0
| | | | | | | | | | base class already does this for us. Original commit message from CVS: * gst/filter/gstbpwsinc.c: (gst_bpwsinc_class_init): * gst/filter/gstlpwsinc.c: (gst_lpwsinc_class_init): Don't implement get_unit_size() ourselves, the GstAudioFilter base class already does this for us.
* Make elements GST_BUFFER_FLAG_GAP aware and call ↵Sebastian Dröge2008-01-088-21/+37
| | | | | | | | | | | | | | | | | | | | | | | | | | gst_base_transform_set_gap_aware for this. Original commit message from CVS: * configure.ac: * gst/audiofx/audioamplify.c: (gst_audio_amplify_clipping_method_get_type), (gst_audio_amplify_init), (gst_audio_amplify_transform_ip): * gst/audiofx/audiodynamic.c: (gst_audio_dynamic_init), (gst_audio_dynamic_transform_ip): * gst/audiofx/audioinvert.c: (gst_audio_invert_init), (gst_audio_invert_transform_ip): * gst/audiofx/audiopanorama.c: (gst_audio_panorama_init), (gst_audio_panorama_transform): * gst/level/gstlevel.c: (gst_level_init): Make elements GST_BUFFER_FLAG_GAP aware and call gst_base_transform_set_gap_aware for this. Bump core requirement to CVS. * gst/audiofx/audiochebyshevfreqband.c: (gst_audio_chebyshev_freq_band_transform_ip): * gst/audiofx/audiochebyshevfreqlimit.c: (gst_audio_chebyshev_freq_limit_transform_ip): Also sync GObject properties to the controller if operating in passthrough mode.
* gst/filter/: The transform() methods are not called in passthrough mode so ↵Sebastian Dröge2007-12-062-8/+0
| | | | | | | | | | there's no need for checking if the elemen... Original commit message from CVS: * gst/filter/gstbpwsinc.c: (bpwsinc_transform): * gst/filter/gstlpwsinc.c: (lpwsinc_transform): The transform() methods are not called in passthrough mode so there's no need for checking if the element is in passthrough mode.
* gst/filter/: Sync the GObject properties with the controller even in ↵Sebastian Dröge2007-12-062-9/+8
| | | | | | | | | | passthrough mode to get consistent property values. Original commit message from CVS: * gst/filter/gstbpwsinc.c: (bpwsinc_transform): * gst/filter/gstlpwsinc.c: (lpwsinc_transform): Sync the GObject properties with the controller even in passthrough mode to get consistent property values.
* gst/audiofx/: The transform_ip() methods should do nothing if in passthrough ↵Sebastian Dröge2007-12-068-18/+15
| | | | | | | | | | | | | | | | | | | mode. Original commit message from CVS: * gst/audiofx/audioamplify.c: (gst_audio_amplify_transform_ip): * gst/audiofx/audiochebyshevfreqband.c: (gst_audio_chebyshev_freq_band_transform_ip): * gst/audiofx/audiochebyshevfreqlimit.c: (gst_audio_chebyshev_freq_limit_transform_ip): * gst/audiofx/audiodynamic.c: (gst_audio_dynamic_transform_ip): * gst/audiofx/audioinvert.c: (gst_audio_invert_transform_ip): The transform_ip() methods should do nothing if in passthrough mode. It might get non-writable buffers in that case but the buffer might as well be writable. * gst/audiofx/audiopanorama.c: (gst_audio_panorama_transform): The transform() methods won't be called in passthrough mode and otherwise the buffer is always writable so don't check here.
* gst/filter/: Post a GST_MESSAGE_LATENCY if the latency changes.Sebastian Dröge2007-11-212-0/+4
| | | | | | | Original commit message from CVS: * gst/filter/gstbpwsinc.c: (bpwsinc_set_property): * gst/filter/gstlpwsinc.c: (lpwsinc_set_property): Post a GST_MESSAGE_LATENCY if the latency changes.
* gst/: Fix compiler warnings shown with Forte.Jan Schmidt2007-09-171-1/+1
| | | | | | | | | | Original commit message from CVS: * gst/audiofx/audiodynamic.c: (gst_audio_dynamic_class_init): * gst/rtsp/gstrtspsrc.c: (gst_rtspsrc_create_stream), (new_session_pad), (request_pt_map), (gst_rtspsrc_do_stream_eos), (gst_rtspsrc_loop_interleaved), (gst_rtspsrc_parse_rtpinfo), (gst_rtspsrc_handle_message): Fix compiler warnings shown with Forte.
* gst/audiofx/Makefile.am: Dist the right file.Jan Schmidt2007-08-271-1/+1
| | | | | | Original commit message from CVS: * gst/audiofx/Makefile.am: Dist the right file.
* gst/filter/: Add small comparision with the chebyshev filters in the docs.Sebastian Dröge2007-08-192-2/+10
| | | | | | | Original commit message from CVS: * gst/filter/gstbpwsinc.c: * gst/filter/gstlpwsinc.c: Add small comparision with the chebyshev filters in the docs.
* gst/audiofx/: Add small comparision with the windowed sinc filters in the docs.Sebastian Dröge2007-08-194-0/+20
| | | | | | | Original commit message from CVS: * gst/audiofx/audiochebyshevfreqband.c: * gst/audiofx/audiochebyshevfreqlimit.c: Add small comparision with the windowed sinc filters in the docs.
* Use generator macros for the process functions for the different sample ↵Sebastian Dröge2007-08-174-178/+110
| | | | | | | | | | | | | | | | | | | | | | | | 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/audiofx/: Use generator macros for the process functions for the ↵Sebastian Dröge2007-08-174-114/+120
| | | | | | | | | | | | | | | | | different sample types, add lower upper boundari... Original commit message from CVS: * gst/audiofx/audiochebyshevfreqband.c: (gst_audio_chebyshev_freq_band_class_init): * gst/audiofx/audiochebyshevfreqlimit.c: (gst_audio_chebyshev_freq_limit_class_init): 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 add a note about the number of poles as a too high number of poles combined with very low or very high frequencies will produce only noise. * docs/plugins/gst-plugins-good-plugins.args: Regenerated for the property changes.
* gst/filter/gstbpwsinc.*: Implement latency query and only forward those ↵Sebastian Dröge2007-08-163-8/+300
| | | | | | | | | | | | | | | | | | | | 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.
* gst/audiofx/: Add Chebyshev lowpass/highpass and bandpass/bandreject elements.Sebastian Dröge2007-08-1610-4/+3793
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Original commit message from CVS: reviewed by: Stefan Kost <ensonic@users.sf.net> * gst/audiofx/Makefile.am: * gst/audiofx/audiochebyshevfreqband.c: (gst_audio_chebyshev_freq_band_mode_get_type), (gst_audio_chebyshev_freq_band_base_init), (gst_audio_chebyshev_freq_band_dispose), (gst_audio_chebyshev_freq_band_class_init), (gst_audio_chebyshev_freq_band_init), (generate_biquad_coefficients), (calculate_gain), (generate_coefficients), (gst_audio_chebyshev_freq_band_set_property), (gst_audio_chebyshev_freq_band_get_property), (gst_audio_chebyshev_freq_band_setup), (process), (process_64), (process_32), (gst_audio_chebyshev_freq_band_transform_ip), (gst_audio_chebyshev_freq_band_start): * gst/audiofx/audiochebyshevfreqband.h: * gst/audiofx/audiochebyshevfreqlimit.c: (gst_audio_chebyshev_freq_limit_mode_get_type), (gst_audio_chebyshev_freq_limit_base_init), (gst_audio_chebyshev_freq_limit_dispose), (gst_audio_chebyshev_freq_limit_class_init), (gst_audio_chebyshev_freq_limit_init), (generate_biquad_coefficients), (calculate_gain), (generate_coefficients), (gst_audio_chebyshev_freq_limit_set_property), (gst_audio_chebyshev_freq_limit_get_property), (gst_audio_chebyshev_freq_limit_setup), (process), (process_64), (process_32), (gst_audio_chebyshev_freq_limit_transform_ip), (gst_audio_chebyshev_freq_limit_start): * gst/audiofx/audiochebyshevfreqlimit.h: * gst/audiofx/audiofx.c: (plugin_init): Add Chebyshev lowpass/highpass and bandpass/bandreject elements. Fixes #464800. * tests/check/Makefile.am: * tests/check/elements/.cvsignore: * tests/check/elements/audiochebyshevfreqband.c: (setup_audiochebyshevfreqband), (cleanup_audiochebyshevfreqband), (GST_START_TEST), (audiochebyshevfreqband_suite), (main): * tests/check/elements/audiochebyshevfreqlimit.c: (setup_audiochebyshevfreqlimit), (cleanup_audiochebyshevfreqlimit), (GST_START_TEST), (audiochebyshevfreqlimit_suite), (main): Add unit tests for the chebyshev filters. * 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-1394.xml: * docs/plugins/inspect/plugin-audiofx.xml: * docs/plugins/inspect/plugin-dv.xml: * docs/plugins/inspect/plugin-flac.xml: * docs/plugins/inspect/plugin-jpeg.xml: * docs/plugins/inspect/plugin-png.xml: * docs/plugins/inspect/plugin-rtp.xml: * docs/plugins/inspect/plugin-shout2send.xml: * docs/plugins/inspect/plugin-wavpack.xml: And add docs for the chebyshev filters. While doing that also run make update in docs/plugins.
* gst/filter/gstlpwsinc.*: Implement latency query and only forward those ↵Sebastian Dröge2007-08-162-6/+295
| | | | | | | | | | | | | | | | | | samples downstream that actually contain the ... Original commit message from CVS: * gst/filter/gstlpwsinc.c: (gst_lpwsinc_class_init), (gst_lpwsinc_init), (process_32), (process_64), (lpwsinc_build_kernel), (lpwsinc_push_residue), (lpwsinc_transform), (lpwsinc_start), (lpwsinc_query), (lpwsinc_query_type), (lpwsinc_event), (lpwsinc_set_property): * gst/filter/gstlpwsinc.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/lpwsinc.c: (GST_START_TEST): Adjust the unit test for this slightly changed behaviour.
* Add docs for lpwsinc and bpwsinc and integrate them into the build system. ↵Sebastian Dröge2007-08-134-3/+57
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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/: Improve debugging a bit.Sebastian Dröge2007-08-122-11/+15
| | | | | | | Original commit message from CVS: * gst/filter/gstbpwsinc.c: (bpwsinc_build_kernel): * gst/filter/gstlpwsinc.c: (lpwsinc_build_kernel): Improve debugging a bit.
* gst/filter/: Reset the residue in BaseTransform::start to get a clean ↵Sebastian Dröge2007-08-122-2/+39
| | | | | | | | | | | | residue on stream changes. Original commit message from CVS: * gst/filter/gstbpwsinc.c: (gst_bpwsinc_class_init), (bpwsinc_start): * gst/filter/gstlpwsinc.c: (gst_lpwsinc_class_init), (lpwsinc_start): Reset the residue in BaseTransform::start to get a clean residue on stream changes.
* gst/filter/: Fix processing with buffer sizes that are larger than the ↵Sebastian Dröge2007-08-112-8/+48
| | | | | | | | | | filter kernel size. Original commit message from CVS: * gst/filter/gstbpwsinc.c: (process_32), (process_64): * gst/filter/gstlpwsinc.c: (process_32), (process_64): Fix processing with buffer sizes that are larger than the filter kernel size.
* gst/filter/gstbpwsinc.c: Fix a segfault with more than one channel and don't ↵Sebastian Dröge2007-08-101-1/+4
| | | | | | | | | rebuild the kernel & residue with every ... Original commit message from CVS: * gst/filter/gstbpwsinc.c: (bpwsinc_build_kernel): Fix a segfault with more than one channel and don't rebuild the kernel & residue with every buffer.
* gst/filter/gstbpwsinc.*: Add support for a bandreject mode and allow ↵Sebastian Dröge2007-08-103-16/+111
| | | | | | | | | | | | | | | 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-103-122/+226
| | | | | | | | | | | | | | | | | | | | | | | | 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/gstlpwsinc.*: Specify the actual filter length instead of a weird ↵Sebastian Dröge2007-08-102-28/+29
| | | | | | | | | | | | | | 2N+1. Setting the property will round to... Original commit message from CVS: * gst/filter/gstlpwsinc.c: (gst_lpwsinc_class_init), (gst_lpwsinc_init), (process_32), (process_64), (lpwsinc_build_kernel), (lpwsinc_set_property), (lpwsinc_get_property): * gst/filter/gstlpwsinc.h: Specify the actual filter length instead of a weird 2N+1. Setting the property will round to the next odd number. Also remove now obsolete FIXMEs.
* gst/filter/gstlpwsinc.*: Allow choosing between hamming and blackman window. ↵Sebastian Dröge2007-08-102-3/+51
| | | | | | | | | | | | | | The blackman window provides a better st... Original commit message from CVS: * gst/filter/gstlpwsinc.c: (gst_lpwsinc_window_get_type), (gst_lpwsinc_class_init), (gst_lpwsinc_init), (lpwsinc_build_kernel), (lpwsinc_set_property), (lpwsinc_get_property): * gst/filter/gstlpwsinc.h: Allow choosing between hamming and blackman window. The blackman window provides a better stopband attenuation but a bit slower rolloff.
* gst/filter/gstlpwsinc.*: Add a highpass mode.Sebastian Dröge2007-08-102-10/+58
| | | | | | | | | | Original commit message from CVS: * gst/filter/gstlpwsinc.c: (gst_lpwsinc_mode_get_type), (gst_lpwsinc_class_init), (process_32), (process_64), (lpwsinc_build_kernel), (lpwsinc_set_property), (lpwsinc_get_property): * gst/filter/gstlpwsinc.h: Add a highpass mode.
* gst/filter/gstlpwsinc.c: Fix processing if the input has more than one channel.Sebastian Dröge2007-08-101-18/+36
| | | | | | | Original commit message from CVS: * gst/filter/gstlpwsinc.c: (process_32), (process_64), (lpwsinc_build_kernel): Fix processing if the input has more than one channel.
* gst/filter/gstbpwsinc.c: "this" is a C++ keyword, use "self" instead.Sebastian Dröge2007-08-092-58/+64
| | | | | | | | | | | Original commit message from CVS: * gst/filter/gstbpwsinc.c: (gst_bpwsinc_dispose), (gst_bpwsinc_init), (bpwsinc_setup), (bpwsinc_transform_ip), (bpwsinc_set_property), (bpwsinc_get_property): "this" is a C++ keyword, use "self" instead. Add TODOs and FIXMEs and remove two wrong FIXMEs. * gst/filter/gstlpwsinc.c: Add FIXMEs and a new TODO.
* gst/filter/gstlpwsinc.*: Add double support, replace "this" with "self" as ↵Sebastian Dröge2007-08-092-103/+170
| | | | | | | | | | | | | | | | | | | | | | | the former is a C++ keyword. Original commit message from CVS: * gst/filter/gstlpwsinc.c: (gst_lpwsinc_dispose), (gst_lpwsinc_class_init), (gst_lpwsinc_init), (process_32), (process_64), (lpwsinc_build_kernel), (lpwsinc_setup), (lpwsinc_get_unit_size), (lpwsinc_transform), (lpwsinc_set_property), (lpwsinc_get_property): * gst/filter/gstlpwsinc.h: Add double support, replace "this" with "self" as the former is a C++ keyword. Implement the frequency property in Hz instead of fraction of sampling frequency. Remove some unecessary FIXMEs and add some TODOs, add some required locking and refactor the kernel generation into a separate function that is also called when the properties change now. And use BaseTransform::transform instead of transform_ip as the convolution is done out of place anyway. Should be done in place later.
* gst/filter/: Use GstAudioFilter as base class and don't leak the memory of ↵Sebastian Dröge2007-08-084-76/+86
| | | | | | | | | | | | | | | | | 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/audiofx/audioamplify.h: Also remove a now unecessary variable here.Sebastian Dröge2007-07-261-1/+0
| | | | | | Original commit message from CVS: * gst/audiofx/audioamplify.h: Also remove a now unecessary variable here.
* gst/audiofx/: Don't save format information ourselves, this is already saved inSebastian Dröge2007-07-265-18/+8
| | | | | | | | | | | | | | | Original commit message from CVS: * gst/audiofx/audioamplify.c: (gst_audio_amplify_init), (gst_audio_amplify_setup), (gst_audio_amplify_transform_ip): * gst/audiofx/audiodynamic.c: (gst_audio_dynamic_set_process_function), (gst_audio_dynamic_init), (gst_audio_dynamic_setup), (gst_audio_dynamic_transform_ip): * gst/audiofx/audiodynamic.h: * gst/audiofx/audioinvert.c: (gst_audio_invert_init), (gst_audio_invert_setup), (gst_audio_invert_transform_ip): * gst/audiofx/audioinvert.h: Don't save format information ourselves, this is already saved in GstAudioFilter.
* configure.ac: Depend on gstreamer-0.10.12.1. gst/equalizer/gstiirequalizer.c ↵Stefan Kost2007-05-221-1/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | (ARG_BAND_WIDTH, _do_init, ARG_GAIN, _Gs... Original commit message from CVS: * configure.ac: Depend on gstreamer-0.10.12.1. * gst/equalizer/gstiirequalizer.c (ARG_BAND_WIDTH, _do_init, ARG_GAIN, _GstIirEqualizerBand, object, _GstIirEqualizerBandClass, parent_class, gst_iir_equalizer_band_set_property, gst_iir_equalizer_band_class_init, gst_iir_equalizer_band_get_type, gst_iir_equalizer_child_proxy_get_child_by_index, gst_iir_equalizer_child_proxy_get_children_count, gst_iir_equalizer_child_proxy_interface_init, setup_filter, gst_iir_equalizer_compute_frequencies, gst_iir_equalizer_set_property, gst_iir_equalizer_get_property, plugin_init): * gst/equalizer/gstiirequalizer.h (audiofilter): * gst/equalizer/gstiirequalizernbands.c (ARG_NUM_BANDS, gst_iir_equalizer_nbands_base_init, gst_iir_equalizer_nbands_init, gst_iir_equalizer_nbands_set_property): Use new locking macros. * gst/filter/gstbpwsinc.c (bpwsinc_set_caps): Add fixme. * gst/spectrum/gstspectrum.c (SPECTRUM_WINDOW_BASE, SPECTRUM_WINDOW_LEN, gst_spectrum_init, gst_spectrum_set_property, gst_spectrum_event, gst_spectrum_transform_ip): Use new locking macros. Turn two fixed values into #defines.
* gst/audiofx/: Sync the GObject properties before each processing step to ↵Sebastian Dröge2007-05-063-4/+13
| | | | | | | | | | | properly work with the controller. Original commit message from CVS: * gst/audiofx/audioamplify.c: (gst_audio_amplify_transform_ip): * gst/audiofx/audiodynamic.c: (gst_audio_dynamic_transform_ip): * gst/audiofx/audioinvert.c: (gst_audio_invert_transform_ip): Sync the GObject properties before each processing step to properly work with the controller.
* gst/audiofx/: Add new audiodynamic element which can act as a compressor or ↵Sebastian Dröge2007-03-084-3/+787
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | expander. Supported are hard-knee and sof... Original commit message from CVS: reviewed by: Stefan Kost <ensonic@users.sf.net> * gst/audiofx/Makefile.am: * gst/audiofx/audiodynamic.c: (gst_audio_dynamic_characteristics_get_type), (gst_audio_dynamic_mode_get_type), (gst_audio_dynamic_set_process_function), (gst_audio_dynamic_base_init), (gst_audio_dynamic_class_init), (gst_audio_dynamic_init), (gst_audio_dynamic_set_property), (gst_audio_dynamic_get_property), (gst_audio_dynamic_setup), (gst_audio_dynamic_transform_hard_knee_compressor_int), (gst_audio_dynamic_transform_hard_knee_compressor_float), (gst_audio_dynamic_transform_soft_knee_compressor_int), (gst_audio_dynamic_transform_soft_knee_compressor_float), (gst_audio_dynamic_transform_hard_knee_expander_int), (gst_audio_dynamic_transform_hard_knee_expander_float), (gst_audio_dynamic_transform_soft_knee_expander_int), (gst_audio_dynamic_transform_soft_knee_expander_float), (gst_audio_dynamic_transform_ip): * gst/audiofx/audiodynamic.h: * gst/audiofx/audiofx.c: (plugin_init): Add new audiodynamic element which can act as a compressor or expander. Supported are hard-knee and soft-knee operation modes with user-specified ratio and threshold. Attack and release parameters are not yet implemented but will follow. * 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: Integrate audiodynamic into the docs. * tests/check/Makefile.am: * tests/check/elements/audiodynamic.c: (setup_dynamic), (cleanup_dynamic), (GST_START_TEST), (dynamic_suite), (main): Add unit test for audiodynamic.
* gst/audiofx/: Some small cleanups and port both elements to the new ↵Sebastian Dröge2007-02-065-148/+101
| | | | | | | | | | | | | | | | | | GstAudioFilter base class to save a few lines of ... Original commit message from CVS: * gst/audiofx/audioamplify.c: (gst_audio_amplify_base_init), (gst_audio_amplify_class_init), (gst_audio_amplify_init), (gst_audio_amplify_set_process_function), (gst_audio_amplify_setup): * gst/audiofx/audioamplify.h: * gst/audiofx/audioinvert.c: (gst_audio_invert_base_init), (gst_audio_invert_class_init), (gst_audio_invert_setup): * gst/audiofx/audioinvert.h: Some small cleanups and port both elements to the new GstAudioFilter base class to save a few lines of common code. * gst/audiofx/Makefile.am: Link against libgstaudio for the above changes
* gst/audiofx/: Add new element "audioamplify". This allows scaling of raw ↵Sebastian Dröge2007-01-244-3/+520
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | audio samples, similar to the "volume" eleme... Original commit message from CVS: reviewed by: Stefan Kost <ensonic@users.sf.net> * gst/audiofx/Makefile.am: * gst/audiofx/audioamplify.c: (gst_audio_amplify_clipping_method_get_type), (gst_audio_amplify_base_init), (gst_audio_amplify_class_init), (gst_audio_amplify_init), (gst_audio_amplify_set_process_function), (gst_audio_amplify_set_property), (gst_audio_amplify_get_property), (gst_audio_amplify_set_caps), (gst_audio_amplify_transform_int_clip), (gst_audio_amplify_transform_int_wrap_negative), (gst_audio_amplify_transform_int_wrap_positive), (gst_audio_amplify_transform_float_clip), (gst_audio_amplify_transform_float_wrap_negative), (gst_audio_amplify_transform_float_wrap_positive), (gst_audio_amplify_transform_ip): * gst/audiofx/audioamplify.h: * gst/audiofx/audiofx.c: (plugin_init): Add new element "audioamplify". This allows scaling of raw audio samples, similar to the "volume" element, but provides different modes for clipping and allows unlimited amplification. It's mainly targeted for creative sound design and not as a replacement of the "volume" element. Fixes #397162 * 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: Add docs for audioamplify and integrate them into the build system * tests/check/Makefile.am: * tests/check/elements/audioamplify.c: (setup_amplify), (cleanup_amplify), (GST_START_TEST), (amplify_suite), (main): Add fairly extensive unit test suite for audioamplify
* gst/audiofx/: Add new audiofx element "audioinvert". This element swaps the ↵Sebastian Dröge2007-01-234-4/+347
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | upper and lower half of samples and can b... Original commit message from CVS: reviewed by: Stefan Kost <ensonic@users.sf.net> * gst/audiofx/Makefile.am: * gst/audiofx/audiofx.c: (plugin_init): * gst/audiofx/audioinvert.c: (gst_audio_invert_base_init), (gst_audio_invert_class_init), (gst_audio_invert_init), (gst_audio_invert_set_property), (gst_audio_invert_get_property), (gst_audio_invert_set_caps), (gst_audio_invert_transform_int), (gst_audio_invert_transform_float), (gst_audio_invert_transform_ip): * gst/audiofx/audioinvert.h: Add new audiofx element "audioinvert". This element swaps the upper and lower half of samples and can be used for example for a wide-stereo effect. Fixes #396057 * 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: Add docs for the audioinvert element and add them to the build system. * tests/check/Makefile.am: * tests/check/elements/audioinvert.c: (setup_invert), (cleanup_invert), (GST_START_TEST), (invert_suite), (main): Add unit test suite for the audioinvert element.
* gst/audiofx/audiopanorama.c: Fix doc section name (Fixes #397946)Stefan Kost2007-01-181-1/+1
| | | | | | Original commit message from CVS: * gst/audiofx/audiopanorama.c: Fix doc section name (Fixes #397946)
* gst/audiofx/audiopanorama.c: Use a function array for process methods, add ↵Sebastian Dröge2007-01-161-50/+40
| | | | | | | | | | | more docs and define the startindex of enums. Original commit message from CVS: Patch by: Sebastian Dröge <slomo circular-chaos org> * gst/audiofx/audiopanorama.c: (gst_audio_panorama_class_init), (gst_audio_panorama_set_process_function): Use a function array for process methods, add more docs and define the startindex of enums.
* gst/audiofx/audiopanorama.*: Add 'method' property and provide a simple ↵Sebastian Dröge2007-01-132-31/+229
| | | | | | | | | | | | | | | | | | | | | | | (non-psychoacustic) processing method (#394859). Original commit message from CVS: Patch by: Sebastian Dröge <slomo circular-chaos org> * gst/audiofx/audiopanorama.c: (gst_audio_panorama_method_get_type), (gst_audio_panorama_class_init), (gst_audio_panorama_init), (gst_audio_panorama_set_process_function), (gst_audio_panorama_set_property), (gst_audio_panorama_get_property), (gst_audio_panorama_set_caps), (gst_audio_panorama_transform_m2s_int_simple), (gst_audio_panorama_transform_s2s_int_simple), (gst_audio_panorama_transform_m2s_float_simple), (gst_audio_panorama_transform_s2s_float_simple): * gst/audiofx/audiopanorama.h: Add 'method' property and provide a simple (non-psychoacustic) processing method (#394859). * tests/check/elements/audiopanorama.c: (GST_START_TEST), (panorama_suite): Tests for new method.