[FFmpeg-devel] [PATCH] FLAC parser

Michael Niedermayer michaelni
Sun Oct 24 15:27:09 CEST 2010


On Sat, Oct 23, 2010 at 04:08:59AM +0200, Michael Chinen wrote:
[...]
> +static int find_new_headers(FLACParseContext *fpc, int search_start)
> +{
> +    FLACHeaderMarker *end;
> +    int search_end, size = 0, read_len, temp;
> +    uint8_t *buf;
> +    fpc->nb_headers_found = 0;
> +
> +    /* Search for a new header of at most 16 bytes. */
> +    search_end = av_fifo_size(fpc->fifo_buf) - (MAX_FRAME_HEADER_SIZE - 1);
> +    read_len   = search_end - search_start + 1;
> +    buf        = flac_fifo_read(fpc, search_start, &read_len);
> +    size       = find_headers_search(fpc, buf, read_len, search_start);
> +    search_start += read_len - 1;
> +

> +    /* if we hit the fifo end we need a wrap buffer for the two byte wrap around */
> +    if (search_start != search_end) {
> +        buf  = flac_fifo_read_wrap(fpc, search_start, 2,
> +                                  &fpc->wrap_buf, &fpc->wrap_buf_allocated_size);
> +        temp = find_headers_search(fpc, buf, 2, search_start);
> +        size = FFMAX(size, temp);
> +        search_start += 1;
> +    }

the 2 bytes can be checked directly and find_headers_search_validate() be called

also i leave further review to the flac maintainer

a bit of further simplification and cleanup would be nice though

[...]
-- 
Michael     GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB

The misfortune of the wise is better than the prosperity of the fool.
-- Epicurus
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 198 bytes
Desc: Digital signature
URL: <http://lists.mplayerhq.hu/pipermail/ffmpeg-devel/attachments/20101024/4796fe53/attachment.pgp>



More information about the ffmpeg-devel mailing list