Hi, On Wed, Mar 29, 2017 at 8:06 PM, Michael Niedermayer <mich...@niedermayer.cc > wrote:
> On Wed, Mar 29, 2017 at 10:12:22AM -0400, Ronald S. Bultje wrote: > > The value must be identical between slices. (Maybe this needs an error > > path to inform caller if this fails?) > > --- > > libavcodec/h264_direct.c | 6 +++++- > > 1 file changed, 5 insertions(+), 1 deletion(-) > > > > diff --git a/libavcodec/h264_direct.c b/libavcodec/h264_direct.c > > index 4e7202b..20136b0 100644 > > --- a/libavcodec/h264_direct.c > > +++ b/libavcodec/h264_direct.c > > @@ -138,7 +138,11 @@ void ff_h264_direct_ref_list_init(const > H264Context *const h, H264SliceContext * > > memcpy(cur->ref_poc[1], cur->ref_poc[0], > sizeof(cur->ref_poc[0])); > > } > > > > - cur->mbaff = FRAME_MBAFF(h); > > + if (h->current_slice == 0) { > > + cur->mbaff = FRAME_MBAFF(h); > > + } else if (cur->mbaff != FRAME_MBAFF(h)) { > > + av_log(h->avctx, AV_LOG_ERROR, "Frame mixes MBAFF and non-MBAFF > slices\n"); > > + } > > It should not be possible for mbaff to differ between slices without > some checks failing > we check for sps and frame/field to match thogh this code was shuffled > around with some merges i think it still works > > so maybe a assert0 would work for this Indeed seems to be the case. Check for ff_h264_queue_decode_slice() in h264_slice.c:2090 for the picture_structure check and just a few lines above for the SPS check. Changed to av_assert0() in new patch. Thanks for review. Ronald _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel