Message ID | 20190905182735.65987-1-ffmpeg@tmm1.net |
---|---|
State | New |
Headers | show |
On Thu, Sep 05, 2019 at 11:27:30AM -0700, Aman Gupta wrote: > From: Aman Gupta <aman@tmm1.net> > > Signed-off-by: Aman Gupta <aman@tmm1.net> > --- > libavcodec/mediacodec_surface.c | 4 +++- > 1 file changed, 3 insertions(+), 1 deletion(-) > > diff --git a/libavcodec/mediacodec_surface.c b/libavcodec/mediacodec_surface.c > index aada1ecebe..efcc4dc63c 100644 > --- a/libavcodec/mediacodec_surface.c > +++ b/libavcodec/mediacodec_surface.c > @@ -28,9 +28,11 @@ > void *ff_mediacodec_surface_ref(void *surface, void *log_ctx) > { > JNIEnv *env = NULL; > - > void *reference = NULL; > > + if (!surface) > + return NULL; > + > env = ff_jni_get_env(log_ctx); > if (!env) { > return NULL; > -- > 2.20.1 > This should not be needed unless it fixes a crash. NewGlobalRef/DeleteGlobalRef (as well as NewLocalRef/DeleteLocalRef) handles NULL pointers. The JNI MediaCodec wrapper is missleading about this as it does this kind of unneeded checks everywhere (I did not known at the time that the ref functions handle NULL). I have a local branch cleaning this up. I will submit it to the ML in the upcoming days.
diff --git a/libavcodec/mediacodec_surface.c b/libavcodec/mediacodec_surface.c index aada1ecebe..efcc4dc63c 100644 --- a/libavcodec/mediacodec_surface.c +++ b/libavcodec/mediacodec_surface.c @@ -28,9 +28,11 @@ void *ff_mediacodec_surface_ref(void *surface, void *log_ctx) { JNIEnv *env = NULL; - void *reference = NULL; + if (!surface) + return NULL; + env = ff_jni_get_env(log_ctx); if (!env) { return NULL;