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");
+ }
sl->col_fieldoff = 0;
--
2.8.1
_______________________________________________
ffmpeg-devel mailing list
[email protected]
http://ffmpeg.org/mailman/listinfo/ffmpeg-devel