[FFmpeg-trac] #5740(undetermined:new): Memory leak on Windows, when unloading FFmpeg dlls
FFmpeg
trac at avcodec.org
Wed Jul 27 17:00:13 EEST 2016
#5740: Memory leak on Windows, when unloading FFmpeg dlls
-------------------------------------+-------------------------------------
Reporter: seveneleven | Type: defect
Status: new | Priority: normal
Component: | Version:
undetermined | unspecified
Keywords: | Blocked By:
Blocking: | Reproduced by developer: 0
Analyzed by developer: 0 |
-------------------------------------+-------------------------------------
I built a dll (VC++, Win32), that uses FFmpeg for video processing and is
used by several applications.
Each time this dll is loaded/freed (using Windows API:
LoadLibrary/FreeLibrary), it leaks around 20KB (given that, in this way,
FFmpeg dlls are also loaded/unloaded):
> 'Demo.exe' (Win32): Loaded 'C:\Windows\SysWOW64\avcodec-57.dll'. Module
was built without symbols.
> 'Demo.exe' (Win32): Loaded 'C:\Windows\SysWOW64\avutil-55.dll'. Module
was built without symbols.
> 'Demo.exe' (Win32): Loaded 'C:\Windows\SysWOW64\swresample-2.dll'.
Module was built without symbols.
> 'Demo.exe' (Win32): Unloaded 'C:\Windows\SysWOW64\avcodec-57.dll'
> 'Demo.exe' (Win32): Unloaded 'C:\Windows\SysWOW64\swresample-2.dll'
> 'Demo.exe' (Win32): Unloaded 'C:\Windows\SysWOW64\avutil-55.dll'
On a Windows 7 Machine, I observed leaks of ~20KB each "load/unload". On
Windows 10 it ranges from 4KB to 20KB (16KB at the most).
Except for the latest build, this issue can be reproduced with 3.0.1,
3.0, 2.8.6, 2.8.3.
In 0.8.7 it worked fine.
This is all the 'dll code' to reproduce it.
{{{
extern "C"
{
#include <libavcodec\avcodec.h>
#pragma comment(lib, "avcodec.lib")
}
void __stdcall proveIssue()
{
int v = avcodec_version();
}
}}}
Removing the line with `avcodec_version` would ''fix'' it, because no
FFmpeg dlls would be linked.
--
Ticket URL: <https://trac.ffmpeg.org/ticket/5740>
FFmpeg <https://ffmpeg.org>
FFmpeg issue tracker
More information about the FFmpeg-trac
mailing list