[FFmpeg-devel] [PATCH 2/4] mm: decode partial palette

Peter Ross pross at xvid.org
Sat Jun 8 12:05:20 EEST 2024


---
palette decoding now conforms to description at https://wiki.multimedia.cx/index.php/IBM_PhotoMotion

 libavcodec/mmvideo.c | 10 ++++------
 1 file changed, 4 insertions(+), 6 deletions(-)

diff --git a/libavcodec/mmvideo.c b/libavcodec/mmvideo.c
index 3038d9ea92..b5b6ffd25b 100644
--- a/libavcodec/mmvideo.c
+++ b/libavcodec/mmvideo.c
@@ -79,12 +79,10 @@ static av_cold int mm_decode_init(AVCodecContext *avctx)
 static void mm_decode_pal(MmContext *s)
 {
     int i;
-
-    bytestream2_skip(&s->gb, 4);
-    for (i = 0; i < 128; i++) {
-        s->palette[i] = 0xFFU << 24 | bytestream2_get_be24(&s->gb);
-        s->palette[i+128] = s->palette[i]<<2;
-    }
+    int start = bytestream2_get_le16(&s->gb);
+    int count = bytestream2_get_le16(&s->gb);
+    for (i = 0; i < count; i++)
+        s->palette[start+i] = 0xFFU << 24 | (bytestream2_get_be24(&s->gb) << 2);
 }
 
 /**
-- 
2.43.0

-- Peter
(A907 E02F A6E5 0CD2 34CD 20D2 6760 79C5 AC40 DD6B)


More information about the ffmpeg-devel mailing list