On 2014-11-10 19:42, Michael Schwendt wrote:
On Mon, 10 Nov 2014 13:47:47 +0100, David Henningsson wrote:
In your call to pa_stream_write, you try to send 687 bytes, but with a
frame size of 8 (could be e g 32-bit float, stereo), 687 bytes is 85.875
frames, i e not an integer number of frames.
That would be unusual and, unfortunately, a reproducer is still lacking
because of a very poor bug report. I don't see any reason why an odd number
of bytes would be sent to PA. E.g. I wouldn't expect an audio file decoder to
return an incomplete frame (here 3 bytes instead of 8).
Also, with the given log messages:
Nov 10 01:10:49 deer pulseaudio[1780]: [pulseaudio] protocol-native.c: Client
sent non-aligned memblock: index 0, length 23, frame size: 8
Nov 10 01:10:49 deer pulseaudio[1780]: [pulseaudio] protocol-native.c: Client
sent non-aligned memblock: index 23, length 8169, frame size: 8
8169+23 = 8192 would match the maximum buffer size of what is sent to the
PA output driver (e.g. as filled by mpg123 input), but pa_stream_write is
not called with an "index" parameter. So, that one seems to be something
internal.
Somehow I have the feeling there's another component involved, e.g.
something inbetween Audacious and Pulse Audio daemon.
I've been trying to look in the pulseaudio client code to see if it
would for some reason split the package up.
If you did something like:
pa_stream_begin_write(s, &data, ...)
data += 23;
pa_stream_write(s, data, ...)
...that would result in an index parameter of 23. But that seems a bit
far fetched for a client to do. And still, given a matching libpulse and
pulseaudio daemon, a length of 23 in the first package should have been
stopped at the client side anyway.
There is a loop in pa_pstream_send_memblock that can potentially split
packages, but only does so when the block exceeds a maximum size, which
is normally 64K minus a few bytes. If your maximum size sent to PA is 8K
(bytes, not frames), then that is quite far from the 64K limit anyway.
So I'm still not sure how this can happen. Let me know if you find a way
to reproduce it.
--
David Henningsson, Canonical Ltd.
https://launchpad.net/~diwic
_______________________________________________
pulseaudio-discuss mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/pulseaudio-discuss