From: Aman Gupta <a...@tmm1.net> This fixes playback of h264 streams with SPS changes. One such sample is available at http://tmm1.s3.amazonaws.com/videotoolbox/spschange.ts. It switches mid-stream from level 4.0 to level 3.2.
Previously, playing this sample with the VT hwaccel on iOS would crash. After this patch, it plays back as expected. On macOS however, feeding in new SPS into an existing decompression session does not always work, so this patch is only a partial fix. --- libavcodec/h264dec.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/libavcodec/h264dec.c b/libavcodec/h264dec.c index 41c0964..e521c52 100644 --- a/libavcodec/h264dec.c +++ b/libavcodec/h264dec.c @@ -740,6 +740,13 @@ FF_ENABLE_DEPRECATION_WARNINGS break; case H264_NAL_SPS: { GetBitContext tmp_gb = nal->gb; + if (avctx->hwaccel && avctx->hwaccel->pix_fmt == AV_PIX_FMT_VIDEOTOOLBOX) { + ret = avctx->hwaccel->decode_slice(avctx, + nal->data, + nal->size); + if (ret < 0) + goto end; + } if (ff_h264_decode_seq_parameter_set(&tmp_gb, avctx, &h->ps, 0) >= 0) break; av_log(h->avctx, AV_LOG_DEBUG, -- 2.10.1 (Apple Git-78) _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel