#101: Vorbis decoding stuck when decoding small vorbis bitstream followed by a
new one..
-------------------------+--------------------------------------------------
Reporter: toots | Owner: admin
Type: Bugs | Status: reopened
Priority: 4 | Milestone: 0.3.7
Component: Liquidsoap | Version: 0.3.6+svn
Resolution: | Keywords:
Mac: 0 | Other: 0
Freebsd: 0 | Linux: 1
-------------------------+--------------------------------------------------
Changes (by toots):
* summary: Strange interaction with vorbis output, playlist and harbor..
=> Vorbis decoding stuck when decoding small
vorbis bitstream followed by a new one..
Comment:
Ok, I think I found out the issue.
As it seems, when the vorbis stream switches too quickly to a new track,
then the decoding funtion in http_vorbis.ml:
{{{
let buf = Vorbis.Decoder.decode_float_alloc dec samples_per_frame in
}}}
might get stucks.
For instance, if you use a 1 sec blank and a single, it will fail, but it
will work with 5 sec of blank and a single.
It *seems* to work with {{{mksafe(input.http)}}} because the blank before
getting the http stream is long enough..
My point is that it must be due to the fact that we use the file decoding
library for streams, and that we rarely have a 3 sec file to decode. And
even if we had it, the reading function will return with an EOS.
Here, it seems the function get stuck trying to get vorbis data for the
original bitstream, while the stream has swtiched to the new data... So it
gets stuck reading data without being able to find the initial bitstream..
I have a fix for some situations, but there should be a more general fix
here..
--
Ticket URL: <http://savonet.rastageeks.org/ticket/101#comment:5>
Savonet <http://savonet.rastageeks.org/>
Let's program our stream !