[FFmpeg-devel] [PATCH]Do not add extradata size to bitmapinfoheader size
Carl Eugen Hoyos
cehoyos at ag.or.at
Sun Sep 28 10:06:40 CEST 2014
Reimar Döffinger <Reimar.Doeffinger <at> gmx.de> writes:
> On Sun, Sep 28, 2014 at 09:50:43AM +0200, Reimar Döffinger wrote:
> > On Sat, Sep 27, 2014 at 10:51:25AM +0200, Carl Eugen Hoyos wrote:
> > > Hi!
> > >
> > > Attached patch is one of two patches necessary to fix ticket #1304.
> > > The MSDN documentation indicates that the palette is not part of the
> > > bitmapinfoheader but the bitmapinfoheader is part of the bitmapinfo
> > > structure that also contains the palette.
> > >
> > > An alternative is to add the extradata_size except if it is a palette
> > > but imo, attached is more correct.
I still believe that my original patch is correct but I
will send one that only changes the bisize for palette
so that the MPlayer demuxer will not break.
> > biSize must be calculated so that it points to the
> > palette, so if you have both extradata and palette
> > you absolutely need to add the extradata size:
This is wrong afaict.
Or do we misunderstand each other?
Currently, the size of the palette is added, I sincerely
hope no other extradata is used for pal8 rawvideo.
So when I wrote above "do not add extradata size" I of
course meant the size of the palette.
But I did test with different versions of WMP that all
extradata (WMV2 extradata) size does not have to be part
of the bitmapinfoheader size: WMP reads the extradata no
matter the size of the bitmapinfoheader.
MPlayer's avi demuxer is the only one that only reads
the extradata if it is part of the size of the
bitmapinfoheader.
> > > An application should use the information stored
> > > in the biSize member to locate the color table
> > > in a BITMAPINFO structure, as follows.
This is exactly what is currently broken in FFmpeg.
The MPlayer demuxer is the only one that needs
the extradata size added to the bitmapinfoheader
size, this should be fixed there.
> Also, we currently do not set biClrUsed, so I can't
> see how anything that uses palette could work at all.
> Otherwise it would have been correct to set
> biSize = extradata_size - 4*biClrUsed
Setting it to zero as we do seems correct or do I
miss something?
Carl Eugen
More information about the ffmpeg-devel
mailing list