[FFmpeg-devel] [PATCH] avformat/avidec: ensure that palette does not contain the BottomUp info.

Michael Niedermayer michaelni at gmx.at
Mon Sep 22 11:06:31 CEST 2014


On Mon, Sep 22, 2014 at 09:57:37AM +0200, Benoit Fouet wrote:
> Considering the palette is located at the end of extradata may be flawed
> when the extradata contains the palette followed by the BottomUp field.
> When the BottomUp field is present, exclude it from the palette.
> Fixes ticket #1304
> ---
>  libavformat/avidec.c | 4 ++++
>  1 file changed, 4 insertions(+)
> 
> diff --git a/libavformat/avidec.c b/libavformat/avidec.c
> index 5b260e2..f7b15b7 100644
> --- a/libavformat/avidec.c
> +++ b/libavformat/avidec.c
> @@ -756,6 +756,10 @@ static int avi_read_header(AVFormatContext *s)
>                          pal_size = FFMIN(pal_size, st->codec->extradata_size);
>                          pal_src  = st->codec->extradata +
>                                     st->codec->extradata_size - pal_size;
> +                        /* Exclude the "BottomUp" field from the palette */
> +                        if (pal_src - st->codec->extradata >= 9 &&
> +                            !memcmp(st->codec->extradata + st->codec->extradata_size - 9, "BottomUp", 9))
> +                            pal_src -= 9;
>                          for (i = 0; i < pal_size / 4; i++)
>                              ast->pal[i] = 0xFFU<<24 | AV_RL32(pal_src+4*i);
>                          ast->has_pal = 1;

applied

though i suspect this only fixes demuxing/decoding of remuxed files
with ffmpeg/ffplay.
I suspect the remuxed files still wont play with the official
avi/rawvideo code from MS or whatever the "reference" code would be

[...]
-- 
Michael     GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB

I do not agree with what you have to say, but I'll defend to the death your
right to say it. -- Voltaire
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 181 bytes
Desc: Digital signature
URL: <https://ffmpeg.org/pipermail/ffmpeg-devel/attachments/20140922/32f0a0ec/attachment.asc>


More information about the ffmpeg-devel mailing list