#50: Liquidsoap + Jack
------------------------+---------------------------------------------------
Reporter: balbinus | Owner: admin
Type: Bugs | Status: new
Priority: 2 | Milestone:
Component: Liquidsoap | Version:
Keywords: |
------------------------+---------------------------------------------------
Liquidsoap has definitely a big problem handling Jack input (I've never
really tested the output). It keeps dropping samples from the ringbuffer
(usually, 1 second or more, with my specific settings). Sam's patch made
the issue a little less problematic, since now it happens only once a few
hours.
But the problem is that now, when Jack begins dropping, no matter how many
times we attempt to reconnect to the server (and to clear our ringbuffers
when doing so), Liquidsoap will continue dropping frames forever, looping
between dropping 50k+ samples and reconnecting to Jack.
I can see no logical reason to this behavior from Jack's point of view.
There is absolutely no reason for Jack to send us more data than we need,
since it can't go "faster than the music".
However, there's one reason for overfilled buffers: synchronicity being
lost between Rivendell (Jack's feeder here), Jack and Liquidsoap. This
means we don't get the data at a continuous rate. Nevertheless, we get
*all* the data that we need, and no more.
I think we could rule out this problem by adding some buffer between
input.jack() and the rest of Liquidsoap, so that both can work at
"different" paces. More generally, my gut feeling is that Liquidsoap's
components aren't independent enough with respect to each other. I have
experienced problems with Jack input when my DSL connection went down two
days ago... Though there might be no cause / consequence relationship
between the two events, they seem to closely related not to be linked.
Furthermore, we've seen dozens of other cases where Liquidsoap went nuts
because of one component failing.
--
Ticket URL: <http://savonet.rastageeks.org/ticket/50>
Savonet <http://savonet.rastageeks.org/>
Let's program our stream !