|View Issue Details|
|ID||Project||Category||View Status||Date Submitted||Last Update|
|0003667||MPD||Audio Output - Pulseaudio||public||2013-02-04 17:11||2016-02-28 10:29|
|Platform||Raspberry pi||OS||raspbian||OS Version||2012-12|
|Product Version||Older than 0.18|
|Target Version||Fixed in Version|
|Summary||0003667: Configure PulseAudio stream to use a higher latency|
|Description||In Gstreamer I can configure the sink to let the sound hardware buffer 2000ms when routing through pulseaudio. This appears to be not possible using MPD?|
I always get 200ms, where for simple music playback using a higher latency than the default would be desirable (for power saving reasons).
I suppose making this configurable would be best.
|Steps To Reproduce||$ pactl list sink-inputs|
Sink Input 0000015
Owner Module: 2
Sample Specification: s16le 2ch 44100Hz
Channel Map: front-left,front-right
Format: pcm, format.sample_format = "\"s16le\"" format.rate = "44100" format.channels = "2" format.channel_map = "\"front-left,front-right\""
Volume: 0: 52% 1: 52%
0: -17.04 dB 1: -17.04 dB
Buffer Latency: 81995 usec
Sink Latency: 208486 usec
Resample method: n/a
media.name = "PulseAudio"
application.name = "Music Player Daemon"
native-protocol.peer = "UNIX socket client"
native-protocol.version = "27"
media.role = "music"
application.process.id = "2073"
application.process.user = "mpd"
application.process.host = "arpi"
application.process.binary = "threaded-ml"
application.language = "C"
application.process.machine_id = "f12629ad79391c6f12cbbc1a50ccbcc8"
module-stream-restore.id = "sink-input-by-media-role:music"
|Additional Information||The scheme is described at  under the heading "Developing High-Latency Applications"|
|Tags||No tags attached.|
|Care to write a patch? I don't use Pulse.|
My abilities would perhaps allow me to hack a value into the pa_stream_connect_playback() call and test this.
But it would already be beyond my abilities to hook it up to the rest of MPD in any clean manner.
Should I at least test with the max int - 1 hard coded value?
|Is there anything to hook up? I mean, MPD doesn't care about latency at all, it isn't interested in knowing the actual latency. MPD is optimized for reliability, not at all for latency. I'm ok with hard-coding a large value, if there's no downside.|
The downside is that upon skip the buffer has to be discarded, or rewritten, otherwise after a pause or skip it would continue playing for 2000ms.
Also this is beyond my abilities. This would have to be implemented as well I suppose.
The thing is that the client has to tell pulse what it wants: just play some music whenever, or give me as close to real-time as possible for voip, for example.
As the default pulse gives you 200ms, where more would be more appropriate.
|For 3 years, nobody was interested in writing code. Closing due to lack of interest.|
|2013-02-04 17:11||towolf||New Issue|
|2013-02-04 17:11||towolf||Status||new => assigned|
|2013-02-04 17:11||towolf||Assigned To||=> cirrus|
|2013-02-04 17:14||cirrus||Note Added: 0007638|
|2013-02-04 17:19||towolf||Note Added: 0007639|
|2013-02-04 17:21||cirrus||Note Added: 0007640|
|2013-02-04 17:27||towolf||Note Added: 0007641|
|2013-04-06 13:51||cirrus||Severity||minor => feature|
|2016-02-28 10:29||cirrus||Note Added: 0009838|
|2016-02-28 10:29||cirrus||Status||assigned => closed|
|2016-02-28 10:29||cirrus||Resolution||open => won't fix|