This is normally set by parser but parsing is not always enabled. Signed-off-by: Paul B Mahol <one...@gmail.com> --- libavcodec/h264dec.c | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+)
diff --git a/libavcodec/h264dec.c b/libavcodec/h264dec.c index 00d922fbe9..39142da7af 100644 --- a/libavcodec/h264dec.c +++ b/libavcodec/h264dec.c @@ -1018,6 +1018,24 @@ static int h264_decode_frame(AVCodecContext *avctx, void *data, } } + if (h->picture_structure == PICT_FRAME) { + if (h->ps.sps->pic_struct_present_flag && h->sei.picture_timing.present) { + switch (h->sei.picture_timing.pic_struct) { + case H264_SEI_PIC_STRUCT_TOP_BOTTOM: + case H264_SEI_PIC_STRUCT_TOP_BOTTOM_TOP: + avctx->field_order = AV_FIELD_TT; + break; + case H264_SEI_PIC_STRUCT_BOTTOM_TOP: + case H264_SEI_PIC_STRUCT_BOTTOM_TOP_BOTTOM: + avctx->field_order = AV_FIELD_BB; + break; + default: + avctx->field_order = AV_FIELD_PROGRESSIVE; + break; + } + } + } + av_assert0(pict->buf[0] || !*got_frame); ff_h264_unref_picture(h, &h->last_pic_for_ec); -- 2.17.1 _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel