[FFmpeg-devel] [PATCH] avcodec/videotoolbox_hevc: avoid leaking cached_hw_frames_ctx

Pavel Koshevoy pkoshevoy at gmail.com
Fri Aug 23 21:51:56 EEST 2019


On Fri, Aug 23, 2019 at 8:12 AM Pavel Koshevoy <pkoshevoy at gmail.com> wrote:
>
> On Tue, Aug 6, 2019 at 8:50 PM Pavel Koshevoy <pkoshevoy at gmail.com> wrote:
> >
> > vtctx->cached_hw_frames_ctx is unref'd in videotoolbox_uninit,
> > but videotoolbox_hevc used ff_videotoolbox_uninit which
> > doesn't unref cache_hw_frames_ctx.
> > ---
> >  libavcodec/videotoolbox.c | 2 +-
> >  1 file changed, 1 insertion(+), 1 deletion(-)
> >
> > diff --git a/libavcodec/videotoolbox.c b/libavcodec/videotoolbox.c
> > index c718e82cc5..acaeef77dd 100644
> > --- a/libavcodec/videotoolbox.c
> > +++ b/libavcodec/videotoolbox.c
> > @@ -1143,7 +1143,7 @@ const AVHWAccel ff_hevc_videotoolbox_hwaccel = {
> >      .end_frame      = videotoolbox_hevc_end_frame,
> >      .frame_params   = videotoolbox_frame_params,
> >      .init           = videotoolbox_common_init,
> > -    .uninit         = ff_videotoolbox_uninit,
> > +    .uninit         = videotoolbox_uninit,
> >      .priv_data_size = sizeof(VTContext),
> >  };
> >
> > --
> > 2.16.4
> >
>
>
> I'd like to see this merged.   Would anyone be upset if I pushed it?
>



> When I ran into this issue testing on a Tesla P4 I observed that each
> hw frames ctx leak would cost ~120MB GPU memory.  Once all GPU memory
> is exhausted nvdec and nvenc would fail, and this happens pretty
> quickly when processing 4s video fragments from unrelated
> sources/timelines.

sorry, this was half-awake nonsense ... the cuda hwframes memleak was
external to ffmpeg and unrelated to this videotoolbox fix.


>
> Rick Kern and Aman Gupta are listed as maintainers for videotoolbox*,
> but I don't know how to contact them.
>
> Pavel.


More information about the ffmpeg-devel mailing list