After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 464800 - [audiofx] New elements: chebyshev low/highpass and bandpass/bandreject
[audiofx] New elements: chebyshev low/highpass and bandpass/bandreject
Status: RESOLVED FIXED
Product: GStreamer
Classification: Platform
Component: gst-plugins-good
0.10.6
Other Linux
: Normal enhancement
: 0.10.7
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2007-08-08 18:40 UTC by Sebastian Dröge (slomo)
Modified: 2007-08-16 17:01 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
chebyshev-1.diff (2.23 KB, patch)
2007-08-08 18:41 UTC, Sebastian Dröge (slomo)
committed Details | Review
chebyshev-2.diff (25.97 KB, patch)
2007-08-08 18:41 UTC, Sebastian Dröge (slomo)
none Details | Review
chebyshev-3.diff (30.04 KB, patch)
2007-08-08 18:42 UTC, Sebastian Dröge (slomo)
none Details | Review
chebyshev-4.diff (2.80 KB, patch)
2007-08-08 18:43 UTC, Sebastian Dröge (slomo)
committed Details | Review
chebyshev-2.diff (26.95 KB, patch)
2007-08-12 12:45 UTC, Sebastian Dröge (slomo)
committed Details | Review
chebyshev-3.diff (30.99 KB, patch)
2007-08-12 12:45 UTC, Sebastian Dröge (slomo)
committed Details | Review
chebyshev-5.diff (27.84 KB, patch)
2007-08-12 21:15 UTC, Sebastian Dröge (slomo)
committed Details | Review

Description Sebastian Dröge (slomo) 2007-08-08 18:40:53 UTC
Hi,
the attached patches add a chebyshev lowpass/highpass filter and bandpass/bandreject filter to audiofx.

It's possible to configure (apart from cutoff or lower/upper frequency):
- amount of ripple
- type of chebyshev filter (type 1 and 2 are possible)
- number of poles (multiply of 2 for lowpass/highpass and multiply of 4 for the others)

Documentation is already included, I hope a unit test is not necessary as it will be rather hard for this type of filters ;)
Comment 1 Sebastian Dröge (slomo) 2007-08-08 18:41:23 UTC
Created attachment 93300 [details] [review]
chebyshev-1.diff

addition to the build system and plugin_init function
Comment 2 Sebastian Dröge (slomo) 2007-08-08 18:41:45 UTC
Created attachment 93301 [details] [review]
chebyshev-2.diff

lowpass/highpass filter
Comment 3 Sebastian Dröge (slomo) 2007-08-08 18:42:57 UTC
Created attachment 93302 [details] [review]
chebyshev-3.diff

bandpass/bandreject filter
Comment 4 Sebastian Dröge (slomo) 2007-08-08 18:43:32 UTC
Created attachment 93303 [details] [review]
chebyshev-4.diff

addition to the docs
Comment 5 Sebastian Dröge (slomo) 2007-08-12 12:45:24 UTC
Created attachment 93538 [details] [review]
chebyshev-2.diff

lowpass/highpass

this time we reset the history of input and output values in start.
Comment 6 Sebastian Dröge (slomo) 2007-08-12 12:45:54 UTC
Created attachment 93539 [details] [review]
chebyshev-3.diff

bandpass/bandreject

this time we reset the history of input and output values in start.
Comment 7 Sebastian Dröge (slomo) 2007-08-12 21:15:27 UTC
Created attachment 93555 [details] [review]
chebyshev-5.diff

unit tests
Comment 8 Stefan Sauer (gstreamer, gtkdoc dev) 2007-08-16 11:40:02 UTC
They work fine. Limmiting the parameter ranges would be good though. Althugh its a general problem of gobject-arameters, that they cannot be limmited dynamically.
Comment 9 Sebastian Dröge (slomo) 2007-08-16 17:01:10 UTC
Committed...

2007-08-16  Sebastian Dröge  <slomo@circular-chaos.org>

	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.