[gstreamer-bugs] [Bug 617339] New: pulsesink doesn't make use of pa_stream_begin_write
GStreamer (bugzilla.gnome.org)
bugzilla at gnome.org
Fri Apr 30 16:53:45 PDT 2010
https://bugzilla.gnome.org/show_bug.cgi?id=617339
GStreamer | gst-plugins-good | git
Summary: pulsesink doesn't make use of pa_stream_begin_write
Classification: Desktop
Product: GStreamer
Version: git
OS/Version: Linux
Status: UNCONFIRMED
Severity: normal
Priority: Normal
Component: gst-plugins-good
AssignedTo: gstreamer-bugs at lists.sourceforge.net
ReportedBy: bossart.nospam at gmail.com
QAContact: gstreamer-bugs at lists.sourceforge.net
GNOME target: ---
GNOME version: ---
Created an attachment (id=160029)
--> (https://bugzilla.gnome.org/attachment.cgi?id=160029)
patch against git master
The current version of pulsesink creates a lot of overhead. For example, when
decoding mp3, it'll send 4608 bytes at once, even when the latency was
specified as 'don't care' with a large buffer-time/tlength value.
The proposed solution (patch attached) relies on a shm buffer provided by pulse
audio. PCM samples are copied into this buffer, and it's flushed when there's
no space left. This saves a lots of useless overhead and helps reduce power
consumption. On a Menlow platform this help go from 12% C0 to 9%. We use this
patch for all power/performance measurements at Intel, and we might as well
contribute it to the community.
This solution works only with PulseAudio >0.9.16 (about a year old). The patch
has not been tested for the case where the 'toy resampler' is used, mainly
since I don't know how to test it.
An additional improvement could be to flush the buffer when the latency-time
value was reached. Flushing the buffer when it is full could be an issue for
low-latency apps.
Feedback welcome.
--
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