summaryrefslogtreecommitdiff
path: root/libavcodec/lagarith.c
diff options
context:
space:
mode:
authorReimar Döffinger <Reimar.Doeffinger@gmx.de>2011-01-15 12:44:48 +0000
committerReimar Döffinger <Reimar.Doeffinger@gmx.de>2011-01-15 12:44:48 +0000
commitb0c8b8a69d37b55a03a600d753113f4314404080 (patch)
tree6d28293e6e1cc19c232442c080796846ba15ec04 /libavcodec/lagarith.c
parentfbd56159a099dafac617440a2312b47dcb0386c7 (diff)
Lagarith: fix decoding of one-coloured frames by reading the per-plane
color value instead of always taking 0 (resulting in green frames). Fixes issue issue2531. Originally committed as revision 26363 to svn://svn.ffmpeg.org/ffmpeg/trunk
Diffstat (limited to 'libavcodec/lagarith.c')
-rw-r--r--libavcodec/lagarith.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/libavcodec/lagarith.c b/libavcodec/lagarith.c
index 95179df729..1bf61bd23d 100644
--- a/libavcodec/lagarith.c
+++ b/libavcodec/lagarith.c
@@ -405,9 +405,13 @@ static int lag_decode_arith_plane(LagarithContext *l, uint8_t *dst,
}
}
} else if (esc_count == 0xff) {
- /* Plane is a solid run of 0 bytes */
+ /* Plane is a solid run of given value */
for (i = 0; i < height; i++)
- memset(dst + i * stride, 0, width);
+ memset(dst + i * stride, src[1], width);
+ /* Do not apply prediction.
+ Note: memset to 0 above, setting first value to src[1]
+ and applying prediction gives the same result. */
+ return 0;
} else {
av_log(l->avctx, AV_LOG_ERROR,
"Invalid zero run escape code! (%#x)\n", esc_count);