#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 !

Répondre à