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

Reply via email to