On 12.05.2019, at 08:12, Peter Ross <pr...@xvid.org> wrote:
> +static int read_mb_value(GetBitContext *gb)
> +{
> +    int v = 1;
> +    int size;
> +
> +    do {
> +        size = 0;
> +        if (!get_bits1(gb))
> +            break;
> +        v++;
> +        do {
> +            if (!get_bits1(gb))
> +                break;
> +            v += 1 << size++;
> +        } while (size < 8);
> +    } while (size == 8);
> +
> +    if (size)
> +        v += get_bits(gb, size);
> +
> +    return v;
> +}

Maybe not worth it performance wise, but did you check if this could be 
simplified?
For example the get_bits1 cases that end up with size 0 could return directly.
Or it could peek ahead 9 bits in the bitstream and count the leading 1s to get 
v and size without looping (i.e. loop only for the 9 bits of 1s specifically).
Alternatively add a comment to clarify the encoding scheme it implements (like 
9 consecutive 1s is a prefix encoding an offset of 257 etc).
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

To unsubscribe, visit link above, or email
ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".

Reply via email to