mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2024-12-23 12:43:46 +02:00
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. Originally committed as revision 22483 to svn://svn.ffmpeg.org/ffmpeg/trunk
This commit is contained in:
parent
382f3a5b6f
commit
2ce1c2e063
@ -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;
|
||||
|
Loading…
Reference in New Issue
Block a user