[Bug 724234] New: Impossible to implement soft play / pause
GStreamer (bugzilla.gnome.org)
bugzilla at gnome.org
Wed Feb 12 04:48:19 PST 2014
https://bugzilla.gnome.org/show_bug.cgi?id=724234
GStreamer | gstreamer (core) | 1.2.2
Summary: Impossible to implement soft play / pause
Classification: Platform
Product: GStreamer
Version: 1.2.2
OS/Version: Linux
Status: UNCONFIRMED
Severity: enhancement
Priority: Normal
Component: gstreamer (core)
AssignedTo: gstreamer-bugs at lists.freedesktop.org
ReportedBy: theodorz at gmail.com
QAContact: gstreamer-bugs at lists.freedesktop.org
GNOME version: ---
I would like to implement a instant fade out / fade in when the user clicks
pause or play in my music playing application. This is a pretty standard
feature in most media players.
By "instant" i mean that i want the fade out / in to react immediatly and be
complete within 200-400 ms.
I've tried to implement this in gstreamer with the following strategies:
* Using a volume element and a gst-controller fader to control the volume
property. I read the current position of the pipeline and set the next control
point X ms in the future with the new volume.
* Using a volume element and manually changing the volume-property from
separate thread every 20ms or so.
Both these method works in general, but the problem is that the audio playback
reacts too late to the action. In both cases it seems like the volume actually
only starts changing after about 200ms after i start the fadein/out.
The methods works fine for e.g. longer crossfading (> 1ms) but the delay is
unaccaptable for an instant soft pase / play.
I'm guessing the problem is that there is data buffered in the volume element
or maybe in the alsasink itself. If i do a flush I get a stutter in the
playback which is unacceptable.
I've tried various pipelines, but my typical one looks like this: uridecodebin
! audioconvert ! volume ! alsasink.
One suggestion to make this possible is to add a "volume" property directly on
the alsasink. Would this be possible?
Another suggestion is to play with the system volume directly, but this is not
possible in my application.
Any ideas, suggestions to make this possible?
Thanks!
\\ Theo
--
Configure bugmail: https://bugzilla.gnome.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the QA contact for the bug.
You are the assignee for the bug.
More information about the gstreamer-bugs
mailing list