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

Ivan Kalvachev ikalvachev
Sun Feb 15 08:50:17 CET 2009


On 2/15/09, Ivan Kalvachev <ikalvachev at gmail.com> wrote:
> On 2/15/09, diego <subversion at mplayerhq.hu> wrote:
>> Author: diego
>> Date: Sun Feb 15 03:27:55 2009
>> New Revision: 17308
>>
>> Log:
>> Replace assert in ff_xvmc_field_end() by av_log call at level
>> AV_LOG_ERROR.
>>
>> Modified:
>>    trunk/libavcodec/mpegvideo_xvmc.c
>>
>> Modified: trunk/libavcodec/mpegvideo_xvmc.c
>> ==============================================================================
>> --- trunk/libavcodec/mpegvideo_xvmc.c	Sun Feb 15 03:17:48 2009	(r17307)
>> +++ trunk/libavcodec/mpegvideo_xvmc.c	Sun Feb 15 03:27:55 2009	(r17308)
>> @@ -290,13 +290,14 @@ void ff_xvmc_decode_mb(MpegEncContext *s
>>      }
>>      render->filled_mv_blocks_num++;
>>
>> -    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);
>> -    /* The above conditions should not be able to fail as long as this
>> function
>> +    /* The above condition 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->total_number_of_mv_blocks)
>>          ff_draw_horiz_band(s, 0, 0);
>> +    else
>> +        av_log(s->avctx, AV_LOG_ERROR, "Not all blocks have been
>> processed.\n");
>>  }
>
> This is wrong.
> revert.

On normal operation filled < total,
so your change causes one log output per decoded MB
that in return makes playback so slow that it can't decode frame.

I guess this is regression break; Happens to the best too.




More information about the ffmpeg-cvslog mailing list