[FFmpeg-soc] [PATCH] updated! vf_overlay alpha patch and watermarking using PNG with alpha
Vitor Sessak
vitor1001 at gmail.com
Mon Dec 7 19:51:35 CET 2009
Michael Niedermayer wrote:
> On Sun, Dec 06, 2009 at 05:12:37PM +0100, Vitor Sessak wrote:
>> Hi and sorry for the delay.
>>
>> Artur Bodera wrote:
>>> On Tue, Dec 1, 2009 at 12:50 AM, Vitor Sessak <vitor1001 at gmail.com> wrote:
>>>> While I normally oppose making non-committed code more complex, I think
>>>> this feature is so often requested that it is worth the extra work in the
>>>> future. Stefano, Michael, any strong opinion about this?
>>>>
>>> I think the vf_overlay should be modified altogether. Although
>>> mathematically alpha-blending is more expensive than opaque pixel
>>> replacement, I think that it should be automatically decided by analyzing
>>> the overlay format.
>>> So the alpha-blending should be a "built-in" functionality (not a
>>> switchable
>>> parameter) and should be implicitly functional with any overlay
>>> stream/image
>>> that has alpha channel (i.e. rgba). If there is no alpha channel, then
>>> pixel
>>> overriding would be used. This makes much more sense.
>> I agree that this would be nice, but there is no way to make it work with
>> the current format negotiation in libavfilter. For example, there is no way
>> to have a filter that accepts either "input: rgb, output rgba" or "input:
>> yuv, output: yuva", so I suggest you just do as your present patch for the
>> time been.
>
> an overlay filter that supports
> rgb -> rgb yuv -> yuv
> ^ OR ^
> rgba yuva
>
> cant be done, but you can do:
>
> rgb -> rgb yuv -> yuv
> ^ OR ^
> yuva||rgba yuva||rgba
>
> this might end up requireing rgb<->yuv converting the thing to be overlaid
> in the overlay filter (its just a call to the swscaler ...)
I thought about this idea, but what I don't like is doing calls to
swscale instead of just having the vf_overlay inserting an scaler
filter. Having a filter needing to force the insertion of others will be
possible in several other cases (padding, deinterlacing, resizing, etc).
That's why I thought that having at a first time a simpler solution is
better (instead of delaying too much the svn inclusion).
-Vitor
More information about the FFmpeg-soc
mailing list