[FFmpeg-devel] [PATCH 1/3] lavf/riffenc: Improve spec compliance
matsp888 at yahoo.com
Fri Mar 11 11:01:17 CET 2016
On 03/11/2016 10:44 AM, Mats Peterson wrote:
> On 03/11/2016 10:07 AM, Mats Peterson wrote:
>> Hendrik Leppkes <h.leppkes at gmail.com> skrev: (11 mars 2016 09:18:43 CET)
>>> On Fri, Mar 11, 2016 at 5:10 AM, Mats Peterson
>>> <matsp888-at-yahoo.com at ffmpeg.org> wrote:
>>>> 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
>>>> Video 1 in 8 bpp mode.
>>> This is not "spec compliance" then, because the spec specifically says
>>> that when its 0, it should be assumed equal to 2^biBitCount, which is
>>> the same value you are explicitly writing now.
>>> Its a redundant value to work around the inability of some players,
>>> not spec compliance - the existing value is perfectly compliant.
>>> Please clarify as much in any potential commit message.
>>> - Hendrik
>>> ffmpeg-devel mailing list
>>> ffmpeg-devel at ffmpeg.org
>> I know all that, Hendrik, but the fact is Windows Media Player will
>> not interpret 0 as 256 either for Microsoft Video 1 (CRAM) or RLE4/8.
>> And the way I interpret the specs is that using 0 is only relevant to
>> raw, uncompressed video.
> Correction: Windows Media Player *does* interpret 0 as 1 << bits per
> sample, but using 0 will fail when there are 'xxpc' palette change
> chunks in the file, for some reason. We might as well use 1 << bits per
> sample in that field for palettized video to make it fool-proof.
For reference, here are two short AVI clips with xxpc chunks, the first
one with 256, the second one with 0 in biClrUsed.
More information about the ffmpeg-devel