[Ffmpeg-devel] [PATCH] simple internal lzo decoder

Michael Niedermayer michaelni
Sat Jan 14 18:07:04 CET 2006


Hi

On Sat, Jan 14, 2006 at 04:21:44PM +0100, Reimar D?ffinger wrote:
[...]
> -    do {
> -        *c->out++ = c->out[-back];
> -    } while (--cnt);
> +    if (back == 1)
> +        memset(c->out, c->out[-1], cnt);
> +    else {
> +        int blocklen = (cnt > back) ? back : cnt;
> +        uint8_t *start = &c->out[-back];
> +        while (cnt > blocklen) {
> +           memcpy(c->out, start, blocklen);
> +           c->out += blocklen;
> +           cnt -= blocklen;
> +           blocklen <<= 1;
> +        }
> +        memcpy(c->out, start, cnt);
> +    }
> +    c->out += cnt;

is that faster then memmove()?


-- 
Michael





More information about the ffmpeg-devel mailing list