# HG changeset patch # User michael # Date 1266166291 0 # Node ID a820571a67122ad58dd420f43d64dae49838de27 # Parent c163ffa8c59ead6db62f879fd70636c24ceb9313 Set sub_mb_type in direct_cache instead of just the direct flag. Simpler, cleaner and faster. diff -r c163ffa8c59e -r a820571a6712 h264_cabac.c --- a/h264_cabac.c Sun Feb 14 14:41:27 2010 +0000 +++ b/h264_cabac.c Sun Feb 14 16:51:31 2010 +0000 @@ -1447,11 +1447,8 @@ h->ref_cache[1][scan8[4]] = h->ref_cache[0][scan8[12]] = h->ref_cache[1][scan8[12]] = PART_NOT_AVAILABLE; - 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, MB_TYPE_DIRECT2>>1, 1 ); - } + fill_rectangle( &h->direct_cache[scan8[4*i]], 2, 2, 8, (h->sub_mb_type[i]>>1)&0xFF, 1 ); } } else { for( i = 0; i < 4; i++ ) {