mirror of https://git.ffmpeg.org/ffmpeg.git
avcodec/utvideoenc: Don't use bitcounts when byte-aligned
Despite write_huff_codes() receiving an ordinary buffer (not a PutBitContext), it returned the amount of data written in bits, not in bytes. This has been changed: There is now no intermediate bitcount any more. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
This commit is contained in:
parent
67f6e7ed6d
commit
df1c30f139
|
@ -398,13 +398,11 @@ static int write_huff_codes(uint8_t *src, uint8_t *dst, int dst_size,
|
||||||
if (count)
|
if (count)
|
||||||
put_bits(&pb, 32 - count, 0);
|
put_bits(&pb, 32 - count, 0);
|
||||||
|
|
||||||
/* Get the amount of bits written */
|
|
||||||
count = put_bits_count(&pb);
|
|
||||||
|
|
||||||
/* Flush the rest with zeroes */
|
/* Flush the rest with zeroes */
|
||||||
flush_put_bits(&pb);
|
flush_put_bits(&pb);
|
||||||
|
|
||||||
return count;
|
/* Return the amount of bytes written */
|
||||||
|
return put_bytes_output(&pb);
|
||||||
}
|
}
|
||||||
|
|
||||||
static int encode_plane(AVCodecContext *avctx, uint8_t *src,
|
static int encode_plane(AVCodecContext *avctx, uint8_t *src,
|
||||||
|
@ -512,11 +510,11 @@ static int encode_plane(AVCodecContext *avctx, uint8_t *src,
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Write the huffman codes to a buffer,
|
* Write the huffman codes to a buffer,
|
||||||
* get the offset in bits and convert to bytes.
|
* get the offset in bytes.
|
||||||
*/
|
*/
|
||||||
offset += write_huff_codes(dst + sstart * width, c->slice_bits,
|
offset += write_huff_codes(dst + sstart * width, c->slice_bits,
|
||||||
width * height + 4, width,
|
width * height + 4, width,
|
||||||
send - sstart, he) >> 3;
|
send - sstart, he);
|
||||||
|
|
||||||
slice_len = offset - slice_len;
|
slice_len = offset - slice_len;
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue