diff mbox series

[FFmpeg-devel] avcodec/mediacodec_wrapper: fix {input, output}_buffers global reference leak

Message ID 20200409150605.16270-1-matthieu.bouron@gmail.com
State Accepted
Commit 5216edbc54c79869ce630579199e53454f96df96
Headers show
Series [FFmpeg-devel] avcodec/mediacodec_wrapper: fix {input, output}_buffers global reference leak | expand

Checks

Context Check Description
andriy/ffmpeg-patchwork success Make fate finished

Commit Message

Matthieu Bouron April 9, 2020, 3:06 p.m. UTC
Fixes ticket #8607.
---
 libavcodec/mediacodec_wrapper.c | 6 ++++++
 1 file changed, 6 insertions(+)

Comments

Matthieu Bouron April 15, 2020, 7:44 a.m. UTC | #1
On Tue, Apr 14, 2020 at 09:51:08AM +0200, Matthieu Bouron wrote:
> On Thu, Apr 09, 2020 at 05:06:05PM +0200, Matthieu Bouron wrote:
> > Fixes ticket #8607.
> > ---
> >  libavcodec/mediacodec_wrapper.c | 6 ++++++
> >  1 file changed, 6 insertions(+)
> > 
> > diff --git a/libavcodec/mediacodec_wrapper.c b/libavcodec/mediacodec_wrapper.c
> > index 5213cf640a7..79abc8b6aa9 100644
> > --- a/libavcodec/mediacodec_wrapper.c
> > +++ b/libavcodec/mediacodec_wrapper.c
> > @@ -1303,6 +1303,12 @@ int ff_AMediaCodec_delete(FFAMediaCodec* codec)
> >          ret = AVERROR_EXTERNAL;
> >      }
> >  
> > +    (*env)->DeleteGlobalRef(env, codec->input_buffers);
> > +    codec->input_buffers = NULL;
> > +
> > +    (*env)->DeleteGlobalRef(env, codec->output_buffers);
> > +    codec->output_buffers = NULL;
> > +
> >      (*env)->DeleteGlobalRef(env, codec->object);
> >      codec->object = NULL;
> >  
> > -- 
> > 2.26.0
> > 
> 
> The user confirmed the patch fixes the issue. I will apply this patch
> tomorrow if there is no objection.

Applied.
diff mbox series

Patch

diff --git a/libavcodec/mediacodec_wrapper.c b/libavcodec/mediacodec_wrapper.c
index 5213cf640a7..79abc8b6aa9 100644
--- a/libavcodec/mediacodec_wrapper.c
+++ b/libavcodec/mediacodec_wrapper.c
@@ -1303,6 +1303,12 @@  int ff_AMediaCodec_delete(FFAMediaCodec* codec)
         ret = AVERROR_EXTERNAL;
     }
 
+    (*env)->DeleteGlobalRef(env, codec->input_buffers);
+    codec->input_buffers = NULL;
+
+    (*env)->DeleteGlobalRef(env, codec->output_buffers);
+    codec->output_buffers = NULL;
+
     (*env)->DeleteGlobalRef(env, codec->object);
     codec->object = NULL;