QUOTE(bond @ Dec 3 2003, 03:01 PM)
2) The container-splitter does the container-CRC checking and therefore should avoid passing the broken parts to the decoder
(as you said yourself the matroska splitter currently doesnt do that, which means that the matroska CRC is useless cause it isnt used anyways...)
Noooo !! Dont you see that this is plain wrong ?

If the CRC32 check fails, all you know is that something in the block has been changed. Unfortunately, CRC32 wont tell you
HOW MUCH has changed, so in the end it may be a single bit only, causing no damage at all to the decoder !!
So because of that, in many cases it may be a much better solution to pass the data to the decoder even
IF the CRC check has failed, because otherwise you may have to skip a part of say 1000 frames, and without any necessity, because you are no passing an important I frame to the decoder because of a single bit, making the following 1000 P/B frames redundant !!
Again, depending on the codec and its sensitivity to corrupted data, a decision has to be done if packets where CRC failed had to be passed or not. A general assumption to not pass those data is not correct. In fact, i loved to talk to codec developers more on this issue, as they might know best how good ( or bad

) their codecs will behave, and if they prefer to get bad blocks in any case, or not ....