[FFmpeg-cvslog] r17362 - trunk/libavcodec/mpegvideo_xvmc.c

Ivan Kalvachev ikalvachev
Mon Feb 16 08:50:32 CET 2009


On 2/16/09, diego <subversion at mplayerhq.hu> wrote:
> Author: diego
> Date: Mon Feb 16 03:02:49 2009
> New Revision: 17362
>
> Log:
> Replace two asserts by checks and error messages.
>
> Modified:
>    trunk/libavcodec/mpegvideo_xvmc.c
>
> Modified: trunk/libavcodec/mpegvideo_xvmc.c
> ==============================================================================
> --- trunk/libavcodec/mpegvideo_xvmc.c	Mon Feb 16 02:59:51 2009	(r17361)
> +++ trunk/libavcodec/mpegvideo_xvmc.c	Mon Feb 16 03:02:49 2009	(r17362)
> @@ -312,11 +312,14 @@ void ff_xvmc_decode_mb(MpegEncContext *s
>      }
>      render->filled_mv_blocks_num++;
>
> -    assert(render->filled_mv_blocks_num     <=
> render->allocated_mv_blocks);
> -    assert(render->next_free_data_block_num <=
> render->allocated_data_blocks);
> -    /* The above conditions should not be able to fail as long as this
> function
> -     * is used and the following 'if ()' automatically calls a callback to
> free
> -     * blocks. */
> +
> +    if (render->filled_mv_blocks_num > render->allocated_mv_blocks)
> +        av_log(s->avctx, AV_LOG_ERROR,
> +               "Not enough space to store mv blocks allocated.\n");
> +
> +    if (render->next_free_data_block_num > render->allocated_data_blocks)
> +        av_log(s->avctx, AV_LOG_ERROR,
> +               "Offset to next data block exceeds number of allocated data
> blocks.\n");
>
>
>      if (render->filled_mv_blocks_num == render->allocated_mv_blocks)

This is wrong. Revert it.

Asserts are used only to check for conditions that are impossible to occur
if the logic of the program is correct.
Failing  assert means somewhere (not necessary where the assert is)
have gone wrong.

If we are sure in programs logic all asserts could be disabled with
defining NDEBUG before including assert.h




More information about the ffmpeg-cvslog mailing list