summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAnton Khirnov <anton@khirnov.net>2013-01-30 14:33:53 +0100
committerAnton Khirnov <anton@khirnov.net>2013-02-06 10:21:52 +0100
commit39a9fdd00fea6d2e40d4b9ecba38337549603a7d (patch)
tree20729157e6bcdc3df8b6c5ffad190bd2c45abd06
parent8136f234445862c94d1c081606b2d1e3d44fccf3 (diff)
yop: initialize palette to 0
The FATE sample contains some pixels with value 0, but the palette stored in the file contains only values from 16 up. Because the default and cmdutils get_buffer() initialize the data to 0x80, they appear as gray dots. After this commit they change to black dots, which is probably still incorrect but less visible and doesn't rely on get_buffer() initializing the data.
-rw-r--r--libavcodec/yop.c3
-rw-r--r--tests/ref/fate/yop6
2 files changed, 6 insertions, 3 deletions
diff --git a/libavcodec/yop.c b/libavcodec/yop.c
index 3959ada251..fd7f090839 100644
--- a/libavcodec/yop.c
+++ b/libavcodec/yop.c
@@ -206,6 +206,9 @@ static int yop_decode_frame(AVCodecContext *avctx, void *data, int *got_frame,
return ret;
}
+ if (!avctx->frame_number)
+ memset(s->frame.data[1], 0, AVPALETTE_SIZE);
+
s->dstbuf = s->frame.data[0];
s->dstptr = s->frame.data[0];
s->srcptr = avpkt->data + 4;
diff --git a/tests/ref/fate/yop b/tests/ref/fate/yop
index 57f565d5f8..1a5666069e 100644
--- a/tests/ref/fate/yop
+++ b/tests/ref/fate/yop
@@ -1,7 +1,7 @@
#tb 0: 1/12
0, 0, 0, 1, 302760, 0x78939253
0, 1, 1, 1, 302760, 0x534f5253
-0, 2, 2, 1, 302760, 0xe991aa82
-0, 3, 3, 1, 302760, 0xc34b20bd
-0, 4, 4, 1, 302760, 0x461d29a1
+0, 2, 2, 1, 302760, 0x25eaa782
+0, 3, 3, 1, 302760, 0x60861c3d
+0, 4, 4, 1, 302760, 0x43552521
0, 5, 5, 1, 302760, 0x45abca02