[FFmpeg-cvslog] h264: do not print "too many references" warning for intra-only.
Ronald S. Bultje
git at videolan.org
Wed May 11 06:06:42 CEST 2011
ffmpeg | branch: master | Ronald S. Bultje <rsbultje at gmail.com> | Fri May 6 16:31:26 2011 -0400| [e86fbe1751772a3b6790652ab382dcebaeec3aa8] | committer: Ronald S. Bultje
h264: do not print "too many references" warning for intra-only.
Fixes issue 2679.
> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=e86fbe1751772a3b6790652ab382dcebaeec3aa8
---
libavcodec/h264_refs.c | 8 +++++---
1 files changed, 5 insertions(+), 3 deletions(-)
diff --git a/libavcodec/h264_refs.c b/libavcodec/h264_refs.c
index 13d43e6..a025f7d 100644
--- a/libavcodec/h264_refs.c
+++ b/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
* stream. Need to discard one frame. Prevents overrun of the
* short_ref and long_ref buffers.
*/
av_log(h->s.avctx, AV_LOG_ERROR,
- "number of reference frames exceeds max (probably "
- "corrupt input), discarding one\n");
+ "number of reference frames (%d+%d) exceeds max (%d; probably "
+ "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) {
for (i = 0; i < 16; ++i)
More information about the ffmpeg-cvslog
mailing list