[FFmpeg-devel] [PATCH] libavfilter-soc: Fix a buffer reuse bug in the movie filter

Vitor Sessak vitor1001
Fri May 8 15:04:21 CEST 2009

Michael Niedermayer wrote:
> On Fri, May 08, 2009 at 12:29:35PM +0200, Vitor Sessak wrote:
>> Martin Storsj? wrote:
>>> Hi,
>>> There's a slight bug in the movie source filter in libavfilter; it hands 
>>> out a buffer pointing to the codec internal frame buffer, which the 
>>> receiving filter may store. This can lead to bugs where a stored frame 
>>> reference changes content without further warning.
>>> This doesn't seem to be visible with most videos, but I encountered it 
>>> with the following movie:
>>> http://movies.apple.com/movies/sony_pictures/casino_royale/casino_royale-tlr1_h640w.mov
>>> To trigger the bug, run the following command:
>>> ./ffplay casino_royale-tlr1_h640w.mov -vfilters 
>>> "movie=0:mov:casino_royale-tlr1_h640w.mov [over1], [in] [over1] 
>>> overlay=100:100 [out]"
>>> In this case, frames are displayed a bit too soon/too late.
>>> If a scale filter is plugged between the movie and overlay filters, this 
>>> effect disappears.
>>> The attached patch corrects this bug, by marking the output video buffer 
>>> with the correct permission flags (in the same way as in the buffer video 
>>> source filter).
>> Looks correct to me, applied.
> just a note
> vsrc_movie.c is unfit for ffmpeg svn 
> the very minimum standard for inclusion in ffmpeg svn is mplayers
> libmpcodecs.


> libmpcodecs supports direct rendering, vsrc_movie.c does not, this hack
> does not move it closer to being acceptable either.

It do not make it farther either. Also fixing this bug can prevent 
people from losing their time debugging other filters...


More information about the ffmpeg-devel mailing list