[FFmpeg-devel] [PATCH] Fix get_ur_golomb_jpegls() with A32_BITSTREAM_READER

Mans Rullgard mans
Tue Feb 24 02:13:05 CET 2009


If k==0, log==0 can indicate that the coded value uses more than
MIN_CACHE_BITS bits.  With MIN_CACHE_BITS==32, the fast branch is
incorrectly taken in this case unless explicitly forbidden.
---
 libavcodec/golomb.h |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/libavcodec/golomb.h b/libavcodec/golomb.h
index 989a87a..59b4f9e 100644
--- a/libavcodec/golomb.h
+++ b/libavcodec/golomb.h
@@ -273,7 +273,7 @@ static inline int get_ur_golomb_jpegls(GetBitContext *gb, int k, int limit, int
 
     log= av_log2(buf);
 
-    if(log - k >= 32-MIN_CACHE_BITS && 32-log < limit){
+    if(log - k >= 32-MIN_CACHE_BITS+(MIN_CACHE_BITS==32) && 32-log < limit){
         buf >>= log - k;
         buf += (30-log)<<k;
         LAST_SKIP_BITS(re, gb, 32 + k - log);
-- 
1.6.1.2





More information about the ffmpeg-devel mailing list