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".