[FFmpeg-devel] [PATCH] libavfilter-soc: Make overlay handle still images

Vitor Sessak vitor1001
Fri May 8 12:28:47 CEST 2009


Martin Storsj? wrote:
> On Fri, 8 May 2009, Vitor Sessak wrote:
> 
>>> Actually, there's a use for them. Imagine that there's a frame available in
>>> input 0, but none at all in input 1. 
>> Is there any way the if (!over->pics[0][0] || !over->pics[1][0]) can be
>> triggered other than in the first time request_frame() is called? If no,
>> "!over->pics[1][0]" and "!over->pics[0][0]" are always true.
> 
>> Note that if one of the inputs each EOF, it will stay at EOF. Note also 
>> that the poll_frame mechanism guarantees that there is either an 
>> available frame or EOF for each input.
> 
> I guess that's true in principle, but what if request_frame() still is 
> called (for some unknown reason, haven't checked through the rest of the 
> framework to see if there's something stopping this from happening) after 
> the first call which returned EOF?

Indeed, and indeed there is at least one filter that call 
request_frame() repeatedly even after EOF: overlay. I am not sure if the 
API should forbid calling request_frame() after EOF or not (comments 
welcome). Another possibility would be to make avfilter_request_frame() 
handle that by not calling filter->request_frame() anymore after the 
first time it returns EOF. Anyway, this discussion goes beyond your 
patch and I will apply it in a couple of days if nobody else comments on it.

-Vitor



More information about the ffmpeg-devel mailing list