On Thu, 16 Feb 2017 10:29:36 -0800 Aman Gupta <ffm...@tmm1.net> wrote:
> 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, A bit ugly but ok IMHO. Maybe it would be better to add a new hwaccel callback here, even if it's used by VT only. You should probably wait for approval by michaelni. _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel