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

Reply via email to