On 08/06/16 18:23, Will Kelleher wrote: > Hi all - > > I'm experiencing some significant heap growth when encoding with VAAPI on > my Ivy Bridge hardware. Based on what I'm seeing from Massif, it seems like > the parameter buffers allocated in vaapi_encode_make_param_buffer are leaking. > > I came across this thread [1] that indicates that vaEndPicture might not be > freeing the param buffers like the libva documentation says it should. > > I also noticed that VLC [2] seems to explicitly call vaDestroyBuffer on the > param buffers after vaEndPicture. > > When I try that, the leak is gone.
Yes, I wrote essentially the same code on observing the same issue. Unfortunately, you need a lot more machinery to do this safely - the change makes all buffer operations thread-unsafe (another thread could allocate a buffer with the ID you are about to try to destroy). That results in needing VADisplay-global locks around pretty much everything to do with buffers (including any time the user makes use of them). I don't much like the idea of writing all the code to have locking everywhere (including in all user code talking to libavcodec), so I took the cowardly approach of doing nothing and hiding behind the documentation :/ Therefore, dunno. Maybe we should talk to the libva people about it? - Mark _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel