[Ffmpeg-devel] [PATCH] plain malloc in output_example.c

Michael Niedermayer michaelni
Mon Aug 21 03:46:56 CEST 2006


On Sun, Aug 20, 2006 at 09:11:54PM -0300, Ramiro Polla wrote:
> Michael Niedermayer wrote:
> >>>nope, sorry ...
> >>>the original patch is ok if you add some note which says that the
> >>>buffers passed into lav* can be allocated any way the user likes
> >>>as long as they are aligned by enough for the architecture
> >>>      
> New patch attached. Is the info text good?


> >>In output_example.c, we have some calls to av_free in which the memory 
> >>has been allocated internally by lav*, such as 
> >>av_free(picture->data[0]); in line 400. So that memory has been 
> >>allocated by av_malloc() (possibly with the memalign hack), and must 
> >>therefore be freed by av_free().
> >>Also, av_freep is used, which internally uses av_free. So that buffer 
> >>must also have been allocated with av_malloc() to be correctly 
> >>deallocated by av_free().
> >>
> >>Wouldn't it be best to suggest that all memory fed to lav* in a program 
> >>be allocated and freed by the av_{malloc,free}() functions? Otherwise, 
> >>    
> >
> >no
> >  
> May I receive a better explanation given the scenario I described? Or a 
> pointer to a previous discussion on the issue.
> I know it's not a problem on linux systems, but it is an issue on 
> systems that use the memalign hack, since the wrong pointer is passed to 
> the system's free function.

if the user would be required to always use av_malloc() then she would
have to memcpy things around and that defeats half of the speed advantage
of aligned data and SIMD so requireing that is simply not an option

Michael     GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB

In the past you could go to a library and read, borrow or copy any book
Today you'd get arrested for mere telling someone where the library is

More information about the ffmpeg-devel mailing list