[FFmpeg-devel] [RFC] How to fix DR+lavfi+vflip crash

Baptiste Coudurier baptiste.coudurier
Thu Dec 2 05:41:38 CET 2010

On 12/1/10 4:53 PM, Jason Garrett-Glaser wrote:
> On Tue, Nov 30, 2010 at 2:26 PM, Stefano Sabatini
> <stefano.sabatini-lala at poste.it> wrote:
>> On date Saturday 2010-11-27 16:53:51 +0100, Stefano Sabatini encoded:
>>> On date Saturday 2010-11-06 18:21:55 +0100, Stefano Sabatini encoded:
>>>> On date Saturday 2010-11-06 18:10:04 +0100, Stefano Sabatini encoded:
>>>>> Hi,
>>>>> as you may know the command:
>>>>> ffplay INPUT -vf vflip
>>>>> crashes with many video codecs. This is a regression introduced by the
>>>>> direct rendering feature, since the codec request the frame to use for
>>>>> putting the decoded frame, it gets a frame with negative linesizes and
>>>>> crash
>>>>> (BTW the smacker regression also seems to depend on diect
>>>>> rendering, and precisely with the way the palette is initialized in
>>>>> avfilter_default_get_buffer, which doesn't use ff_systematic_pal()).
>>>>> A possible first step would be to define a CODEC_CAP_NEG_LINESIZES
>>>>> capability (suggest a better name), and set it in all the codecs which
>>>>> currently support this feature (I have no idea which of them, do
>>>>> you?).
>>>>> At this point I see two solutions. One solution would be to change
>>>>> get_video_buffer(), and make it invert the buffer when it detects the
>>>>> negative linesizes && the NEG_LINESIZES capability is not
>>>>> supported, *or* auto-add another filter just before the ffplay source.
>>>>> Such a filter (vflipfix - suggest better name) would work as a null
>>>>> filter if the frame is not inverted, and would readjust the frame if
>>>>> the linesizes are inverted.
>>>>> The second solution seems simpler and cleaner.
>>>> To make it even more useful, we may add a capability to the filters,
>>>> and auto-add the vflip-fix filter when building the filterchain, and
>>>> fix all the filters which doesn't support negative linesizes.
>>> Patchset attached.
>> Ping.
> I don't think this extra complexity is a good idea.  I'd rather just
> modify vflip to do things the slow way (it's NOT an important filter)
> and just officially drop support for negative linesizes.
> This extra complexity would be worth it if it affected any use-case
> that matters.  It doesn't.

Well, I tend to agree that I like the idea of dropping negative
linesizes, it has always caused more problems than it fixed IMHO.

Key fingerprint                 8D77134D20CC9220201FC5DB0AC9325C5C1ABAAA
FFmpeg maintainer                                  http://www.ffmpeg.org

More information about the ffmpeg-devel mailing list