[FFmpeg-cvslog] r17362 - trunk/libavcodec/mpegvideo_xvmc.c
Diego Biurrun
diego
Mon Feb 16 12:33:16 CET 2009
On Mon, Feb 16, 2009 at 09:50:32AM +0200, Ivan Kalvachev wrote:
> On 2/16/09, diego <subversion at mplayerhq.hu> wrote:
> >
> > Log:
> > Replace two asserts by checks and error messages.
> >
> > --- 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
> >
> > - 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.
Then how do you interpret the following part of Michael's review?
> assert(render->filled_mv_blocks_num <= render->total_number_of_mv_blocks);
> assert(render->next_free_data_block_num <= render->total_number_of_data_blocks);
5 points
replace all assert() checks on all user settable fields by
normal if() av_log() whatever else is needed checks
It seems clear to me that he wants those asserts replaced by checks like
the ones I implemented.
Diego
More information about the ffmpeg-cvslog
mailing list