codecparsers: vc1: fix bitplanes decoding (DIFF6 or NORM6).

Fix decoding of DIFF6 or NORM6 bitplanes with an odd number of lines
(3x2 "horizontal" tiles). In this case, we have to skip the first line
of macroblocks but <width> number of bytes was used to do so, instead
of the actual <stride> size.

This fixes decoding for the video sample attached to:
https://bugzilla.gnome.org/show_bug.cgi?id=668565

https://bugzilla.gnome.org/show_bug.cgi?id=692461

Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
This commit is contained in:
Gwenole Beauchesne 2013-01-24 17:28:22 +01:00
parent d1023646f9
commit fa2a526f04

View file

@ -529,7 +529,7 @@ bitplane_decoding (GstBitReader * br, guint8 * data,
} else { /* decode 3x2 "horizontal" tiles */
if (pdata)
pdata += (height & 1) * width;
pdata += (height & 1) * stride;
for (y = height & 1; y < height; y += 2) {
for (x = width % 3; x < width; x += 3) {
if (!decode_vlc (br, &v, vc1_norm6_vlc_table,