[CELT-dev] bit error robustness
Timothy B. Terriberry
tterribe at xiph.org
Tue Jul 31 11:34:12 PDT 2012
Heiko.Zeuner at Sennheiser.com wrote:
> But the Celt decoder stops decoding with the first bit I manipulated
> even if this bit is not in the header.
celtenc encodes stores the result in an Ogg container, which contains
checksums, so changing the bits without changing the checksums will
cause it to reject the entire page the data is on.
> So is there a way to do the test from the command line?
a) You should probably be looking at Opus, not CELT. libcelt is no
longer being maintained. Opus is a complete superset of CELT, and
libopus contains many important bug fixes that libcelt does not.
b) If you use, for example, opus_demo from the libopus source
distribution, you can avoid Ogg and its checksums, however it still
stores raw 4-byte packet length fields in front of each packet, (see the
if(encode_only) block around line 666 of opus_demo.c). Any real
transport subject to bit errors would do a better job of recovering from
errors to that field.
More information about the opus