[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.
documented
> 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...
-Vitor
More information about the ffmpeg-devel
mailing list