h264: do not print "too many references" warning for intra-only.

Fixes issue 2679.
pull/2/head
Ronald S. Bultje 14 years ago
parent d545cf804c
commit e86fbe1751
  1. 8
      libavcodec/h264_refs.c

@ -621,15 +621,17 @@ int ff_h264_execute_ref_pic_marking(H264Context *h, MMCO *mmco, int mmco_count){
} }
} }
if (h->long_ref_count + h->short_ref_count > h->sps.ref_frame_count){ if (h->long_ref_count + h->short_ref_count -
(h->short_ref[0] == s->current_picture_ptr) > h->sps.ref_frame_count){
/* We have too many reference frames, probably due to corrupted /* We have too many reference frames, probably due to corrupted
* stream. Need to discard one frame. Prevents overrun of the * stream. Need to discard one frame. Prevents overrun of the
* short_ref and long_ref buffers. * short_ref and long_ref buffers.
*/ */
av_log(h->s.avctx, AV_LOG_ERROR, av_log(h->s.avctx, AV_LOG_ERROR,
"number of reference frames exceeds max (probably " "number of reference frames (%d+%d) exceeds max (%d; probably "
"corrupt input), discarding one\n"); "corrupt input), discarding one\n",
h->long_ref_count, h->short_ref_count, h->sps.ref_frame_count);
if (h->long_ref_count && !h->short_ref_count) { if (h->long_ref_count && !h->short_ref_count) {
for (i = 0; i < 16; ++i) for (i = 0; i < 16; ++i)

Loading…
Cancel
Save