[FFmpeg-devel] [PATCH v5 1/4 v3] lavf/avienc: Add support for palette side data

Mats Peterson matsp888 at yahoo.com
Sat Mar 5 04:19:51 CET 2016


On 03/05/2016 01:08 AM, Michael Niedermayer wrote:
> On Fri, Mar 04, 2016 at 10:12:41PM +0100, Mats Peterson wrote:
>> On 03/04/2016 10:02 PM, Mats Peterson wrote:
>>> On 03/04/2016 09:52 PM, Mats Peterson wrote:
>>>> On 03/04/2016 08:44 PM, Michael Niedermayer wrote:
>>>>> On Fri, Mar 04, 2016 at 11:59:11AM +0100, Mats Peterson wrote:
>>>>>> On 03/04/2016 05:59 AM, Mats Peterson wrote:
>>>>>>> Removed some unused variables in AVIStream.
>>>>>>>
>>>>>>
>>>>>>
>>>>>> I would like to remind you of the fact that this patch (and the one
>>>>>> for riffenc.c) is needed for stream copying of Microsoft Video 1
>>>>>> (CRAM) in 8-bit mode, Microsoft RLE4 and Microsoft RLE8. There are
>>>>>> possibly more codecs using a palette, but these are the ones I can
>>>>>> come up with at the moment.
>>>>>
>>>>> i tried CRAM and MSRLE, but these already work when streamcopied
>>>>> before, do you have a testcase that does not work
>>>>>
>>>>
>>>> It works, but only so much. On stream copy, it will only write the
>>>> palette after BITMAPINFOHEADER to the destination file. It won't write
>>>> any xxpc palette switching chunks to the file.
>>>>
>>>> Mats
>>>>
>>> The xxpc chunks come as palette side data.
>>>
>>> Mats
>>
>>
>> Try ffmpeg -i 8bpp_129.avi -vcodec copy test.avi, with and without
>
> where can i find that file ?
>

Thought you had it already?
https://drive.google.com/open?id=0B3_pEBoLs0faekxWUTdkVGNTTlk

>
>> the avienc.c and riffenc.c patch. The destination file will only
>> contain xxpc chunks with my patch applied.
>
> pc chunks are only needed when the palette changes, if its the same
> for the whole file and after BITMAPINFOHEADER then theres no need
> for pc chunks

And what do you suggest in order to detect this? 1 kb more per frame 
isn't that much. Nut uses it all the time.

You were the one who proposed to use a shared function, and the option 
for a calling program to deliver the palette as side data. That's why I 
wrote the function, to be shared by avienc, movenc and possibly more 
muxers. It would be nice if you could apply these remaining patches now, 
thank you.

Mats



More information about the ffmpeg-devel mailing list