|
|
|
@ -3212,6 +3212,7 @@ static int decode_slice_header(H264Context *h, H264Context *h0) |
|
|
|
|
int last_pic_structure, last_pic_droppable; |
|
|
|
|
int must_reinit; |
|
|
|
|
int needs_reinit = 0; |
|
|
|
|
int field_pic_flag, bottom_field_flag; |
|
|
|
|
|
|
|
|
|
h->me.qpel_put = h->h264qpel.put_h264_qpel_pixels_tab; |
|
|
|
|
h->me.qpel_avg = h->h264qpel.avg_h264_qpel_pixels_tab; |
|
|
|
@ -3404,8 +3405,10 @@ static int decode_slice_header(H264Context *h, H264Context *h0) |
|
|
|
|
av_log(h->avctx, AV_LOG_ERROR, "This stream was generated by a broken encoder, invalid 8x8 inference\n"); |
|
|
|
|
return -1; |
|
|
|
|
} |
|
|
|
|
if (get_bits1(&h->gb)) { // field_pic_flag
|
|
|
|
|
h->picture_structure = PICT_TOP_FIELD + get_bits1(&h->gb); // bottom_field_flag
|
|
|
|
|
field_pic_flag = get_bits1(&h->gb); |
|
|
|
|
if (field_pic_flag) { |
|
|
|
|
bottom_field_flag = get_bits1(&h->gb); |
|
|
|
|
h->picture_structure = PICT_TOP_FIELD + bottom_field_flag; |
|
|
|
|
} else { |
|
|
|
|
h->picture_structure = PICT_FRAME; |
|
|
|
|
h->mb_aff_frame = h->sps.mb_aff; |
|
|
|
|