Commit graph

49 commits

Author SHA1 Message Date
Jan Schmidt
8cca2d55f5 soundtouch: Call default event handler for basetransform
Make pipeline end properly at EOS and not leak by passing events
to the default event handler.
2013-12-10 23:06:53 +11:00
Olivier Crête
2046ba220f pitch: Fix inverted condition in setcaps 2013-10-12 16:04:25 -04:00
Sebastian Dröge
8e5f0e37f8 soundtouch: Fix compilation with soundtouch 1.4.0
It used FLOAT_SAMPLES/INTEGER_SAMPLES #defines instead of ones properly
prefixed with a namespace.

https://bugzilla.gnome.org/show_bug.cgi?id=707390
2013-09-03 17:36:53 +02:00
Sebastian Dröge
576b4826c8 soundtouch: Allow compilation against float and integer version of the library
https://bugzilla.gnome.org/show_bug.cgi?id=707270
2013-09-02 10:29:49 +02:00
Sebastian Dröge
e51cd4fe2f gst: Add better support for static plugins 2013-04-15 15:59:22 +02:00
Tim-Philipp Müller
9e1b75fda3 Fix FSF address
https://bugzilla.gnome.org/show_bug.cgi?id=687520
2012-11-04 00:09:59 +00:00
Tim-Philipp Müller
0a57441908 pitch: fix for start times > 0
Fixes buffering and playback of streams that start with
a non-0 timestamp in totem (which has a 'pitch' element
before pulsesink).

Example URI: http://lobostv.lobocast.org.es:8004/lobostv.ogg

Still breaks with chained oggs, on second chain.

https://bugzilla.gnome.org/show_bug.cgi?id=686391
2012-10-22 21:46:56 +01:00
Tim-Philipp Müller
32ba17cd0f Use gst_element_class_set_static_metadata()
where possible. Avoids some string copies. Also re-indent
some stuff. Also some indent fixes here and there.
2012-10-17 17:46:34 +01:00
Jan Schmidt
7b0e5f4598 soundtouch: Transform timestamps properly after a seek.
The segment is transformed to match the pitch conversion
being applied, so make sure the timestamps being output
match the configured downstream segment accordingly, and
adjust the downstream segment position to match the stream time
ratio also.
2012-09-26 14:57:54 +10:00
Mark Nauwelaerts
578861abea replace gst_element_class_set_details_simple with gst_element_class_set_metadata 2012-09-14 17:27:49 +02:00
Tim-Philipp Müller
a79edf27d0 gst_message_new_duration -> gst_message_new_duration_changed 2012-09-02 01:48:12 +01:00
Edward Hervey
c4ccca8795 soundtouch: Don't assume output buffer timestamps
There's no guarantee whatsoever that the first buffer to output will
start at the segment.start.

Instead, wait for the first buffer after a segment, and use that timestamp
2012-08-14 19:04:42 +02:00
Sebastian Dröge
afd50a79f4 tag: Update for taglist/tag event API changes 2012-07-28 00:32:58 +02:00
Stefan Sauer
7b5340f3be pitch: register as effect 2012-07-11 23:18:44 +02:00
Wim Taymans
2eefdda3e4 soundtouch: port to 0.11 2012-07-10 17:47:20 +02:00
Sebastian Dröge
cda192b3b7 gst: Update for GST_PLUGIN_DEFINE() API changes 2012-04-05 18:02:56 +02:00
Sebastian Dröge
1318a97e0a gst: Update versioning 2012-04-04 14:44:34 +02:00
Stefan Sauer
9f73890892 controller: port to new controller location and api 2011-11-04 20:14:01 +01:00
Jan Schmidt
8fbf3a3129 soundtouch: Handling incoming rate when requested.
Absorb inbound segments with rate != 1.0 and output a segment with
rate taken from the new output-rate property, adjusting the segment
applied_rate, stream duration and timestamps as necessary to
compensate
2011-08-30 17:49:29 +10:00
Stefan Kost
0387a89cad various (ext): add missing G_PARAM_STATIC_STRINGS flags
Canonicalize property names as needed.
2010-10-19 17:13:26 +03:00
Tim-Philipp Müller
12f561bca8 soundtouch: use $(LIBM) in Makefile.am instead of -lm 2010-04-08 08:48:35 +01:00
Tim-Philipp Müller
203b284bab soundtouch: build fixes: #if -> #ifdef 2010-03-22 12:38:02 +00:00
Tiago Katcipis
0664c55f05 soundtouch: removing very annoying g_print() in pitch element
Fixes #612208.
2010-03-09 18:13:14 +00:00
b3f0b029f3 win32: Include config.h before anything else. Fix mpegdemux LIBADD
Because config.h defines __MSVCRT_VERSION__, which should be defined
before inclusion of any system header.

Also fixes mpegdemux Makefile.am LIBADD typo.

Fixes #606665
2010-01-12 12:31:56 +01:00
Tim-Philipp Müller
4eec7e8947 pitch: remove pointless gst_element_no_more_pads() 2009-11-02 09:15:39 +00:00
Josep Torra
c3b3ca4be2 soundtouch: fixes warnings on macosx snow leopard 2009-10-11 14:10:59 +02:00
Jan Schmidt
98dccb65bf Detect libsoundtouch 1.4 and higher.
In libsoundtouch 1.4, libBPM appears to have been subsumed into
libSoundTouch, and into the soundtouch namespace.
2009-02-22 19:18:36 +00:00
Sebastian Dröge
71f9bd00f5 bpmdetect: Fix accidentally introduced stack overwriting introduced in last commit 2009-02-16 16:08:31 +01:00
Sebastian Dröge
4fe032d97e bpmdetect: Save one memory allocation per stereo buffer 2009-02-16 16:07:29 +01:00
Sebastian Dröge
9a1d1cb91f bpmdetect: Pass at most 2048 samples to SoundTouch's BPMDetect
Internally BPMDetect assumes that at most 2048 samples are passed
to it at once and stores those in a stack allocated static sized
array. If we pass too many samples this will result in a buffer overflow
resulting in heavy stack corruption and a crash. Fixes bug #570996.
2009-02-10 10:20:14 +01:00
Stefan Kost
a14e8e07df Don't install static libs for plugins. Fixes #550851 for -bad.
Original commit message from CVS:
* ext/alsaspdif/Makefile.am:
* ext/amrwb/Makefile.am:
* ext/apexsink/Makefile.am:
* ext/arts/Makefile.am:
* ext/artsd/Makefile.am:
* ext/audiofile/Makefile.am:
* ext/audioresample/Makefile.am:
* ext/bz2/Makefile.am:
* ext/cdaudio/Makefile.am:
* ext/celt/Makefile.am:
* ext/dc1394/Makefile.am:
* ext/dirac/Makefile.am:
* ext/directfb/Makefile.am:
* ext/divx/Makefile.am:
* ext/dts/Makefile.am:
* ext/faac/Makefile.am:
* ext/faad/Makefile.am:
* ext/gsm/Makefile.am:
* ext/hermes/Makefile.am:
* ext/ivorbis/Makefile.am:
* ext/jack/Makefile.am:
* ext/jp2k/Makefile.am:
* ext/ladspa/Makefile.am:
* ext/lcs/Makefile.am:
* ext/libfame/Makefile.am:
* ext/libmms/Makefile.am:
* ext/metadata/Makefile.am:
* ext/mpeg2enc/Makefile.am:
* ext/mplex/Makefile.am:
* ext/musepack/Makefile.am:
* ext/musicbrainz/Makefile.am:
* ext/mythtv/Makefile.am:
* ext/nas/Makefile.am:
* ext/neon/Makefile.am:
* ext/ofa/Makefile.am:
* ext/polyp/Makefile.am:
* ext/resindvd/Makefile.am:
* ext/sdl/Makefile.am:
* ext/shout/Makefile.am:
* ext/snapshot/Makefile.am:
* ext/sndfile/Makefile.am:
* ext/soundtouch/Makefile.am:
* ext/spc/Makefile.am:
* ext/swfdec/Makefile.am:
* ext/tarkin/Makefile.am:
* ext/theora/Makefile.am:
* ext/timidity/Makefile.am:
* ext/twolame/Makefile.am:
* ext/x264/Makefile.am:
* ext/xine/Makefile.am:
* ext/xvid/Makefile.am:
* gst-libs/gst/app/Makefile.am:
* gst-libs/gst/dshow/Makefile.am:
* gst/aiffparse/Makefile.am:
* gst/app/Makefile.am:
* gst/audiobuffer/Makefile.am:
* gst/bayer/Makefile.am:
* gst/cdxaparse/Makefile.am:
* gst/chart/Makefile.am:
* gst/colorspace/Makefile.am:
* gst/dccp/Makefile.am:
* gst/deinterlace/Makefile.am:
* gst/deinterlace2/Makefile.am:
* gst/dvdspu/Makefile.am:
* gst/festival/Makefile.am:
* gst/filter/Makefile.am:
* gst/flacparse/Makefile.am:
* gst/flv/Makefile.am:
* gst/games/Makefile.am:
* gst/h264parse/Makefile.am:
* gst/librfb/Makefile.am:
* gst/mixmatrix/Makefile.am:
* gst/modplug/Makefile.am:
* gst/mpeg1sys/Makefile.am:
* gst/mpeg4videoparse/Makefile.am:
* gst/mpegdemux/Makefile.am:
* gst/mpegtsmux/Makefile.am:
* gst/mpegvideoparse/Makefile.am:
* gst/mve/Makefile.am:
* gst/nsf/Makefile.am:
* gst/nuvdemux/Makefile.am:
* gst/overlay/Makefile.am:
* gst/passthrough/Makefile.am:
* gst/pcapparse/Makefile.am:
* gst/playondemand/Makefile.am:
* gst/rawparse/Makefile.am:
* gst/real/Makefile.am:
* gst/rtjpeg/Makefile.am:
* gst/rtpmanager/Makefile.am:
* gst/scaletempo/Makefile.am:
* gst/sdp/Makefile.am:
* gst/selector/Makefile.am:
* gst/smooth/Makefile.am:
* gst/smoothwave/Makefile.am:
* gst/speed/Makefile.am:
* gst/speexresample/Makefile.am:
* gst/stereo/Makefile.am:
* gst/subenc/Makefile.am:
* gst/tta/Makefile.am:
* gst/vbidec/Makefile.am:
* gst/videodrop/Makefile.am:
* gst/videosignal/Makefile.am:
* gst/virtualdub/Makefile.am:
* gst/vmnc/Makefile.am:
* gst/y4m/Makefile.am:
* sys/acmenc/Makefile.am:
* sys/cdrom/Makefile.am:
* sys/dshowdecwrapper/Makefile.am:
* sys/dshowsrcwrapper/Makefile.am:
* sys/dvb/Makefile.am:
* sys/dxr3/Makefile.am:
* sys/fbdev/Makefile.am:
* sys/oss4/Makefile.am:
* sys/qcam/Makefile.am:
* sys/qtwrapper/Makefile.am:
* sys/vcd/Makefile.am:
* sys/wininet/Makefile.am:
* win32/common/config.h:
Don't install static libs for plugins. Fixes #550851 for -bad.
2008-11-04 12:42:30 +00:00
Sebastian Dröge
744f3efec5 ext/soundtouch/gstpitch.cc: Call gst_element_no_more_pads() after all pads are added.
Original commit message from CVS:
* ext/soundtouch/gstpitch.cc:
Call gst_element_no_more_pads() after all pads are added.
2008-06-10 12:54:59 +00:00
Sebastian Dröge
625a222f06 ext/: Cast NULL sentinels to void * as NULL is defined as an integer constant in most environments when using C++ and...
Original commit message from CVS:
* ext/mpeg2enc/gstmpeg2enc.cc:
* ext/soundtouch/gstbpmdetect.cc:
Cast NULL sentinels to void * as NULL is defined as an integer
constant in most environments when using C++ and it's size might
be different from a pointer.
2008-04-25 23:22:56 +00:00
Tim-Philipp Müller
77d09884c6 Check for and define ERROR_CXXFLAGS and GST_CXXFLAGS and use them when building C++ code.
Original commit message from CVS:
* configure.ac:
* ext/mpeg2enc/Makefile.am:
* ext/soundtouch/Makefile.am:
* gst/modplug/Makefile.am:
Check for and define ERROR_CXXFLAGS and GST_CXXFLAGS and use them
when building C++ code.
2008-02-23 15:01:32 +00:00
Sebastian Dröge
e6e86c4f2d ext/soundtouch/gstbpmdetect.cc: Clean up a bit and only allocate a temporary buffer for the data if processing stereo...
Original commit message from CVS:
* ext/soundtouch/gstbpmdetect.cc:
Clean up a bit and only allocate a temporary buffer for the data
if processing stereo data as BPMDetect downmixes from stereo to
mono and stores the result in the input data. Thanks to
Stefan Kost for the suggestions.
2008-01-28 11:47:18 +00:00
Sebastian Dröge
b0c8b0f322 ext/soundtouch/gstpitch.cc: Cast a double to a GstClockTimeDiff to fix a compiler warning.
Original commit message from CVS:
* ext/soundtouch/gstpitch.cc:
Cast a double to a GstClockTimeDiff to fix a compiler warning.
2008-01-27 17:02:24 +00:00
Sebastian Dröge
7fa405c9c9 ext/soundtouch/gstpitch.cc: Don't send a LATENCY event for now until we get the usage right.
Original commit message from CVS:
* ext/soundtouch/gstpitch.cc:
Don't send a LATENCY event for now until we get the usage right.
2008-01-27 07:51:06 +00:00
Sebastian Dröge
26b4a028d9 ext/soundtouch/gstpitch.*: Implement LATENCY query and notify about latency changes.
Original commit message from CVS:
* ext/soundtouch/gstpitch.cc:
* ext/soundtouch/gstpitch.hh:
Implement LATENCY query and notify about latency changes.
Unfortunately we don't have a fixed latency but it changes
a bit with each buffer so we only send an LATENCY event with
the maximum latency if it changes.
Always calculate the timestamp, duration, etc from the sample
rate instead of using a pre-calculated duration for one sample
to prevent large rounding errors.
2008-01-27 07:37:40 +00:00
Sebastian Dröge
1a787a0cb2 ext/soundtouch/gstbpmdetect.cc: Only consider a BPM value above 1.0 as valid.
Original commit message from CVS:
* ext/soundtouch/gstbpmdetect.cc:
Only consider a BPM value above 1.0 as valid.
2008-01-27 06:31:52 +00:00
Sebastian Dröge
27fbdb97d1 ext/soundtouch/: Add BPM detection plugin based on SoundTouch's libBPM.
Original commit message from CVS:
* ext/soundtouch/Makefile.am:
* ext/soundtouch/gstbpmdetect.cc:
* ext/soundtouch/gstbpmdetect.hh:
* ext/soundtouch/plugin.c: (plugin_init):
Add BPM detection plugin based on SoundTouch's libBPM.
* ext/soundtouch/gstpitch.cc:
Allow sample rates until MAX instead of only 48kHz and remove the
buffer-frames field from that caps.
Clear the remaining samples completely when necessary to get into
a clean state again.
2008-01-27 05:56:04 +00:00
Sebastian Dröge
b05b9d04d6 ext/soundtouch/gstpitch.cc: Allow seeking only in TIME and DEFAULT format, other formats will not work as expected. A...
Original commit message from CVS:
* ext/soundtouch/gstpitch.cc:
Allow seeking only in TIME and DEFAULT format, other formats will
not work as expected. Also handle a stop position of -1 correctly
for seeks, newsegment events and the queries. This fixes playback
with the pitch element if upstream doesn't know the duration or has
-1 as stop position in NEWSEGMENT events for other reasons. Before
simply nothing was played as the segment was going from 0 to 0.
Send a GST_MESSAGE_DURATION whenever the rate or tempo is changed
so applications can update their cached duration. Fixes bug #503308.
Some random cleanup and memory leak closing.
2008-01-26 15:12:50 +00:00
Sebastian Dröge
23a2e7d7ad Add support for libsoundtouch 1.3.1 and add an ugly workaround for the header definined PACKAGE and other variables f...
Original commit message from CVS:
* configure.ac:
* ext/soundtouch/gstpitch.cc:
Add support for libsoundtouch 1.3.1 and add an ugly workaround for
the header definined PACKAGE and other variables for which we need
our own values from config.h.
2008-01-26 13:24:17 +00:00
Wouter Paesen
0830d14b27 ext/soundtouch/gstpitch.cc: Handle seeking correctly. Fixes #461068.
Original commit message from CVS:
Patch by: Wouter Paesen <wouter at blue-gate dot be>
* ext/soundtouch/gstpitch.cc:
Handle seeking correctly. Fixes #461068.
2007-11-15 18:53:56 +00:00
Tim-Philipp Müller
bb6c23aa43 configure.ac: Require core CVS. This is implicit in the -base CVS requirement already, so we might just well spell i...
Original commit message from CVS:
* configure.ac:
Require core CVS.  This is implicit in the -base CVS
requirement already, so we might just well spell it
out.  Also, we do need at least 0.10.14 for
gst_element_class_set_details_simple().  Make check
for gmyth a bit more restrictive so things don't break
if the next version changes API.
* ext/alsaspdif/alsaspdifsink.c:
Work around alsa alloca macros triggering 'always evaluates to
true' warnings with gcc-4.2 and fix compilation with gcc-4.2.
Also don't leak the device string.
* ext/mpeg2enc/gstmpeg2enc.cc:
* ext/soundtouch/gstpitch.cc:
* gst/modplug/gstmodplug.cc:
Fix compilation with g++4.2 and -Wall -Werror (also needs plugin
define fix from core CVS). Fixes #462737.
2007-10-10 11:44:01 +00:00
Michael Smith
a6058388c1 ext/soundtouch/gstpitch.cc: If we receive a new segment event, don't try to push buffers out in response (without fir...
Original commit message from CVS:
* ext/soundtouch/gstpitch.cc:
If we receive a new segment event, don't try to push buffers out
in response (without first sending it on!).
Instead, flush internal buffers on receiving flush events.
Fixes playback after seeking.
2007-07-18 20:56:22 +00:00
Thomas Vander Stichele
57deb3aace higher up first
Original commit message from CVS:
higher up first
2006-09-03 21:12:36 +00:00
Wouter Paesen
34f03fe525 ext/soundtouch/: Make pitch element controllable via GstController interface (#344821).
Original commit message from CVS:
Patch by: Wouter Paesen  <wouter at kangaroot net>
* ext/soundtouch/Makefile.am:
* ext/soundtouch/gstpitch.cc:
Make pitch element controllable via GstController interface
(#344821).
* configure.ac:
Up core requirements to 0.10.8.1/CVS because earlier
GstControllers can't handle float properties correctly.
Check for GstController CFLAGS and LIBS.
* tests/icles/Makefile.am:
* tests/icles/pitch-test.c: (main):
Add small test program for the above (welcome to the 80s!).
2006-06-14 18:07:51 +00:00
Tim-Philipp Müller
f902029f7e GST_ORIGIN => GST_PACKAGE_ORIGIN
Original commit message from CVS:
* ext/soundtouch/gstpitch.cc:
* ext/theora/theoradec.c:
* gst/modplug/gstmodplug.cc:
GST_ORIGIN => GST_PACKAGE_ORIGIN
GST_PACKAGE => GST_PACKAGE_NAME
2006-04-03 10:34:54 +00:00
Wouter Paeson
89ab6598cb Add new libsoundtouch-based pitch plugin (#331335).
Original commit message from CVS:
Patch by: Wouter Paeson  <wouter at kangaroot dot net>
* configure.ac:
* ext/Makefile.am:
* ext/soundtouch/Makefile.am:
* ext/soundtouch/gstpitch.cc:
* ext/soundtouch/gstpitch.hh:
Add new libsoundtouch-based pitch plugin (#331335).
2006-03-22 14:31:47 +00:00