Commit graph

40 commits

Author SHA1 Message Date
Doug Nazar
52f736c233 pitch: Fix race between putSamples() and setting soundtouch parameters
The various soundtouch set*() functions may cause buffer (re)allocations
which interferes with inputting the audio data.
2019-08-14 15:32:24 +00:00
Tim-Philipp Müller
bde76a7dd0 soundtouch: Update for g_type_class_add_private() deprecation in recent GLib 2018-06-24 01:15:59 +02:00
Mathieu Duponchelle
85406b9827 pitch: remove trailing whitespaces from previous commit 2018-06-18 23:42:04 +02:00
Suhas Nayak
68052a7bc3 pitch: Flush only if there are unprocessed samples
Otherwise we end up trying to flush before
sample rate of SoundTouch is set

https://bugzilla.gnome.org/show_bug.cgi?id=796613
2018-06-18 23:39:47 +02:00
Mathieu Duponchelle
44f0814855 pitch: preserve seek event seqnums
This was wreaking havoc when used with a downstream audiomixer.

https://bugzilla.gnome.org/show_bug.cgi?id=796603
2018-06-16 18:38:46 +02:00
Mathieu Duponchelle
0b03b47193 pitch: fix latency reporting
When max is GST_CLOCK_TIME_NONE in the query, it should not
be set in the query handler, this otherwise could lead to
impossible situations, where the minimum latency ended up
greater than the maximum.

https://bugzilla.gnome.org/show_bug.cgi?id=796603
2018-06-16 18:38:46 +02:00
Mathieu Duponchelle
5f020be6cd pitch: Fix single input buffer followed by EOS
The flush function immediately returned when pitch->next_buffer_offset
was 0.

This is clearly wrong, as next_buffer_offset can be 0 when a single
input buffer has been received, and no output buffer has been produced
before receiving EOS.

Simply remove that condition.

https://bugzilla.gnome.org/show_bug.cgi?id=796603
2018-06-16 18:38:46 +02:00
Vineeth TM
8cdfb13658 bad: use new gst_element_class_add_static_pad_template()
https://bugzilla.gnome.org/show_bug.cgi?id=763081
2016-03-24 14:56:51 +02:00
Thibault Saunier
b6ad1b0c22 pitch: Set seqnum on newly created segment event
https://bugzilla.gnome.org/show_bug.cgi?id=755012
2015-09-15 13:41:18 +02:00
Edward Hervey
eb0a307e28 soundtouch: Add missing break in switch
Whoops, modifying the pitch when modifying the output rate ...

CID #1139749
2014-04-08 11:23:50 +02: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
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
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
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
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
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
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
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
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