X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=libavcodec%2Fput_bits.h;h=7d11a3576a5c1d4c026198a4f8278a7099cb0a66;hb=9d6be83085ccb1f52b923064eb93566ddbb0a1f7;hp=1ceb1cc766246dff19de5d7baf97a5c79a3bc157;hpb=c2631dfd0a0a12050cc1765fd41702c5e93abee5;p=ffmpeg diff --git a/libavcodec/put_bits.h b/libavcodec/put_bits.h index 1ceb1cc7662..7d11a3576a5 100644 --- a/libavcodec/put_bits.h +++ b/libavcodec/put_bits.h @@ -61,17 +61,25 @@ static inline void init_put_bits(PutBitContext *s, uint8_t *buffer, s->bit_buf = 0; } +/** + * @return the total number of bits written to the bitstream. + */ +static inline int put_bits_count(PutBitContext *s) +{ + return (s->buf_ptr - s->buf) * 8 + 32 - s->bit_left; +} + /** * Rebase the bit writer onto a reallocated buffer. * * @param buffer the buffer where to put bits * @param buffer_size the size in bytes of buffer, - * must be larger than the previous size + * must be large enough to hold everything written so far */ static inline void rebase_put_bits(PutBitContext *s, uint8_t *buffer, int buffer_size) { - av_assert0(8*buffer_size > s->size_in_bits); + av_assert0(8*buffer_size >= put_bits_count(s)); s->buf_end = buffer + buffer_size; s->buf_ptr = buffer + (s->buf_ptr - s->buf); @@ -79,14 +87,6 @@ static inline void rebase_put_bits(PutBitContext *s, uint8_t *buffer, s->size_in_bits = 8 * buffer_size; } -/** - * @return the total number of bits written to the bitstream. - */ -static inline int put_bits_count(PutBitContext *s) -{ - return (s->buf_ptr - s->buf) * 8 + 32 - s->bit_left; -} - /** * @return the number of bits available in the bitstream. */