[Ffmpeg-devel] Potential memory leak when using libavcodec.so
Fri Aug 12 10:56:42 CEST 2005
On Wed, Aug 10, 2005 at 02:56:41PM +0000, Burkhard Plaum wrote:
> One issue, I addressed some time ago....
> The problem when using a shared libavcodec, is that the right time for calling
> av_free_static() cannot always be determined. Reference counting doesn't
> work, because an application, which uses e.g. libquicktime, doesn't even know,
> if libavcodec is used or not (and it doesn't NEED to know it, that the nice
> thing when using plugins). Putting av_free_static() into libquicktime
> also doesn't work, because we never know, if lavc is used somewhere else in the
> process (e.g. a transcoding application which uses lavc for en- and decoding).
> For elf targets, there is a reliable, simple and completely harmless solution
> by putting a function into the fini section of the object file (by using
> __attribute__ ((destructor)) ). This function will always be called at the
> right time before lavc gets unloaded. Probably it also works for other targets
> than elf. I tested it for a long time, it never caused problems and valgrind
> reports 0 lost bytes. Would you accept such a patch?
yes, if someone maintains it (=fix related bugs within less then a week or
show some sign of actively working on it at least)
it also must not break existing code which explicitly calls av_free_static()
More information about the ffmpeg-devel