Browse code

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

Kostya Shishkov authored on 2011/01/15 22:29:14
Showing 1 changed files
... ...
@@ -119,7 +119,7 @@ static void init_lengths(BinkContext *c, int width, int bw)
119 119
 
120 120
     c->bundle[BINK_SRC_SUB_BLOCK_TYPES].len = av_log2((width >> 4) + 511) + 1;
121 121
 
122
-    c->bundle[BINK_SRC_COLORS].len = av_log2((width >> 3)*64 + 511) + 1;
122
+    c->bundle[BINK_SRC_COLORS].len = av_log2(bw*64 + 511) + 1;
123 123
 
124 124
     c->bundle[BINK_SRC_INTRA_DC].len =
125 125
     c->bundle[BINK_SRC_INTER_DC].len =
... ...
@@ -128,7 +128,7 @@ static void init_lengths(BinkContext *c, int width, int bw)
128 128
 
129 129
     c->bundle[BINK_SRC_PATTERN].len = av_log2((bw << 3) + 511) + 1;
130 130
 
131
-    c->bundle[BINK_SRC_RUN].len = av_log2((width >> 3)*48 + 511) + 1;
131
+    c->bundle[BINK_SRC_RUN].len = av_log2(bw*48 + 511) + 1;
132 132
 }
133 133
 
134 134
 /**