[libav-commits] proresenc: Write the full value in one put_bits call

Martin Storsjö git at libav.org
Tue Sep 4 14:34:41 CEST 2012


Module: libav
Branch: master
Commit: 6d9e74cd4179f42a8fa860f2e08d370c7c36325f

Author:    Martin Storsjö <martin at martin.st>
Committer: Martin Storsjö <martin at martin.st>
Date:      Tue Sep  4 14:31:52 2012 +0300

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>

---

 libavcodec/proresenc.c |    3 +--
 1 files changed, 1 insertions(+), 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 libav-commits mailing list