Commit graph

173 commits

Author SHA1 Message Date
Stefan Kost
f405f9c775 audiopanorama: move invariant check out of the inner loop
Improves performance for simple method.
2010-03-11 10:35:05 +02:00
Sebastian Dröge
79e720052a audiofx: Sync properties to the stream time 2010-03-09 21:03:18 +00:00
Kipp Cannon
d009678bc5 audioamplify: Allow negative amplifications
Fixes bug #606807.
2010-01-13 09:22:20 +01:00
Sebastian Dröge
a9a5e0c7e1 audiofxbasefirfilter: Add property for not draining the history on kernel changes
Currently this only works if the kernel size doesn't change, in the future
it will be possible to change the kernel size too without draining
the complete history and without loosing anything.

Partially based on a patch by
Thiago Santos <thiago.sousa.santos@collabora.co.uk>
2010-01-07 17:28:43 +01:00
Thiago Santos
173be1422c audiofxbasefirfilter: do not try to alloc really large buffers
When nsamples_out is larger than nsamples_in, using unsigned
ints lead to a overflow and the resulting value is wrong and
way too large for allocating a buffer. Use signed integers
and returning immediatelly when that happens.
2009-12-26 16:59:14 -03:00
Sebastian Dröge
c26ccb9722 audiowsincband: Use the same upper length limit as audiowsinclimit 2009-12-15 18:18:54 +01:00
Sebastian Dröge
7fec6843c0 audiowsinc{limit,band}: Allow much larger filter lengths now 2009-12-15 18:12:47 +01:00
Sebastian Dröge
119a6ce637 audiofxbasefirfilter: Fix frequency response calculation 2009-12-15 18:12:47 +01:00
Sebastian Dröge
8695581751 audiofxbasefirfilter: Remove dead assignments 2009-12-15 18:12:46 +01:00
Sebastian Dröge
cd2b1c1b58 audiofxbasefirfilter: Add special processing functions for Mono/Stereo
This provides another 7% speedup for the time domain convolution and 1.5%
speedup for the FFT convolution on Mono input.

This optimization assumes that the compiler simplifies calculations
and conditions on constant numbers and unrolls loops with a constant
number of repeats.
2009-12-15 18:12:46 +01:00
Sebastian Dröge
a3d7321c50 audiofxbasefirfilter: Add a "low-latency" mode
This will always use time-domain convolution, which lowers the latency.
With FFT convolution it's always a multiple of the kernel length,
with time domain convolution it's only the pre-latency of the filter kernel.
2009-12-15 18:12:46 +01:00
Sebastian Dröge
ca568ff079 audiofxbasefirfilter: Remove obsolete TODO comments 2009-12-15 18:12:46 +01:00
Sebastian Dröge
45edc1bbd8 audiofxbasefirfilter: Use samples everywhere instead of samples*channels sometimes 2009-12-15 18:12:46 +01:00
Sebastian Dröge
02960383c1 audiofxbasefirfilter: FFT convolution implementation
This provides a great speedup, especially the relationship between kernel
length and processing size is now logarithmic instead of linear. Below a
kernel size of 32 it's a bit slower, afterwards it's much faster:

17     0.788000 -> 0.950000
33     1.208000 -> 1.146000
65     2.166000 -> 1.146000
...
4097 107.444000 -> 1.508000

For sizes smaller 32 the normal time-domain convolution is chosen,
for larger sizes the FFT convolution is automatically used.

Fixes bug #594381.
2009-12-15 18:12:46 +01:00
Sebastian Dröge
ddafc20b28 audiofxbasefirfilter: Make most code parts independent of the processing functions and used convolution algorithm
Only remaining part is the residue pushing, which will be fixed later.
2009-12-15 18:12:46 +01:00
Sebastian Dröge
43576fb0cf audiofxbasefirfilter: Optimize time-domain convolution
Remove some redundant calculations, move comparisions out of
inner loops, etc.

This makes the convolution about 3 (!) times faster but
processing time is of course still proportional to the
filter size.
2009-12-15 18:12:46 +01:00
Sebastian Dröge
c5f955a3b6 audiofxbasefirfilter: Use _CAST macros in some places and do some calculations only once 2009-12-15 18:12:46 +01:00
Sebastian Dröge
abb437454e audiofxbasefirfilter: Rewrite timestamp tracking
It's much simpler now and doesn't introduce accumulating rounding
errors.
2009-12-15 18:12:46 +01:00
Sebastian Dröge
c57be62881 audiofxbasefirfilter: Rename some variables and change comments 2009-12-15 18:12:45 +01:00
Sebastian Dröge
742a7c7f50 audiofxbasefirfilter: Add const qualifier to the source data array 2009-12-15 18:12:45 +01:00
Josep Torra
00aa3421e0 audiofx: use G_GUINT64_FORMAT to fix warnings on OSX 2009-10-09 11:43:44 +02:00
Sebastian Dröge
a3cb8f005b audioamplify: Fix integer overflows on 32 bit architectures 2009-06-21 17:13:43 +02:00
Kipp Cannon
f80b62c3db audioamplify: Don't declare a loop index static
The previous patch to add support for additional sample formats possibly
introduced a reentrancy bug:  a variable used for a loop index was declared
static.  This patch fixes that, and also adds a "/* *INDENT-ON* */" annotation
following the macro block.  (I don't know what the annotation is for, but the
adder, where I copied this from, has it).
2009-06-21 09:50:54 +02:00
Sebastian Dröge
ffe64fb934 audioamplify: Fix off-by-one in wrap-positive mode 2009-06-19 22:37:27 +02:00
Kipp Cannon
afccf53ace audioamplify: Add noclip method and support for more formats
Fixes bug #585828 and #585831.
2009-06-19 22:20:45 +02:00
Edward Hervey
a299e86cfc audiofx: Remove unused variable.
rz is never used in these methods.
2009-04-18 18:51:28 +02:00
Jan Schmidt
591416e0ce Update Since: tags in autodetect srcs and audioecho 2009-02-19 13:16:39 +00:00
Sebastian Dröge
be3674c516 Use guint64 instead of guint for storing guint64 2009-02-03 11:52:15 +01:00
Sebastian Dröge
1f32369451 Limit the delay by a new max-delay property
Introduce a new max-delay property that can only
be set before going to PLAYING or PAUSED. This
is used to limit the maximum delay and is set
to the current delay by default.

Using this will make sure that we have enough data
in our internal ringbuffer for the echo. With dynamic
reallocation of the ringbuffer as used before silence
could've been used as the echo directly after setting
a new delay.
2009-01-28 16:01:34 +01:00
Stefan Kost
a99d3f8769 Update and add documentation for plugins with no deps (gst).
Link to properties. Correct titles for examples. Document a few trivial cases. Keep lists in section file and docs/plugins/Makefile.am alphabetically ordered.
2009-01-28 12:32:59 +02:00
Sebastian Dröge
fb8a2b359d Save some allocations if the echo delay is increased often
Save some allocations if the echo delay is increased often
during playback by always allocating enough memory to hold
data up to the next complete second, i.e. in the worst case
allocate memory for one additional second.
2009-01-24 18:30:55 +01:00
Sebastian Dröge
f2524f71d7 Add note that audioecho's reverb sounds metallic
Add a note to the docs that audioecho's reverb will
sound metallic. This happens because for a real
reverb filter additional filtering is necessary.

Also note which values should be used for the delay
property to get an echo effect.
2009-01-24 11:55:04 +01:00
Sebastian Dröge
99753365c6 Rename audioreverb to audioecho. Fixes bug #568395.
The element can add an echo and a simple reverb effect to
an audio stream but for a real reverb filter it would need
some additional filtering to prevent a metallic-sounding
result.
2009-01-22 13:27:56 +01:00
Sebastian Dröge
0701ffa556 gst/audiofx/audioreverb.c: Set the default value in the instance init function.
Original commit message from CVS:
* gst/audiofx/audioreverb.c: (gst_audio_reverb_init):
Set the default value in the instance init function.
2009-01-19 11:22:06 +00:00
Sebastian Dröge
344a9f4229 Add an echo/reverb filter to the audiofx plugin, with configurable echo delay, intensity and feedback. Fixes bug #567...
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:
* docs/plugins/inspect/plugin-spectrum.xml:
* gst/audiofx/Makefile.am:
* gst/audiofx/audiofx.c: (plugin_init):
* gst/audiofx/audioreverb.c: (gst_audio_reverb_base_init),
(gst_audio_reverb_class_init), (gst_audio_reverb_init),
(gst_audio_reverb_finalize), (gst_audio_reverb_set_property),
(gst_audio_reverb_get_property), (gst_audio_reverb_setup),
(gst_audio_reverb_stop), (gst_audio_reverb_transform_ip):
* gst/audiofx/audioreverb.h:
* tests/check/Makefile.am:
* tests/check/elements/audioreverb.c: (setup_reverb),
(cleanup_reverb), (GST_START_TEST), (audioreverb_suite):
Add an echo/reverb filter to the audiofx plugin, with configurable
echo delay, intensity and feedback. Fixes bug #567874.
2009-01-19 11:19:08 +00:00
Sebastian Dröge
75c1c9f378 Add audioiirfilter and audiofirfilter elements which allow generic IIR/FIR filters to be implemented by providing the...
Original commit message from CVS:
* configure.ac:
* gst/audiofx/Makefile.am:
* gst/audiofx/audiofirfilter.c: (gst_audio_fir_filter_base_init),
(gst_audio_fir_filter_class_init),
(gst_audio_fir_filter_update_kernel), (gst_audio_fir_filter_init),
(gst_audio_fir_filter_setup), (gst_audio_fir_filter_finalize),
(gst_audio_fir_filter_set_property),
(gst_audio_fir_filter_get_property):
* gst/audiofx/audiofirfilter.h:
* gst/audiofx/audiofx.c: (plugin_init):
* gst/audiofx/audioiirfilter.c: (gst_audio_iir_filter_base_init),
(gst_audio_iir_filter_class_init),
(gst_audio_iir_filter_update_coefficients),
(gst_audio_iir_filter_init), (gst_audio_iir_filter_setup),
(gst_audio_iir_filter_finalize),
(gst_audio_iir_filter_set_property),
(gst_audio_iir_filter_get_property):
* gst/audiofx/audioiirfilter.h:
Add audioiirfilter and audiofirfilter elements which allow
generic IIR/FIR filters to be implemented by providing the
filter coefficients. Fixes bug #567577.
* 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/gst-plugins-good-plugins.signals:
* docs/plugins/inspect/plugin-alaw.xml:
* docs/plugins/inspect/plugin-audiofx.xml:
* docs/plugins/inspect/plugin-avi.xml:
* docs/plugins/inspect/plugin-flac.xml:
* docs/plugins/inspect/plugin-mulaw.xml:
* docs/plugins/inspect/plugin-video4linux2.xml:
* docs/plugins/inspect/plugin-wavparse.xml:
Add documentation for the audioiirfilter and audiofirfilter
elements.
* tests/check/Makefile.am:
* tests/check/elements/audiofirfilter.c: (on_message),
(on_rate_changed), (on_handoff), (GST_START_TEST),
(audiofirfilter_suite):
* tests/check/elements/audioiirfilter.c: (on_message),
(on_rate_changed), (on_handoff), (GST_START_TEST),
(audioiirfilter_suite):
* tests/examples/Makefile.am:
* tests/examples/audiofx/Makefile.am:
* tests/examples/audiofx/firfilter-example.c: (on_message),
(on_rate_changed), (main):
* tests/examples/audiofx/iirfilter-example.c: (on_message),
(on_rate_changed), (main):
Add unit tests and example applications for the two filter
elements.
2009-01-13 19:23:57 +00:00
Sebastian Dröge
4b227159cb gst/audiofx/: Use a custom mutex for protecting the instance fields instead 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.
2009-01-13 08:24:25 +00:00
Sebastian Dröge
0016658ace gst/audiofx/: Implement a base class for generic audio FIR filters.
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.
2009-01-11 19:03:38 +00:00
Sebastian Dröge
4c7c4c00da gst/audiofx/: Implement a base class for IIR filters.
Original commit message from CVS:
* gst/audiofx/Makefile.am:
* gst/audiofx/audiofxbaseiirfilter.c:
(gst_audio_fx_base_iir_filter_base_init),
(gst_audio_fx_base_iir_filter_dispose),
(gst_audio_fx_base_iir_filter_class_init),
(gst_audio_fx_base_iir_filter_init),
(gst_audio_fx_base_iir_filter_calculate_gain),
(gst_audio_fx_base_iir_filter_set_coefficients),
(gst_audio_fx_base_iir_filter_setup), (process),
(gst_audio_fx_base_iir_filter_transform_ip),
(gst_audio_fx_base_iir_filter_stop):
* gst/audiofx/audiofxbaseiirfilter.h:
Implement a base class for IIR filters.
* gst/audiofx/audiochebband.c: (gst_audio_cheb_band_base_init),
(gst_audio_cheb_band_class_init), (gst_audio_cheb_band_init),
(generate_coefficients), (gst_audio_cheb_band_set_property),
(gst_audio_cheb_band_setup):
* gst/audiofx/audiochebband.h:
* gst/audiofx/audiocheblimit.c: (gst_audio_cheb_limit_base_init),
(gst_audio_cheb_limit_class_init), (gst_audio_cheb_limit_init),
(generate_coefficients), (gst_audio_cheb_limit_set_property),
(gst_audio_cheb_limit_setup):
* gst/audiofx/audiocheblimit.h:
Use the IIR filter base class for the chebyshev filters.
2009-01-05 10:13:29 +00:00
Thomas Vander Stichele
b3dc426c4e gst/: Make author name consistent with others.
Original commit message from CVS:
* gst/audiofx/audiowsincband.c:
* gst/audiofx/audiowsinclimit.c:
* gst/cutter/gstcutter.c:
Make author name consistent with others.
2008-11-10 13:59:27 +00:00
Stefan Kost
084812bffd Don't install static libs for plugins. Fixes #550851 for -good.
Original commit message from CVS:
* ext/aalib/Makefile.am:
* ext/annodex/Makefile.am:
* ext/cairo/Makefile.am:
* ext/dv/Makefile.am:
* ext/esd/Makefile.am:
* ext/flac/Makefile.am:
* ext/gconf/Makefile.am:
* ext/gdk_pixbuf/Makefile.am:
* ext/hal/Makefile.am:
* ext/jpeg/Makefile.am:
* ext/ladspa/Makefile.am:
* ext/libcaca/Makefile.am:
* ext/libmng/Makefile.am:
* ext/libpng/Makefile.am:
* ext/mikmod/Makefile.am:
* ext/pulse/Makefile.am:
* ext/raw1394/Makefile.am:
* ext/shout2/Makefile.am:
* ext/soup/Makefile.am:
* ext/speex/Makefile.am:
* ext/taglib/Makefile.am:
* ext/wavpack/Makefile.am:
* gst/alpha/Makefile.am:
* gst/apetag/Makefile.am:
* gst/audiofx/Makefile.am:
* gst/auparse/Makefile.am:
* gst/autodetect/Makefile.am:
* gst/avi/Makefile.am:
* gst/cutter/Makefile.am:
* gst/debug/Makefile.am:
* gst/effectv/Makefile.am:
* gst/equalizer/Makefile.am:
* gst/flx/Makefile.am:
* gst/goom/Makefile.am:
* gst/goom2k1/Makefile.am:
* gst/icydemux/Makefile.am:
* gst/id3demux/Makefile.am:
* gst/interleave/Makefile.am:
* gst/law/Makefile.am:
* gst/level/Makefile.am:
* gst/matroska/Makefile.am:
* gst/median/Makefile.am:
* gst/monoscope/Makefile.am:
* gst/multifile/Makefile.am:
* gst/multipart/Makefile.am:
* gst/oldcore/Makefile.am:
* gst/qtdemux/Makefile.am:
* gst/replaygain/Makefile.am:
* gst/rtp/Makefile.am:
* gst/rtsp/Makefile.am:
* gst/smpte/Makefile.am:
* gst/spectrum/Makefile.am:
* gst/udp/Makefile.am:
* gst/videobox/Makefile.am:
* gst/videocrop/Makefile.am:
* gst/videofilter/Makefile.am:
* gst/videomixer/Makefile.am:
* gst/wavenc/Makefile.am:
* gst/wavparse/Makefile.am:
* sys/directdraw/Makefile.am:
* sys/directsound/Makefile.am:
* sys/oss/Makefile.am:
* sys/osxaudio/Makefile.am:
* sys/osxvideo/Makefile.am:
* sys/sunaudio/Makefile.am:
* sys/v4l2/Makefile.am:
* sys/waveform/Makefile.am:
* sys/ximage/Makefile.am:
Don't install static libs for plugins. Fixes #550851 for -good.
2008-11-04 12:28:34 +00:00
Tim-Philipp Müller
5c4b6ce079 Make stuff compile with GST_DISABLE_GST_DEBUG.
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.
2008-08-30 14:15:03 +00:00
Stefan Kost
9c17a6006f Rename audiovoice to audiokaraoke and add it to the docs.
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.
2008-05-28 14:07:21 +00:00
Wim Taymans
0007831a6e gst/audiofx/: Add simple voice removal element. Yay karaoke.
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.
2008-05-26 15:51:41 +00:00
Sebastian Dröge
520ee739cc gst/audiofx/audiofx.c: Use GST_LICENSE, GST_PACKAGE_NAME and 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.
2008-03-13 14:30:45 +00:00
Sebastian Dröge
c299138aaf Check for sinh(), cosh() and asinh() and define our own implementations if 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.
2008-03-07 13:08:42 +00:00
Sebastian Dröge
f13c8b6576 gst/audiofx/: Fix long description of audiofx elements. Fixes bug #515457.
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.
2008-02-10 10:46:13 +00:00
Christian Schaller
169bc79045 add missing header files for disting
Original commit message from CVS:
add missing header files for disting
2008-02-08 15:27:51 +00:00
Jan Schmidt
6fe3c141d7 Move the lpwsinc and bpwsinc elements from gst-plugins-bad into the audiofx 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
2008-02-07 21:57:54 +00:00
Sebastian Dröge
2cbe55cdca gst/filter/gstlpwsinc.c: Fix typo in the long description of the element.
Original commit message from CVS:
* gst/filter/gstlpwsinc.c:
Fix typo in the long description of the element.
2008-02-07 10:04:01 +00:00
Jan Schmidt
22bea9fec3 Rename audiochebyshevfreqband -> audiochebband and audiochebyshevfreqlimit -> 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
2008-02-06 23:44:43 +00:00
Sebastian Dröge
9e88635bc1 gst/filter/: Don't implement get_unit_size() ourselves, the GstAudioFilter 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.
2008-01-26 16:19:26 +00:00
Sebastian Dröge
b76819bbd2 Make elements GST_BUFFER_FLAG_GAP aware and call 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.
2008-01-08 14:58:18 +00:00
Sebastian Dröge
1b6c70bf0b gst/filter/: The transform() methods are not called in passthrough mode so 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.
2007-12-06 12:37:43 +00:00
Sebastian Dröge
eaa01e7c42 gst/filter/: Sync the GObject properties with the controller even in 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.
2007-12-06 12:29:26 +00:00
Sebastian Dröge
ba36c8183b gst/audiofx/: The transform_ip() methods should do nothing if in passthrough 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.
2007-12-06 12:11:29 +00:00
Sebastian Dröge
f04ee6e996 gst/filter/: Post a GST_MESSAGE_LATENCY if the latency changes.
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.
2007-11-21 09:56:54 +00:00
Jan Schmidt
216f6e0593 gst/: Fix compiler warnings shown with Forte.
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.
2007-09-17 17:35:13 +00:00
Jan Schmidt
32621485d5 gst/audiofx/Makefile.am: Dist the right file.
Original commit message from CVS:
* gst/audiofx/Makefile.am:
Dist the right file.
2007-08-27 14:44:19 +00:00
Sebastian Dröge
45ac408d0a gst/filter/: Add small comparision with the chebyshev filters in the docs.
Original commit message from CVS:
* gst/filter/gstbpwsinc.c:
* gst/filter/gstlpwsinc.c:
Add small comparision with the chebyshev filters in the docs.
2007-08-19 19:16:33 +00:00
Sebastian Dröge
5f32a4bac6 gst/audiofx/: Add small comparision with the windowed sinc filters in the docs.
Original commit message from CVS:
* gst/audiofx/audiochebyshevfreqband.c:
* gst/audiofx/audiochebyshevfreqlimit.c:
Add small comparision with the windowed sinc filters in the docs.
2007-08-19 19:11:04 +00:00
Sebastian Dröge
1301d15e4f Use generator macros for the process functions for the different sample 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.
2007-08-17 15:05:17 +00:00
Sebastian Dröge
f86bfaf5f9 gst/audiofx/: Use generator macros for the process functions for the 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.
2007-08-17 14:43:33 +00:00
Sebastian Dröge
fc8a487616 gst/filter/gstbpwsinc.*: Implement latency query and only forward those 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.
2007-08-16 19:22:48 +00:00
Sebastian Dröge
842451a720 gst/audiofx/: Add Chebyshev lowpass/highpass and bandpass/bandreject elements.
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.
2007-08-16 17:02:07 +00:00
Sebastian Dröge
a490cffe5f gst/filter/gstlpwsinc.*: Implement latency query and only forward those 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.
2007-08-16 09:48:27 +00:00
Sebastian Dröge
f944834a11 Add docs for lpwsinc and bpwsinc and integrate them into the build system. 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.
2007-08-13 13:50:39 +00:00
Sebastian Dröge
e8030a1356 gst/filter/: Improve debugging a bit.
Original commit message from CVS:
* gst/filter/gstbpwsinc.c: (bpwsinc_build_kernel):
* gst/filter/gstlpwsinc.c: (lpwsinc_build_kernel):
Improve debugging a bit.
2007-08-12 15:41:57 +00:00
Sebastian Dröge
a1c029bab5 gst/filter/: Reset the residue in BaseTransform::start to get a clean 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.
2007-08-12 12:46:20 +00:00
Sebastian Dröge
6871d561db gst/filter/: Fix processing with buffer sizes that are larger than the 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.
2007-08-11 15:58:30 +00:00
Sebastian Dröge
71a8b2e7bc gst/filter/gstbpwsinc.c: Fix a segfault with more than one channel and don't 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.
2007-08-10 05:51:40 +00:00
Sebastian Dröge
5fbac0f58d gst/filter/gstbpwsinc.*: Add support for a bandreject mode and allow 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.
2007-08-10 05:35:25 +00:00
Sebastian Dröge
86dab97c02 gst/filter/gstbpwsinc.*: Apply the same changes to the bandpass filter:
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.
2007-08-10 05:20:06 +00:00
Sebastian Dröge
6b97253764 gst/filter/gstlpwsinc.*: Specify the actual filter length instead of a weird 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.
2007-08-10 04:44:43 +00:00
Sebastian Dröge
6f8c72a4b0 gst/filter/gstlpwsinc.*: Allow choosing between hamming and blackman window. 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.
2007-08-10 04:32:47 +00:00
Sebastian Dröge
85e572a4cc gst/filter/gstlpwsinc.*: Add a highpass mode.
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.
2007-08-10 04:21:39 +00:00
Sebastian Dröge
0e4fc6653a gst/filter/gstlpwsinc.c: Fix processing if the input has more than one channel.
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.
2007-08-10 04:06:53 +00:00
Sebastian Dröge
ccb73e617b gst/filter/gstbpwsinc.c: "this" is a C++ keyword, use "self" instead.
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.
2007-08-09 19:23:33 +00:00
Sebastian Dröge
de3d1d62ab gst/filter/gstlpwsinc.*: Add double support, replace "this" with "self" as 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.
2007-08-09 18:08:05 +00:00
Sebastian Dröge
be2cd1e919 gst/filter/: Use GstAudioFilter as base class and don't leak the memory of 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.
2007-08-08 20:47:33 +00:00
Sebastian Dröge
9514778ec6 gst/audiofx/audioamplify.h: Also remove a now unecessary variable here.
Original commit message from CVS:
* gst/audiofx/audioamplify.h:
Also remove a now unecessary variable here.
2007-07-26 19:45:30 +00:00
Sebastian Dröge
5f350149a0 gst/audiofx/: Don't save format information ourselves, this is already saved in
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.
2007-07-26 19:41:07 +00:00
Stefan Kost
ab92670d13 configure.ac: Depend on gstreamer-0.10.12.1. gst/equalizer/gstiirequalizer.c (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.
2007-05-22 11:14:13 +00:00
Sebastian Dröge
3d7b6f15b8 gst/audiofx/: Sync the GObject properties before each processing step to 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.
2007-05-06 21:32:40 +00:00
Sebastian Dröge
dbd1b8490f gst/audiofx/: Add new audiodynamic element which can act as a compressor or 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.
2007-03-08 10:02:12 +00:00
Sebastian Dröge
cdba2c4219 gst/audiofx/: Some small cleanups and port both elements to the new 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
2007-02-06 11:16:49 +00:00
Sebastian Dröge
54b10ebf2a gst/audiofx/: Add new element "audioamplify". This allows scaling of raw 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
2007-01-24 12:41:03 +00:00
Sebastian Dröge
447ae144c2 gst/audiofx/: Add new audiofx element "audioinvert". This element swaps the 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.
2007-01-23 18:16:09 +00:00
Stefan Kost
8000e45c5b gst/audiofx/audiopanorama.c: Fix doc section name (Fixes #397946)
Original commit message from CVS:
* gst/audiofx/audiopanorama.c:
Fix doc section name (Fixes #397946)
2007-01-18 11:23:36 +00:00
Sebastian Dröge
703a0d00d8 gst/audiofx/audiopanorama.c: Use a function array for process methods, add 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.
2007-01-16 08:29:11 +00:00
Sebastian Dröge
22ebbb6912 gst/audiofx/audiopanorama.*: Add 'method' property and provide a simple (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.
2007-01-13 15:52:18 +00:00
Sebastian Dröge
8f7c1775d9 Some small docs fixes (#394851).
Original commit message from CVS:
Patch by: Sebastian Dröge <slomo ubuntu com>
* docs/plugins/Makefile.am:
* gst/audiofx/audiopanorama.c:
Some small docs fixes (#394851).
2007-01-10 09:47:43 +00:00
Jens Granseuer
fa57a52f69 Fix build with gcc-2.x (declare variables at the beginning of a block etc.). Fixes #391971.
Original commit message from CVS:
Patch by: Jens Granseuer  <jensgr at gmx net>
* ext/xvid/gstxvidenc.c: (gst_xvidenc_encode),
(gst_xvidenc_get_property):
* gst/filter/gstbpwsinc.c: (bpwsinc_transform_ip):
* gst/filter/gstfilter.c: (plugin_init):
* gst/filter/gstiir.c: (iir_transform_ip):
* gst/filter/gstlpwsinc.c: (lpwsinc_transform_ip):
* gst/modplug/gstmodplug.cc:
* gst/nuvdemux/gstnuvdemux.c: (gst_nuv_demux_header_load),
(gst_nuv_demux_stream_extend_header):
Fix build with gcc-2.x (declare variables at the beginning of a
block etc.). Fixes #391971.
2007-01-03 16:41:10 +00:00
Sebastian Dröge
6a016876c8 gst/audiofx/audiopanorama.*: Fix audiopanorame with float samples. Fixes #383726.
Original commit message from CVS:
Patch by: Sebastian Dröge  <mail at slomosnail de >
* gst/audiofx/audiopanorama.c: (gst_audio_panorama_init),
(gst_audio_panorama_set_caps), (gst_audio_panorama_transform):
* gst/audiofx/audiopanorama.h:
Fix audiopanorame with float samples. Fixes #383726.
2006-12-08 16:38:18 +00:00
Stefan Kost
3b4f4554a6 Rename again (audiofxgood -> audiofx).
Original commit message from CVS:
* configure.ac:
* docs/plugins/gst-plugins-good-plugins-docs.sgml:
* docs/plugins/inspect/plugin-audiofx.xml:
* docs/plugins/inspect/plugin-audiofxgood.xml:
* gst/audiofx/Makefile.am:
* gst/audiofx/audiofx.c:
* gst/audiofxgood/.cvsignore:
* gst/audiofxgood/Makefile.am:
* gst/audiofxgood/audiofx.c:
* gst/audiofxgood/audiopanorama.c:
* gst/audiofxgood/audiopanorama.h:
Rename again (audiofxgood -> audiofx).
2006-08-27 17:14:06 +00:00
Stefan Kost
2019f527f7 Make also the pan-property float (saves scaling and yields better resolution)
Original commit message from CVS:
* gst/audiofxgood/audiopanorama.c: (gst_audio_panorama_class_init),
(gst_audio_panorama_set_property),
(gst_audio_panorama_get_property),
(gst_audio_panorama_transform_m2s_int),
(gst_audio_panorama_transform_s2s_int),
(gst_audio_panorama_transform_m2s_float),
(gst_audio_panorama_transform_s2s_float):
* gst/audiofxgood/audiopanorama.h:
* tests/check/elements/audiopanorama.c: (GST_START_TEST):
Make also the pan-property float (saves scaling and yields better
resolution)
2006-08-24 19:00:22 +00:00
Stefan Kost
6bc998156f gst/audiofxgood/audiopanorama.c: ChangeLog surgery to add cymax's real name
Original commit message from CVS:
* gst/audiofxgood/audiopanorama.c: (gst_audio_panorama_set_caps),
(gst_audio_panorama_transform_m2s_float),
(gst_audio_panorama_transform_s2s_float):
ChangeLog surgery to add cymax's real name
2006-08-24 18:23:14 +00:00
Stefan Kost
3473ecd7af gst/audiofxgood/audiopanorama.*: Added float support (thanks cymax)
Original commit message from CVS:
* gst/audiofxgood/audiopanorama.c: (gst_audio_panorama_set_caps),
(gst_audio_panorama_transform_m2s_int),
(gst_audio_panorama_transform_s2s_int),
(gst_audio_panorama_transform_m2s_float),
(gst_audio_panorama_transform_s2s_float),
(gst_audio_panorama_transform):
* gst/audiofxgood/audiopanorama.h:
Added float support (thanks cymax)
2006-08-24 18:17:20 +00:00
Stefan Kost
bd5e70ea40 gst/audiofxgood/audiopanorama.c: Fix docs & debug category. Add Fixme for volume pan levels.
Original commit message from CVS:
* gst/audiofxgood/audiopanorama.c:
(gst_audio_panorama_transform_m2s):
Fix docs & debug category. Add Fixme for volume pan levels.
2006-08-24 14:16:55 +00:00
Stefan Kost
1f46af88e2 gst/audiofxgood/: resubmit with the desired name *again*
Original commit message from CVS:
* gst/audiofxgood/.cvsignore:
* gst/audiofxgood/Makefile.am:
* gst/audiofxgood/audiofx.c: (plugin_init):
* gst/audiofxgood/audiopanorama.c: (gst_audio_panorama_base_init),
(gst_audio_panorama_class_init), (gst_audio_panorama_init),
(gst_audio_panorama_set_property),
(gst_audio_panorama_get_property),
(gst_audio_panorama_get_unit_size),
(gst_audio_panorama_transform_caps), (gst_audio_panorama_set_caps),
(gst_audio_panorama_transform_m2s),
(gst_audio_panorama_transform_s2s), (gst_audio_panorama_transform):
* gst/audiofxgood/audiopanorama.h:
resubmit with the desired name *again*
2006-08-21 09:21:27 +00:00