I've been banging my head against every wall in my house for weeks now
with this problem.
If you try to add metadata using insert_metadata, add_timeout and
execute to an input.jack(), it will end up failing (audio doesn't get
through anymore, only metadata (!)). When this happens, input.jack()
discards everything it gets from Jack.
Now, one "solution" that has been proposed by David was to augment the
size of the frames. 4096 instead of 1024 seems to stabilize the stuff.
But it has introduced a "new" problem: everytime metadata gets updated,
some samples go missing, which creates a strange effect when you're
listening to the stream.
This "new" problem isn't exactly new: I recall very well having
encountered it when inserting metadata on Pytagor's stream (which is
based on input.alsa). Now, the thing I don't really remember is whether
or not we solved this problem -- I think yes -- and above all, how.
Last but not least, I have noticed on two streams generated by
Liquidsoap that use metadata insertion that oggz-validate reports
inconsistencies in the packet ordering:
$ oggz-validate --partial /tmp/dfs.ogg
00:00:00.000: serialno 1167312499: Packet out of order (previous
00:00:00.000: serialno 0056579649: Packet out of order (previous
00:00:00.000: serialno 2012438971: Packet out of order (previous
00:00:00.000: serialno 0283177365: Packet out of order (previous
00:00:00.000: serialno 1720377089: Packet out of order (previous
This is true on this test stream which uses input.jack (running latest
SVN), but this is also true on Pytagor's stream, which is running rev
3703, and uses input.alsa. The metadata insertion methods are identical:
insert_metadata + add_timeout + execute.
This is however not true on another test stream which is created by
Ices, but has no metadata update. I will be investigating soon to see if
I can find an Ogg Vorbis stream that has metadata updates but that
wasn't generated by Liquidsoap.
Radio Pytagor : http://www.radiopytagor.com/