[SCM] libav/experimental: Change some band size calculations in Bink decoder to use width in blocks instead of real width, this fixes decoding of some Bink files with odd width.

siretart at users.alioth.debian.org siretart at users.alioth.debian.org
Sun Jun 30 17:21:57 UTC 2013


The following commit has been merged in the experimental branch:
commit 03ec42aa1ce738761130335e6e6f5ef5d0d1eadf
Author: Kostya Shishkov <kostya.shishkov at gmail.com>
Date:   Sat Jan 15 13:29:14 2011 +0000

    Change some band size calculations in Bink decoder to use width in blocks
    instead of real width, this fixes decoding of some Bink files with odd width.
    
    Originally committed as revision 26364 to svn://svn.ffmpeg.org/ffmpeg/trunk

diff --git a/libavcodec/bink.c b/libavcodec/bink.c
index 5f2fc31..0129403 100644
--- a/libavcodec/bink.c
+++ b/libavcodec/bink.c
@@ -119,7 +119,7 @@ static void init_lengths(BinkContext *c, int width, int bw)
 
     c->bundle[BINK_SRC_SUB_BLOCK_TYPES].len = av_log2((width >> 4) + 511) + 1;
 
-    c->bundle[BINK_SRC_COLORS].len = av_log2((width >> 3)*64 + 511) + 1;
+    c->bundle[BINK_SRC_COLORS].len = av_log2(bw*64 + 511) + 1;
 
     c->bundle[BINK_SRC_INTRA_DC].len =
     c->bundle[BINK_SRC_INTER_DC].len =
@@ -128,7 +128,7 @@ static void init_lengths(BinkContext *c, int width, int bw)
 
     c->bundle[BINK_SRC_PATTERN].len = av_log2((bw << 3) + 511) + 1;
 
-    c->bundle[BINK_SRC_RUN].len = av_log2((width >> 3)*48 + 511) + 1;
+    c->bundle[BINK_SRC_RUN].len = av_log2(bw*48 + 511) + 1;
 }
 
 /**

-- 
Libav/FFmpeg packaging



More information about the pkg-multimedia-commits mailing list