[FFmpeg-cvslog] Make LucasArts Smush SANM palette opaque.
Carl Eugen Hoyos
git at videolan.org
Tue Jun 26 09:55:09 CEST 2012
ffmpeg | branch: master | Carl Eugen Hoyos <cehoyos at ag.or.at> | Tue Jun 26 09:52:10 2012 +0200| [6eff2772843067b3dfb615b112744346d546ae40] | committer: Carl Eugen Hoyos
Make LucasArts Smush SANM palette opaque.
Reviewed-by: Paul B Mahol
> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=6eff2772843067b3dfb615b112744346d546ae40
---
libavcodec/sanm.c | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/libavcodec/sanm.c b/libavcodec/sanm.c
index 777f693..f5de6a2 100644
--- a/libavcodec/sanm.c
+++ b/libavcodec/sanm.c
@@ -283,7 +283,7 @@ static av_cold int decode_init(AVCodecContext *avctx)
ctx->subversion = AV_RL16(avctx->extradata);
for (i = 0; i < 256; i++)
- ctx->pal[i] = AV_RL32(avctx->extradata + 2 + i * 4);
+ ctx->pal[i] = 0xFF << 24 | AV_RL32(avctx->extradata + 2 + i * 4);
}
return 0;
@@ -1163,7 +1163,7 @@ static int decode_frame(AVCodecContext *avctx, void *data,
return AVERROR_INVALIDDATA;
}
for (i = 0; i < 256; i++)
- ctx->pal[i] = bytestream2_get_be24u(&ctx->gb);
+ ctx->pal[i] = 0xFF << 24 | bytestream2_get_be24u(&ctx->gb);
break;
case MKBETAG('F', 'O', 'B', 'J'):
if (size < 16)
@@ -1181,7 +1181,7 @@ static int decode_frame(AVCodecContext *avctx, void *data,
int t = (ctx->pal[i] >> (16 - j * 8)) & 0xFF;
tmp[j] = av_clip_uint8((t * 129 + ctx->delta_pal[i * 3 + j]) >> 7);
}
- ctx->pal[i] = AV_RB24(tmp);
+ ctx->pal[i] = 0xFF << 24 | AV_RB24(tmp);
}
} else {
if (size < 768 * 2 + 4) {
@@ -1194,7 +1194,7 @@ static int decode_frame(AVCodecContext *avctx, void *data,
ctx->delta_pal[i] = bytestream2_get_le16u(&ctx->gb);
if (size >= 768 * 5 + 4) {
for (i = 0; i < 256; i++)
- ctx->pal[i] = bytestream2_get_be24u(&ctx->gb);
+ ctx->pal[i] = 0xFF << 24 | bytestream2_get_be24u(&ctx->gb);
} else {
memset(ctx->pal, 0, sizeof(ctx->pal));
}
More information about the ffmpeg-cvslog
mailing list