From e2b28acf8904d9adf660c972dc57cded9f0ec373 Mon Sep 17 00:00:00 2001 From: Michael Niedermayer Date: Sat, 13 Feb 2010 19:39:18 +0000 Subject: [PATCH] Also skip direct/mvd_cache init for skiped blocks. Odd thing is i thought ive tryed this already and it failed previously. Originally committed as revision 21809 to svn://svn.ffmpeg.org/ffmpeg/trunk --- libavcodec/h264.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libavcodec/h264.h b/libavcodec/h264.h index 4ba8ecb2a9..68c26af36c 100644 --- a/libavcodec/h264.h +++ b/libavcodec/h264.h @@ -1015,7 +1015,7 @@ static void fill_decode_caches(H264Context *h, int mb_type){ if((IS_SKIP(mb_type) || IS_DIRECT(mb_type)) && !FRAME_MBAFF) continue; - if(!IS_DIRECT(mb_type)) { + if(!(mb_type&(MB_TYPE_SKIP|MB_TYPE_DIRECT2))) { h->ref_cache[list][scan8[5 ]+1] = h->ref_cache[list][scan8[7 ]+1] = h->ref_cache[list][scan8[13]+1] = //FIXME remove past 3 (init somewhere else)