Hi,

On Sun, Nov 25, 2012 at 2:40 PM, Janne Grunau <janne-li...@jannau.net> wrote:
> Dropping frames is undesirable but that is the only way by which the
> decoder could return to low delay mode. Instead emit a warning and
> continue with delayed frames.
> Fixes a crash in fuzzed sample nasa-8s2.ts_s20033 caused by a larger
> than expected has_b_frames value. Low delay keeps getting re-enabled
> from a presumely broken SPS.
> ---
>  libavcodec/h264.c | 10 ++++++++--
>  1 file changed, 8 insertions(+), 2 deletions(-)
>
> diff --git a/libavcodec/h264.c b/libavcodec/h264.c
> index f45c572..658d865 100644
> --- a/libavcodec/h264.c
> +++ b/libavcodec/h264.c
> @@ -3867,8 +3867,14 @@ again:
>
>                  if (s->flags & CODEC_FLAG_LOW_DELAY ||
>                      (h->sps.bitstream_restriction_flag &&
> -                     !h->sps.num_reorder_frames))
> -                    s->low_delay = 1;
> +                     !h->sps.num_reorder_frames)) {
> +                    if (s->avctx->has_b_frames > 1 || h->delayed_pic[0])
> +                        av_log(avctx, AV_LOG_WARNING, "Delayed frames seen "
> +                               "reenabling low delay requires a codec "
> +                               "flush.\n");
> +                        else
> +                            s->low_delay = 1;
> +                }

That looks good, thanks.

Ronald
_______________________________________________
libav-devel mailing list
libav-devel@libav.org
https://lists.libav.org/mailman/listinfo/libav-devel

Reply via email to