Hi. I've tracked a memory leaking in my application, which apparently related to av_free_packet(). It feels like the av_free_packet() doesn't always free the memory accurately, and over time starts leaking it.
I've looked through the source code, and found out that av_free_packet() actually calls further 2 different functions depending on the context, destruct() and destruct_nofree(). In my case, where I first read the frame via av_read_frame(), the second one is called. After I inspected it source code, I seen there is actually no free operator there - the pointer simply get assigned NULL, which should immediately lead to a leak? Then I searched through the archives, and found out the following thread, earlier this year: http://www.mail-archive.com/[email protected]/msg00564.html It was claimed that smart pointers are used, so am I correct that there is an internal buffer managed by FFMPEG, which re-uses same frames to lower the number of re-allocations? There is apparently a bug in this buffer, where frames are not released? http://article.gmane.org/gmane.comp.video.ffmpeg.libav.user/580 Can someone from FFMPEG dev team explain whether it's indeed the case (internal buffer), and if the mentioned bug was fixed in recent versions? If not, what is the work-around? Thanks in advance. _______________________________________________ libav-user mailing list [email protected] https://lists.mplayerhq.hu/mailman/listinfo/libav-user
