[FFmpeg-devel] [PATCH] FLAC parser

Felipe Contreras felipe.contreras
Sun Sep 26 01:47:14 CEST 2010

On Fri, Aug 20, 2010 at 10:32 AM, Michael Chinen <mchinen at gmail.com> wrote:
> On Wed, Aug 18, 2010 at 7:29 PM, Michael Niedermayer <michaelni at gmx.at> wrote:
> [...]
>>> Putting in MN's suggestion to concatenate sequential valid CRCs instead of checking them twice.
>> elaborate on what you do here please
> When a new header candidate (FLACHeaderMarker) is found and added as
> the nth header a linked list, CRC is verified from the start of the
> n-1 header to the nth. ?If this check fails, the n-2 header to n CRC
> is computed up to n-kth header, where k is the
> FLAC_MAX_SEQUENTIAL_HEADERS constant. ?If a check succeeds the (m-1)
> bit of the N-mth FLACHeaderMarker's crc_valid is set. ?Then all
> headers that came before it and within the max distance are marked
> valid to the nth header by having the appropriate bit of crc_valid set
> if they are marked valid to the N-mth header.
> This means that if CRCs verify no byte will be double checked. ?If a
> header's crc fails, then they will. ? This could be removed at the
> cost of tracking non zero CRC remainders for those that fail, but
> since this does not happen often, I thought it was a not a good
> optimization.

These don't work for me, I just get a bunch of:
Error while decoding stream #0.0
[flac @ 0x933d6a0] invalid frame header: frame sync error
[flac @ 0x933d6a0] decode_frame() failed

Oh, and BTW, other projects put the patch series changes in the
diffstat of the patch (so it's not part of the commit message).


Felipe Contreras

More information about the ffmpeg-devel mailing list