Transporting sound from 'mpd' server to laptop

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Am 20.10.2013 18:08, schrieb Paul LeoNerd Evans:
> On Sun, 20 Oct 2013 07:25:23 +0100
> Tanu Kaskinen <tanu.kaskinen at linux.intel.com> wrote:
>
>> Latency can only increase only if there is some buffer that is
>> growing. module-tunnel doesn't have such buffer. It sounds like MPD
>> is working so that it writes at a constant pace to an internal
>> buffer, and reads from the buffer at the rate that PulseAudio asks
>> for more data. If network glitches occur, PulseAudio will ask less
>> often, so MPD's buffer will get larger and larger. If this
>> speculation is true, then MPD should be fixed. It should define some
>> maximum size for the buffer. 30 seconds is silly. And if you're
>> playing local files, this whole problem shouldn't exist, because MPD
>> should decode the files at the rate PulseAudio is consuming the data,
>> not at a constant wall-clock rate.
> In fact, I have just used tcpdump to prove this isn't the case.
>
> Because the TCP tunnel contains pure uncompressed PCM audio, a tcpdump
> with hexdump of the raw TCP segments contains pure zeroes during
> silence. With mpd paused, I see lots of zeroes go by.
>
> The /moment/ I unpause mpd, those zeros turn into varying numbers,
> containing real audio data. Yet my speakers remain silent... a number
> of seconds afterwards, sound now comes out. So then I hit pause.
> Instantly, those numbers in tcpdump are all zeroes again, but yet it
> takes a number of seconds for the sound to stop coming out of the
> speakers.
>
> This latency is occurring entirely with the tunnel receiver in my
> laptop, and not mpd.
>

Interesting find. That indeed proves pulseaudio at the receiving end 
accumulates latency. I have always felt it must be that way because the 
progressbars of all media players I have tried correspond to where the 
app is at decoding (and not what the speaker output).

I wonder if it's really in the tunnel module or somewhere deeper. I also 
wonder if this works differently with the rewritten tunnel module (this 
year's GSoC brought it, it's in git master but not released yet).

Best regards


[Index of Archives]     [Linux Audio Users]     [AMD Graphics]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux