[FFmpeg-cvslog] proresenc: Write the full value in one put_bits call
Martin Storsjö
git at videolan.org
Tue Sep 4 17:15:03 CEST 2012
ffmpeg | branch: master | Martin Storsjö <martin at martin.st> | Tue Sep 4 14:31:52 2012 +0300| [6d9e74cd4179f42a8fa860f2e08d370c7c36325f] | committer: Martin Storsjö
proresenc: Write the full value in one put_bits call
Previously, the put_bits call writing the value wrote a value
larger than the number of bits specified, failing asserts
in debug mode. There was no actual bitstream writer corruption,
since the overwritten bit already always was set to 1.
Signed-off-by: Martin Storsjö <martin at martin.st>
> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=6d9e74cd4179f42a8fa860f2e08d370c7c36325f
---
libavcodec/proresenc.c | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/libavcodec/proresenc.c b/libavcodec/proresenc.c
index a24b711..f4feed5 100644
--- a/libavcodec/proresenc.c
+++ b/libavcodec/proresenc.c
@@ -299,8 +299,7 @@ static inline void encode_vlc_codeword(PutBitContext *pb, unsigned codebook, int
exponent = av_log2(val);
put_bits(pb, exponent - exp_order + switch_bits, 0);
- put_bits(pb, 1, 1);
- put_bits(pb, exponent, val);
+ put_bits(pb, exponent + 1, val);
} else {
exponent = val >> rice_order;
More information about the ffmpeg-cvslog
mailing list