[vlc-devel] [PATCH 0/4] Asynchronous decoder Queue functions and MediaCodec

Thomas Guillem thomas at gllm.fr
Thu Dec 3 10:51:22 CET 2015


* About Decoder:

Last time I proposed an asynchronous decoder patch (see
https://mailman.videolan.org/pipermail/vlc-devel/2015-September/104159.html),
there were few issues on the core:

The 2/ issue about changing fmt_in is fixed: fmt_in won't change during the
decoder module life.

The 1/ issue about fmt_out being the format of following buffer allocations, or
the format of following output buffers is still not fixed. This need to be
fixed but I don't think it's related to decoder_QueueVideo or MediaCodec.
Indeed, Contrary to avcodec-MT, MediaCodec won't keep a decoder picture
internally and will return it directly via decoder_QueueVideo (or was returned
via pf_decode_video before). Therefore, in MediaCodec case, if fmt_out changes,
only the vout will own the pictures that will be reseted.

There is also an issue with input_DecoderFrameNext, FrameNext won't work
properly when using decoder_QueueVideo. input_DecoderFrameNext need to be
rewritten completely to handle asynchronous decoder and input not feed (since
decoder is paused).

decoder_QueueVideo and decoder_QueueAudio will be used by MediaCodec (and
lately by omx and mmal?), but I don't know if decoder_QueueSub is very
useful. I don't know if there will be an asynchronous subtitle decoder one day.

* About MediaCodec:

The fourth commit improves performance on few devices (it depends on the number
of input/output buffers allocated by the OMX Codec) and allows to remove the
following hack in android:
http://git.videolan.org/gitweb.cgi/vlc-ports/android.git/?p=vlc-ports/android.git;a=blob;f=libvlc/src/org/videolan/libvlc/Media.java;h=90983af51a6979748b26b8419ffc0af2b7c40abe;hb=HEAD#l620

Thomas Guillem (4):
  decoder: add decoder_QueueVideo
  decoder: add decoder_QueueAudio
  decoder: add decoder_QueueSub
  mediacodec: add an output thread, remove polling

 include/vlc_codec.h              |  56 +++++
 modules/codec/omxil/mediacodec.c | 526 ++++++++++++++++++++++++---------------
 src/input/decoder.c              | 239 ++++++++++++------
 3 files changed, 541 insertions(+), 280 deletions(-)

-- 
2.1.4



More information about the vlc-devel mailing list