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

Mats Peterson matsp888 at yahoo.com
Fri Mar 11 14:06:19 CET 2016


Mats Peterson <matsp888-at-yahoo.com at ffmpeg.org> skrev: (11 mars 2016 13:55:20 CET)
>Michael Niedermayer <michael at niedermayer.cc> skrev: (11 mars 2016
>13:49:32 CET)
>>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"
>>
>>
>>[...]
>
>That's correct. Sorry. Anyway, the only case I know of is HuffYUV with
>its special variant of BITMAPINFOHEADER that includes the Huffman
>tables. Is there stated anywhere in the ASUS specs that the size of the
>extra data following the BITMAPINFOHEADER should be included in biSize?
>If not, it should be 40.
>
>Mats
>-- 
>Mats Peterson
>http://matsp888.no-ip.org/~mats/
>_______________________________________________
>ffmpeg-devel mailing list
>ffmpeg-devel at ffmpeg.org
>http://ffmpeg.org/mailman/listinfo/ffmpeg-devel

Those asv1/asv2 files play just fine with a biSize of 40, at that.

Mats
-- 
Mats Peterson
http://matsp888.no-ip.org/~mats/


More information about the ffmpeg-devel mailing list