[FFmpeg-devel] [PATCH 1/3] lavf/riffenc: Improve spec compliance

Michael Niedermayer michael at niedermayer.cc
Fri Mar 11 13:49:32 CET 2016


On Fri, Mar 11, 2016 at 01:28:47PM +0100, Mats Peterson wrote:
> On 03/11/2016 01:25 PM, Mats Peterson wrote:
> >On 03/11/2016 01:14 PM, Michael Niedermayer wrote:
> >>On Fri, Mar 11, 2016 at 05:17:18AM +0100, Mats Peterson wrote:
> >>>On 03/11/2016 05:10 AM, Mats Peterson wrote:
> >>>>Forget patch 2/3 and 3/3 from the old patch set.
> >>>>
> >>>> From the Microsoft documentation for BITMAPINFOHEADER at
> >>>>https://msdn.microsoft.com/en-us/library/windows/desktop/dd318229%28v=vs.85%29.aspx:
> >>>>
> >>>>
> >>>>
> >>>>"biSize: Specifies the number of bytes required by the structure. This
> >>>>value does not include the size of the color table or the size of the
> >>>>color masks, if they are appended to the end of structure."
> >>>>
> >>>>So, biSize is always 40. Also, Windows Media Player won't detect video
> >>>>encoded with Microsoft Video 1 in 8 bpp mode if this value is anything
> >>>>else than 40. I don't know about other codecs, they probably work.
> >>>>Anyway, we should stick with the specs, and not include the palette
> >>>>size
> >>>>in that field.
> >>>>
> >>>>Regarding the biClrUsed field, I'm setting it to 1 <<
> >>>>bits_per_coded_sample if palettized video, since setting it to 0 is
> >>>>another case where it won't work with Windows Media Player and
> >>>>Microsoft
> >>>>Video 1 in 8 bpp mode.
> >>>>
> >>>>Mats
> >>>>
> >>>>
> >>>>
> >>>
> >>>Once, again, HuffYUV has its own variant of BITMAPINFOHEADER that
> >>>*does* include the size of the Huffman tables in biSize. That's the
> >>>only exception as far as I know.
> >>
> >>is huffyuv really the exception ? and not raw rgb or palettes ?
> >>
> >>asv1 and asv2 do not have 40 there

> >>which codec with a non-palette global header puts 40 there ?

[...]

> As I said before, Microsoft Video 1 in 8-bit mode and RLE4/RLE8
> won't even display in Windows Media Player if this value is anything
> else than 40.

msv1 / RLE4/8 doesnt have a "Non palette global header"


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

Complexity theory is the science of finding the exact solution to an
approximation. Benchmarking OTOH is finding an approximation of the exact
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 181 bytes
Desc: Digital signature
URL: <http://ffmpeg.org/pipermail/ffmpeg-devel/attachments/20160311/c856117d/attachment.sig>


More information about the ffmpeg-devel mailing list