[FFmpeg-devel] [PATCH] libavcodec/qsvdec_h264.c bug fixed: decoder fails after restart on non-annex-b content.

Hendrik Leppkes h.leppkes at gmail.com
Fri Jul 24 13:37:11 CEST 2015


On Fri, Jul 24, 2015 at 1:34 PM, Ivan Uskov <ivan.uskov at nablet.com> wrote:
> Hello All,
>
> The current implementation of libavcodec/qsvdec_h264.c does not store
> original extradata buffer. At the same time the
> \libavcodec\h264_mp4toannexb_bsf filter does modify extradata buffer
> inplace and fails to process it next time if decoder reinitializes.
> So it is not possible to decode mp4 or mkv container using ffmpeg
> command line with h264_qsv decoder.
> The attached patch solves this issue. The corresponded code was taken
> from \libavcodec\crystalhd.c which also uses the h264_mp4toannexb_bsf
> filter.
>
>

I don't think this is safe. avctx->extradata is user-managed and
allocated, so mocking with it from within a decoder seems rather
unsafe.

- Hendrik


More information about the ffmpeg-devel mailing list