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

Andreas Rheinhardt andreas.rheinhardt at outlook.com
Sat Jun 8 16:47:13 EEST 2024


Peter Ross:
> ---
> 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++)

You can use loop-scope for the iterator here and save a line.

> +        s->palette[start+i] = 0xFFU << 24 | (bytestream2_get_be24(&s->gb) << 2);
>  }
>  
>  /**



More information about the ffmpeg-devel mailing list