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

Mats Peterson matsp888 at yahoo.com
Sat Mar 12 14:21:01 CET 2016


On 03/12/2016 01:36 PM, Michael Niedermayer wrote:
> On Sat, Mar 12, 2016 at 12:34:00PM +0100, Mats Peterson wrote:
>> Mats Peterson <matsp888-at-yahoo.com at ffmpeg.org> skrev: (12 mars 2016 12:30:28 CET)
>>> Mats Peterson <matsp888-at-yahoo.com at ffmpeg.org> skrev: (12 mars 2016
>>> 12:25:30 CET)
>>>> Mats Peterson <matsp888-at-yahoo.com at ffmpeg.org> skrev: (12 mars 2016
>>>> 12:14:03 CET)
>>>>> On 03/12/2016 12:08 PM, Mats Peterson wrote:
>>>>>> On 03/12/2016 11:53 AM, Mats Peterson wrote:
>>>>>>> On 03/12/2016 11:48 AM, Mats Peterson wrote:
>>>>>>>> On 03/12/2016 11:43 AM, Mats Peterson wrote:
>>>>>>>>>>>>> why do you think they are written by libavformat ?
>>>>>>>>>>>>>
>>>>>>>>>>>>> i see:
>>>>>>>>>>>>> "C:\PROGRAM FILES\ASUS\ASUS LIVE\ASUSLIVE.EXE -AVICAP32-
>>> ASUS
>>>>> Video
>>>>>>>>>>>>> Capture Driver, Version:  3.8.2.2"
>>>>>>>>>>>>>
>>>>>>>>>>>>> in asv2_320x240_3.avi
>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>
>>>>>>>>> Regarding asv1/asv2, they do use 48 in biSize, but since there
>>> is
>>>>> no
>>>>>>>>> official documentation for these codecs that explicitly mentions
>>>>> that
>>>>>>>>> biSize should be 48 (which breaks the specs), it's plain wrong
>>> to
>>>>> use
>>>>>>>>> anything else than 40.
>>>>>>>>>
>>>>>>>>
>>>>>>>> Furthermore, any "global headers" in *any* codec have nothing to
>>>> do
>>>>> with
>>>>>>>> the BITMAPINFOHEADER. They aren't connected in any way. The size
>>>> of
>>>>> the
>>>>>>>> BITMAPINFOHEADER is 40, so biSize should always be 40, since it
>>>>> defines
>>>>>>>> the size of the BITMAPINFOHEADER, not the size of the
>>>>> BITMAPINFOHEADER +
>>>>>>>> extra data.
>>>>>>>>
>>>>>>>> Mats
>>>>>>>>
>>>>>>>
>>>>>>> If it wasn't for the braindead specification of HuffYUV with its
>>>> own
>>>>>>> BITMAPINFOHEADER variant, this would be a piece of cake. Always
>>> use
>>>>> 40
>>>>>>> in biSize.
>>>>>>>
>>>>>>> Mats
>>>>>>>
>>>>>>> _______________________________________________
>>>>>>
>>>>>> I vote for using huffyuv and ffvhuff (since it's a variant of
>>>>> huffyuv)
>>>>>> as the only exceptions to using 40 bytes in biSize, regardless of
>>>> any
>>>>>> non-conformant existing or future stuff.
>>>>>>
>>>>>
>>>>> If the authors of future specs should happen to think that biSize
>>>>> should
>>>>> be anything else than 40, we'd better tell them the facts.
>>>>>
>>>>> Mats
>>>>>
>>>>> _______________________________________________
>>>>> ffmpeg-devel mailing list
>>>>> ffmpeg-devel at ffmpeg.org
>>>>> http://ffmpeg.org/mailman/listinfo/ffmpeg-devel
>>>>
>>>> Perhaps you can use my latest 2-part patch set that includes asv1 and
>>>> asv2 in the "exception list", but thaf's it. No more entries should
>>>> ever need to be added to this list.
>>>>
>>>> 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
>>>
>>> In fact, it's wrong to include asv1 and asv2, since there are no specs
>>> available. You decide. I'll stop now.
>>> --
>>> Mats Peterson
>>> http://matsp888.no-ip.org/~mats/
>>> _______________________________________________
>>> ffmpeg-devel mailing list
>>> ffmpeg-devel at ffmpeg.org
>>> http://ffmpeg.org/mailman/listinfo/ffmpeg-devel
>>
>> Well, the only specs I can find are the ones written by you, and they mention the global header, but no custom BITMAPINFOHEADER. Hence, biSize should be 40.
>
> updated my "specs" but these are just based on observation/reverse
> engeneering so not really true specs
>

Yes, I know.

Mats



More information about the ffmpeg-devel mailing list