[vlc-commits] mediacodec: implementation of MediaCodec GPU direct rendering

Felix Abecassis git at videolan.org
Fri Jan 17 13:01:06 CET 2014


vlc | branch: master | Felix Abecassis <felix.abecassis at gmail.com> | Fri Jan 17 11:46:49 2014 +0100| [d75a07a202fabab74cee6574092ad0c94380e32e] | committer: Jean-Baptiste Kempf

mediacodec: implementation of MediaCodec GPU direct rendering

Based on the work by Martin Storsjö.

The decoder stores opaque buffers in the p_sys member of the picture
and the vout uses a callback from the decoder to render these
buffers. When the decoder flushes or closes, all the currently in
flight pictures (filled by the decoder but not displayed yet) need to
be invalidated. A mutex is required in order to prevent the vout from using
destroyed MediaCodec buffers.

In order to avoid a deadlock when exiting the decoder, a maximum number of polling
attempts was added in order to avoid blocking the decoder indefinitely if the vout
is not releasing output buffers anymore.

Signed-off-by: Jean-Baptiste Kempf <jb at videolan.org>

> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=d75a07a202fabab74cee6574092ad0c94380e32e
---

 NEWS                                     |    1 +
 configure.ac                             |    2 +
 modules/MODULES_LIST                     |    1 +
 modules/codec/Makefile.am                |    3 +-
 modules/codec/omxil/android_mediacodec.c |  244 ++++++++++++++++++++++++++----
 modules/codec/omxil/android_opaque.c     |   30 ++++
 modules/codec/omxil/android_opaque.h     |   44 ++++++
 modules/video_output/Modules.am          |    1 +
 modules/video_output/android/opaque.c    |  204 +++++++++++++++++++++++++
 modules/video_output/android/surface.c   |    3 +
 po/POTFILES.in                           |    3 +-
 11 files changed, 506 insertions(+), 30 deletions(-)

Diff:   http://git.videolan.org/gitweb.cgi/vlc.git/?a=commitdiff;h=d75a07a202fabab74cee6574092ad0c94380e32e


More information about the vlc-commits mailing list