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

Martin Storsjö martin
Thu May 7 20:49:12 CEST 2009


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).

// Martin
-------------- next part --------------
A non-text attachment was scrubbed...
Name: libavfilter-soc-movie-preserve-buffer.patch
Type: text/x-diff
Size: 620 bytes
Desc: 
URL: <http://lists.mplayerhq.hu/pipermail/ffmpeg-devel/attachments/20090507/6857a5d5/attachment.patch>



More information about the ffmpeg-devel mailing list