Hi, On Fri, Dec 23, 2011 at 7:58 AM, Konstantin Todorov <[email protected]>wrote: > @@ -1129,28 +1135,45 @@ int ff_find_unused_picture(MpegEncContext *s, int shared) > } > } > > - return AVERROR_INVALIDDATA; > + 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; > }
You're removing a recently applied patch here, that's not right. (Haven't reviewed the rest yet.) Ronald
_______________________________________________ libav-devel mailing list [email protected] https://lists.libav.org/mailman/listinfo/libav-devel
