Mark Nauwelaerts
3286cdd542
scaletempo: port to 0.11
2012-12-14 13:16:16 +00:00
Stefan Kost
62d780cd51
scaletempo: improve the docs
...
Fix the syntax, add more explanation and xref the properties.
2012-12-14 13:16:16 +00:00
Chris E Jones
caf2b6cb5c
scaletempo: Correctly handle newsegment events with stop==-1
...
Fixes bug #645420 .
2012-12-14 13:16:16 +00:00
Stefan Kost
6d54058982
scaletempo: add missing G_PARAM_STATIC_STRINGS flags
...
Canonicalize property names as needed.
2012-12-14 13:16:16 +00:00
Benjamin Otte
38bc2dfb4a
scaletempo: gst_element_class_set_details => gst_element_class_set_details_simple
2012-12-14 13:16:16 +00:00
Thiago Santos
2d72ec153a
scaletempo: properly update new segments
...
Scaletempo was missing an update of 'stop' in
new segment parameters when pushing it downstream,
which caused files to end earlier when rate < 1.
Fixes #599903
Based on patch by: Bastian Hecht <hechtb@gmail.com>
2012-12-14 13:16:16 +00:00
Maximilian Högner
2fe7a97f1c
scaletempo: Explicitely cast to signed integers to fix a segfault
...
Fixes bug #585660 .
2012-12-14 13:16:16 +00:00
Michael Smith
1b1f6f56d6
scaletempo: Do not use void pointer arithmetic.
2012-12-14 13:16:16 +00:00
Stefan Kost
9284c85b33
scaletempo: Return the result of parent_class->event()
...
Original commit message from CVS:
* gst/audiofx/gstscaletempo.c:
Return the result of parent_class->event().
2012-12-14 13:16:16 +00:00
Rov Juvano
43e79f7769
Add scaletempo plugin, which allows to scale the speed of audio without changing the pitch by handling seeks with a r...
...
Original commit message from CVS:
Patch by: Rov Juvano <rovjuvano at users dot sourceforge dot net>
* configure.ac:
* docs/plugins/Makefile.am:
* docs/plugins/gst-plugins-bad-plugins-docs.sgml:
* docs/plugins/gst-plugins-bad-plugins-sections.txt:
* docs/plugins/inspect/plugin-scaletempo.xml:
* examples/scaletempo/Makefile.am:
* examples/scaletempo/demo-gui.c: (pop_status_bar),
(status_bar_printf), (demo_gui_seek_bar_format), (update_position),
(demo_gui_seek_bar_change), (demo_gui_do_change_rate),
(demo_gui_do_set_rate), (demo_gui_do_rate_entered),
(demo_gui_do_toggle_advanced), (demo_gui_do_toggle_disabled),
(demo_gui_do_seek), (demo_gui_do_play), (demo_gui_do_pause),
(demo_gui_do_play_pause), (demo_gui_do_open_file),
(demo_gui_do_playlist_prev), (demo_gui_do_playlist_next),
(demo_gui_do_about_dialog), (demo_gui_do_quit),
(demo_gui_request_set_stride), (demo_gui_request_set_overlap),
(demo_gui_request_set_search), (demo_gui_rate_changed),
(demo_gui_playing_started), (demo_gui_playing_paused),
(demo_gui_playing_ended), (demo_gui_player_errored),
(demo_gui_stride_changed), (demo_gui_overlap_changed),
(demo_gui_search_changed), (demo_gui_set_player_func),
(demo_gui_set_playlist_func), (build_gvalue_array),
(create_action), (demo_gui_show_func), (demo_gui_set_player),
(demo_gui_set_playlist), (demo_gui_show), (demo_gui_get_property),
(demo_gui_set_property), (demo_gui_init), (demo_gui_class_init),
(demo_gui_get_type):
* examples/scaletempo/demo-gui.h:
* examples/scaletempo/demo-main.c: (handle_error_message),
(handle_quit), (main):
* examples/scaletempo/demo-player.c: (no_pipeline),
(demo_player_event_listener), (demo_player_state_changed_cb),
(demo_player_eos_cb), (demo_player_build_pipeline), (_set_rate),
(demo_player_scale_rate_func), (demo_player_set_rate_func),
(_set_state_and_wait), (demo_player_load_uri_func),
(demo_player_play_func), (demo_player_pause_func), (_seek_to),
(demo_player_seek_by_func), (demo_player_seek_to_func),
(demo_player_get_position_func), (demo_player_get_duration_func),
(demo_player_scale_rate), (demo_player_set_rate),
(demo_player_load_uri), (demo_player_play), (demo_player_pause),
(demo_player_seek_by), (demo_player_seek_to),
(demo_player_get_position), (demo_player_get_duration),
(demo_player_get_property), (demo_player_set_property),
(demo_player_init), (demo_player_class_init),
(demo_player_get_type):
* examples/scaletempo/demo-player.h:
* gst/audiofx/Makefile.am:
* gst/audiofx/gstscaletempo.c: (best_overlap_offset_float),
(best_overlap_offset_s16), (output_overlap_float),
(output_overlap_s16), (fill_queue), (reinit_buffers),
(gst_scaletempo_transform), (gst_scaletempo_transform_size),
(gst_scaletempo_sink_event), (gst_scaletempo_set_caps),
(gst_scaletempo_get_property), (gst_scaletempo_set_property),
(gst_scaletempo_base_init), (gst_scaletempo_class_init),
(gst_scaletempo_init):
* gst/audiofx/gstscaletempo.h:
* gst/audiofx/gstscaletempoplugin.c: (plugin_init):
Add scaletempo plugin, which allows to scale the speed of audio without
changing the pitch by handling seeks with a rate!=1.0.
Integrate it into the docs and add the example application for it.
Fixes bug #537700 .
2012-12-14 13:16:15 +00:00
Tim-Philipp Müller
230cf41cc9
Fix FSF address
...
https://bugzilla.gnome.org/show_bug.cgi?id=687520
2012-11-04 00:07:18 +00:00
Tim-Philipp Müller
4bb52bbadf
docs: gst-launch -> gst-launch-1.0 and ffmpegcolorspace -> videoconvert
2012-08-27 21:20:30 +01:00
Tim-Philipp Müller
0fa3992e37
audiopanorama: fix negotiation and unit test
...
Must remove a possibly-fixed channel-mask field if
we're going to set unfixed channels on the structure,
or a different channel count.
2012-07-03 17:54:22 +01:00
Chris Pankow
6042bb1e6b
audiofxbasefirfilter: Fix time-domain convolution for multichannel input
...
Fixes bug #674025 .
2012-04-23 10:08:59 +02:00
Tim-Philipp Müller
e09ae5736d
Use new gst_element_class_set_static_metadata()
2012-04-10 00:51:41 +01:00
Sebastian Dröge
aa2cd462da
gst: Update for GST_PLUGIN_DEFINE() API changes
2012-04-05 17:36:38 +02:00
Sebastian Dröge
5cdd49bf25
gst: Update versioning
2012-04-04 14:37:47 +02:00
Wim Taymans
ff58bf3db9
use transform_ip_on_passthrough
2012-04-02 11:13:09 +02:00
Mark Nauwelaerts
62d6c00ac9
audiopanorama: fix supported template caps and sample processing
2012-03-29 17:21:50 +02:00
Mark Nauwelaerts
8742a0a89b
audiofx: more adjustment to changed semantics of audiofilter _setup method
2012-03-28 12:23:56 +02:00
Mark Nauwelaerts
9041a588f9
audiofx: adjust to changed semantics of audiofilter _setup method
...
... in that it will now call subclass with info on proposed audio format
without having set that info already in base class. As such,
subclass can not rely on audio format info being available there.
2012-03-23 18:48:53 +01:00
Sebastian Dröge
78bb66902b
gst: Update for the gstmarshal.[ch] removal
2012-03-02 11:17:33 +01:00
Mark Nauwelaerts
f189f62b13
Merge branch 'master' into 0.11
...
Conflicts:
ext/wavpack/gstwavpackenc.c
tests/check/elements/audioiirfilter.c
tests/examples/v4l2/probe.c
2012-03-01 11:29:50 +01:00
Edward Hervey
9beda57c3a
Suppress deprecation warnings in selected files, for g_value_array_* mostly
2012-02-27 14:47:25 +01:00
Wim Taymans
3c292543bc
audiofx: remove transform lock usage
2012-02-23 12:03:24 +01:00
Wim Taymans
44d369211c
audiodynamic: fix negotiation
2012-02-06 13:28:55 +01:00
Tim-Philipp Müller
0f3b7b010e
build: ignore GValueArray deprecation warnings for the time being
...
until this gets sorted out with the GLib folks and we have a
viable alternative.
https://bugzilla.gnome.org/show_bug.cgi?id=667228
2012-02-01 16:40:51 +00:00
Wim Taymans
583d39dd8d
update for new memory API
2012-01-25 12:30:28 +01:00
Tim-Philipp Müller
37409d4d65
Don't use deprecated GLib API
2012-01-22 23:32:51 +00:00
Leo Singer
56353e24d2
audiofx: Use most common convention for definitions of IIR filter coefficients.
...
Most signal processing texts, including MATLAB, use the following convention for IIR filter coefficients:
a_0 y[n] + a_1 y[n-1] + ... + a_M y[n-M] = b_0 x[n] + b_1 x[n-1] + ... + b[N] x[n-N]
Usually, a_0 is set to 1 because the coefficients can always be rescaled, giving
y[n] = b_0 x[n] + b_1 x[n-1] + ... + b[N] x[n-N] - a_1 y[n-1] - ... - a_M y[n-M]
The convention that was previously used by audiofxbaseiirfilter and derived class had the a and b coefficients swapped, and did not have the minus signs.
This change makes the audiofx plugin use the more common convention described above.
2012-01-11 15:24:00 +01:00
Sebastian Dröge
93e3ed5a86
Merge branch 'master' into 0.11
...
Conflicts:
ext/cairo/gsttextoverlay.c
ext/pulse/pulseaudiosink.c
gst/audioparsers/gstaacparse.c
gst/avi/gstavimux.c
gst/flv/gstflvmux.c
gst/interleave/interleave.c
gst/isomp4/gstqtmux.c
gst/matroska/matroska-demux.c
gst/matroska/matroska-mux.c
gst/matroska/matroska-mux.h
gst/matroska/matroska-read-common.c
gst/multifile/gstmultifilesink.c
gst/multipart/multipartmux.c
gst/shapewipe/gstshapewipe.c
gst/smpte/gstsmpte.c
gst/udp/gstmultiudpsink.c
gst/videobox/gstvideobox.c
gst/videocrop/gstaspectratiocrop.c
gst/videomixer/videomixer.c
gst/videomixer/videomixer2.c
gst/wavparse/gstwavparse.c
po/ja.po
po/lv.po
po/sr.po
tests/check/Makefile.am
tests/check/elements/qtmux.c
tests/check/elements/rgvolume.c
2012-01-10 14:32:32 +01:00
Sebastian Dröge
686698bf72
audiofx: Port to the new multichannel caps and the new raw audio layout field
2012-01-05 10:30:31 +01:00
Tim-Philipp Müller
66f6e12888
Work around deprecated thread API in glib master
...
Add private replacements for deprecated functions such as
g_mutex_new(), g_mutex_free(), g_cond_new() etc., mostly
to avoid the deprecation warnings. We'll change these
over to the new API once we depend on glib >= 2.32.
2011-12-12 09:46:27 +00:00
Vincent Penquerc'h
c0e101e93f
various: fix pad template leaks
...
https://bugzilla.gnome.org/show_bug.cgi?id=662664
2011-11-28 13:30:27 +00:00
Matej Knopp
1e5dd9e315
Fix printf format compiler warnings on OS X / 64bit
...
https://bugzilla.gnome.org/show_bug.cgi?id=662615
2011-11-22 01:28:22 +00:00
Wim Taymans
6190312214
add parent to query function
2011-11-16 17:27:13 +01:00
Stefan Sauer
9ce6c731c3
various: add missing includes
2011-11-10 23:09:23 +02:00
Wim Taymans
49658dd5b5
remove query types
2011-11-09 11:53:01 +01:00
Stefan Sauer
fb162c8eb4
controller: port to new controller location and api
2011-11-04 20:15:48 +01:00
René Stadler
3b6de2bacd
audiopanorama: simplify get_unit_size
2011-10-28 21:26:33 +02:00
René Stadler
8809965204
audioecho: fix internal buffer size calculation
2011-10-28 21:22:38 +02:00
René Stadler
42f401a7eb
audiofx: fix crash in process()
2011-10-28 13:08:48 +02:00
René Stadler
9b94fc3102
audiodynamic: don't set process function too early
...
GstAudioInfo and GstAudioFilter have been changed so that this code doesn't
crash anymore when a property is set in NULL state.
2011-10-28 11:25:37 +02:00
René Stadler
7dba29cbd3
audiopanorama: fix get_unit_size
2011-10-28 11:25:37 +02:00
Wim Taymans
e204c5934c
-good: port to new audio caps
2011-09-06 13:16:27 +02:00
Wim Taymans
445bf71bd1
port to more audio api changes
2011-08-19 16:09:48 +02:00
Wim Taymans
90f5b31b4b
port to new audio API and caps
2011-08-19 11:49:44 +02:00
Wim Taymans
984a0b54eb
fixes for event handler changes
2011-07-22 21:19:45 +02:00
Wim Taymans
7ef7157986
Merge branch 'master' into 0.11
2011-06-17 18:12:50 +02:00
Stefan Kost
6c3e77964a
audioecho: fix param flags
...
If the parameter cannot be changed in paused&playing, it is not controlable. Set
the appropriate mutability flag instead.
2011-06-17 03:07:09 +03:00
Wim Taymans
409f29700d
-good: port some more plugins
2011-06-13 17:51:40 +02:00
Edward Hervey
8c83978d56
audiofxbasefirfilter: Buffers no longer have caps
2011-06-07 11:22:35 +02:00
Wim Taymans
b121bb0ae9
audiofx: fix pad_alloc
2011-04-29 15:46:21 +02:00
Wim Taymans
237ca1631f
port some more elements to 0.11
2011-04-25 12:49:36 +02:00
Wim Taymans
4aa6ca5578
port more plugins to 0.11
2011-04-18 10:54:43 +02:00
Sebastian Dröge
6f480ad0ed
audiowsinc{band,limit}: Fix check for divison by zero
2011-04-13 18:11:34 +02:00
Sebastian Dröge
de7a976531
audiowsincband: Fix range of kernel elements (lim -> lim-1)
2011-04-13 18:01:01 +02:00
Sebastian Dröge
4fd5fea2b2
audiowsinclimit: Add some more braces to make the code more readable
2011-04-13 18:00:44 +02:00
Jordi Burguet-Castell
766e437af1
audiowsinclimit: Fix range of kernel elements (lim -> lim-1) in high/low-pass filters
2011-04-13 17:57:06 +02:00
Sebastian Dröge
2575cfc4a6
audiowsincband: Add new windowing functions: gaussian, cos and hann
2011-04-13 17:52:30 +02:00
Jordi Burguet-Castell
782d6af83d
audiowsinclimimt: Add new windows to high/low-pass filters: gaussian, cosine, hann
2011-04-13 17:52:30 +02:00
Thibault Saunier
b541208b77
android: Make it ready for androgenizer
...
Remove the android/ top dir
Fixe the Makefile.am to be androgenized
To build gstreamer for android we are now using androgenizer which generates the needed Android.mk files.
Androgenizer can be found here: http://git.collabora.co.uk/?p=user/derek/androgenizer.git
2011-04-11 01:20:11 +02:00
David Schleef
7b8981766b
Change M_PI to G_PI
2010-12-30 14:20:52 -08:00
Stefan Kost
d8167e3071
various (gst): add a missing G_PARAM_STATIC_STRINGS flags
2010-10-13 18:00:28 +03:00
Sebastian Dröge
711e0cc90b
audioiirfilter: Fix possible NULL pointer dereference
2010-06-16 19:24:54 +02:00
Stefan Kost
43ebe8235f
docs: fix xml
...
The title tag belongs into the refsect2.
2010-04-08 10:30:06 +03:00
Benjamin Otte
cccfeaa59c
gst_element_class_set_details => gst_element_class_set_details_simple
2010-03-18 14:32:00 +01:00
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