[FFmpeg-devel] lavc/mediacodec: add hevc decoder

Matthieu Bouron matthieu.bouron at gmail.com
Wed Sep 7 17:53:52 EEST 2016


The following patchset add support for hevc mediacodec decoding. The patchset
applies on top of:
    * lavc/mediacodecdec_h264: move bsf variable declaration at the top of the function
    * lavc/mediacodecdec_h264: use h264_parse.h instead of h264dec.h
which are going to be pushed in one hour or so (if there is no objection).

A development branch can be found at:

[PATCH 1/2] lavc/hevc: store VPS/SPS/PPS data

This commit stores the original sodb vps/sps/pps data to their respective
structures defined in hevc.h. The data will be used later on by the MediaCodec
decoder which requires the extradata to be vps+sps+pps.
Note: the H264 decoder stores the original sodb sps/pps the same way in the PPS/SPS

[PATCH 2/2] lavc: add hevc mediacodec decoder

This commit adds the hevc mediacodec decoder as well as an hevc extradata
parsing function (ff_hevc_decode_extradata) which matches the api of

The code of ff_hevc_decode_extradata is taken from hevc.c (and adapted to not
rely on the HEVCContext structure).
The code of hevc_decode_nal_units is taken from the simple version of
parse_nal_units from hevc_parser.c. The function has been adapted to not rely
on the AVCodecParserContext and to not call hevc_parse_slice_header which is
not relevant when parsing extradata.

Obviously there is work to do here (like for h264) to unify all the hevc
extradata parsing functions as there are:
    * hevc_decode_extradata (hevc.c)
    * two variants of parse_nal_units (hevc_parser.c), one variant is chosen
    over the other depending on the presence of the hevc decoder
    * and now ff_hevc_decode_extradata (hevc_parse.c)

The patch lacks a minor bump in libavcodec/version.h and a changelog entry
(which are going to be added in another revision of the patch).


More information about the ffmpeg-devel mailing list