[FFmpeg-cvslog] r22483 - trunk/libavcodec/h264.c
michael
subversion
Fri Mar 12 16:21:46 CET 2010
Author: michael
Date: Fri Mar 12 16:21:45 2010
New Revision: 22483
Log:
Always reset slice_table.
Previously, the area of a lost slice would be left at the slice number of the previous
frame which could occasionally match the number of the next slice and thus a non existing
slice could have been used for prediction leading to additional decoding errors in otherwise
undamaged slices.
Modified:
trunk/libavcodec/h264.c
Modified: trunk/libavcodec/h264.c
==============================================================================
--- trunk/libavcodec/h264.c Fri Mar 12 16:12:05 2010 (r22482)
+++ trunk/libavcodec/h264.c Fri Mar 12 16:21:45 2010 (r22483)
@@ -961,8 +961,7 @@ int ff_h264_frame_start(H264Context *h){
if(!h->thread_context[i]->s.obmc_scratchpad)
h->thread_context[i]->s.obmc_scratchpad = av_malloc(16*2*s->linesize + 8*2*s->uvlinesize);
- /* some macroblocks will be accessed before they're available */
- if(FRAME_MBAFF || s->avctx->thread_count > 1)
+ /* some macroblocks can be accessed before they're available in case of lost slices, mbaff or threading*/
memset(h->slice_table, -1, (s->mb_height*s->mb_stride-1) * sizeof(*h->slice_table));
// s->decode= (s->flags&CODEC_FLAG_PSNR) || !s->encoding || s->current_picture.reference /*|| h->contains_intra*/ || 1;
More information about the ffmpeg-cvslog
mailing list