From ba5bb0562b37313540845ae7fa069134aad6e0c9 Mon Sep 17 00:00:00 2001 From: Michael Niedermayer Date: Sat, 12 Nov 2011 21:10:15 +0100 Subject: h264: Use mismatching frame numbers in fields to synchronize the first/second field state independant of them being reference or not. Fixes Ticket354 Signed-off-by: Michael Niedermayer (cherry picked from commit 545ec935a4b4e0f032ebd975907b41f6fe4465c9) --- libavcodec/h264.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) (limited to 'libavcodec') diff --git a/libavcodec/h264.c b/libavcodec/h264.c index ff38bd7db7..27833f554a 100644 --- a/libavcodec/h264.c +++ b/libavcodec/h264.c @@ -2810,11 +2810,9 @@ static int decode_slice_header(H264Context *h, H264Context *h0){ s0->first_field = FIELD_PICTURE; } else { - if (h->nal_ref_idc && - s0->current_picture_ptr->reference && - s0->current_picture_ptr->frame_num != h->frame_num) { + if (s0->current_picture_ptr->frame_num != h->frame_num) { /* - * This and previous field were reference, but had + * This and previous field had * different frame_nums. Consider this field first in * pair. Throw away previous field except for reference * purposes. -- cgit v1.2.3