[FFmpeg-devel] [PATCH] lavc/ffjni: replace ff_jni_{attach, detach} with ff_jni_get_env

Benoit Fouet benoit.fouet at free.fr
Mon Jul 25 10:50:58 EEST 2016


Hi,

On 24/07/2016 23:05, Matthieu Bouron wrote:
> From: Matthieu Bouron<matthieu.bouron at stupeflix.com>
>
> If a JNI environment is not already attached to the thread where the
> MediaCodec calls are made the current implementation will attach /
> detach an environment for each MediaCodec call wasting some CPU time.
>
> ff_jni_get_env replaces ff_jni_{attach,detach} by permanently attaching
> an environment (if it is not already the case) to the current thread.
> The environment will be automatically detached at the thread destruction
> using a pthread_key callback.
>
> Saves around 5% of CPU time (out of 20%) while decoding a stream with
> MediaCodec.
> ---
>   libavcodec/ffjni.c              |  43 +++++----
>   libavcodec/ffjni.h              |  15 +--

LGTM

>   libavcodec/mediacodec.c         |  14 +--
>   libavcodec/mediacodec_surface.c |  14 +--
>   libavcodec/mediacodec_wrapper.c | 200 ++++++++--------------------------------
>   5 files changed, 74 insertions(+), 212 deletions(-)

Just had a quick look at those ones.

Cheers,
-- 
Ben



More information about the ffmpeg-devel mailing list