Mercurial > libavcodec.hg
diff h264_cabac.c @ 11167:c163ffa8c59e libavcodec
Store sub_mb_type in direct_cache/direct_table.
This is equal complexity but could be more usefull.
author | michael |
---|---|
date | Sun, 14 Feb 2010 14:41:27 +0000 |
parents | 5bd834bd759b |
children | a820571a6712 |
line wrap: on
line diff
--- a/h264_cabac.c Sun Feb 14 02:08:48 2010 +0000 +++ b/h264_cabac.c Sun Feb 14 14:41:27 2010 +0000 @@ -951,9 +951,9 @@ int ctx = 0; if( h->slice_type_nos == FF_B_TYPE) { - if( refa > 0 && !h->direct_cache[scan8[n] - 1] ) + if( refa > 0 && !(h->direct_cache[scan8[n] - 1]&(MB_TYPE_DIRECT2>>1)) ) ctx++; - if( refb > 0 && !h->direct_cache[scan8[n] - 8] ) + if( refb > 0 && !(h->direct_cache[scan8[n] - 8]&(MB_TYPE_DIRECT2>>1)) ) ctx += 2; } else { if( refa > 0 ) @@ -1450,7 +1450,7 @@ if( h->ref_count[0] > 1 || h->ref_count[1] > 1 ) { for( i = 0; i < 4; i++ ) if( IS_DIRECT(h->sub_mb_type[i]) ) - fill_rectangle( &h->direct_cache[scan8[4*i]], 2, 2, 8, 1, 1 ); + fill_rectangle( &h->direct_cache[scan8[4*i]], 2, 2, 8, MB_TYPE_DIRECT2>>1, 1 ); } } } else {