All pastes #1172115 Raw Edit

someone

public text v1 · immutable
#1172115 ·published 2008-08-14 23:00 UTC
rendered paste body
Index: libavcodec/mpegvideo.c===================================================================--- libavcodec/mpegvideo.c	(revision 14767)+++ libavcodec/mpegvideo.c	(working copy)@@ -779,19 +779,15 @@     }      av_log(s->avctx, AV_LOG_FATAL, "Internal error, picture buffer overflow\n");-    /* We could return -1, but the codec would crash trying to draw into a-     * non-existing frame anyway. This is safer than waiting for a random crash.-     * Also the return of this is never useful, an encoder must only allocate-     * as much as allowed in the specification. This has no relationship to how-     * much libavcodec could allocate (and MAX_PICTURE_COUNT is always large-     * enough for such valid streams).-     * Plus, a decoder has to check stream validity and remove frames if too-     * many reference frames are around. Waiting for "OOM" is not correct at-     * all. Similarly, missing reference frames have to be replaced by-     * interpolated/MC frames, anything else is a bug in the codec ...-     */-    abort();-    return -1;+    int oldest=0;+    for(i=0; i<MAX_PICTURE_COUNT; i++){+        av_log(s->avctx, AV_LOG_FATAL, "pic %d num %d ref %d\n",+               i, s->picture[i].coded_picture_number, s->picture[i].reference);+        if (s->picture[i].coded_picture_number < s->picture[oldest].coded_picture_number)+            oldest = i;+    }+    s->avctx->release_buffer(s->avctx, (AVFrame*)&s->picture[oldest]);+    return oldest; }  static void update_noise_reduction(MpegEncContext *s){