|
|
|
@ -3621,7 +3621,7 @@ static int decode_slice_header(H264Context *h, H264Context *h0) |
|
|
|
|
assert(h0->cur_pic_ptr->reference != DELAYED_PIC_REF); |
|
|
|
|
|
|
|
|
|
/* Mark old field/frame as completed */ |
|
|
|
|
if (!last_pic_droppable && h0->cur_pic_ptr->tf.owner == h0->avctx) { |
|
|
|
|
if (h0->cur_pic_ptr->tf.owner == h0->avctx) { |
|
|
|
|
ff_thread_report_progress(&h0->cur_pic_ptr->tf, INT_MAX, |
|
|
|
|
last_pic_structure == PICT_BOTTOM_FIELD); |
|
|
|
|
} |
|
|
|
@ -3630,7 +3630,7 @@ static int decode_slice_header(H264Context *h, H264Context *h0) |
|
|
|
|
if (!FIELD_PICTURE(h) || h->picture_structure == last_pic_structure) { |
|
|
|
|
/* Previous field is unmatched. Don't display it, but let it
|
|
|
|
|
* remain for reference if marked as such. */ |
|
|
|
|
if (!last_pic_droppable && last_pic_structure != PICT_FRAME) { |
|
|
|
|
if (last_pic_structure != PICT_FRAME) { |
|
|
|
|
ff_thread_report_progress(&h0->cur_pic_ptr->tf, INT_MAX, |
|
|
|
|
last_pic_structure == PICT_TOP_FIELD); |
|
|
|
|
} |
|
|
|
@ -3640,7 +3640,7 @@ static int decode_slice_header(H264Context *h, H264Context *h0) |
|
|
|
|
* different frame_nums. Consider this field first in |
|
|
|
|
* pair. Throw away previous field except for reference |
|
|
|
|
* purposes. */ |
|
|
|
|
if (!last_pic_droppable && last_pic_structure != PICT_FRAME) { |
|
|
|
|
if (last_pic_structure != PICT_FRAME) { |
|
|
|
|
ff_thread_report_progress(&h0->cur_pic_ptr->tf, INT_MAX, |
|
|
|
|
last_pic_structure == PICT_TOP_FIELD); |
|
|
|
|
} |
|
|
|
|