# HG changeset patch # User gpoirier # Date 1185830376 0 # Node ID 1fdfea5024a713e2217d764d1a5dace8668b3e83 # Parent 07844149dfa91d65299516089868bbb833e4b451 fix cabac decoding with some Blue-Ray sources Patch by Andreas ªÓman %andreas A olebyn P nu% Original thread: Date: Jul 7, 2007 1:23 AM Subject: [FFmpeg-devel] Corrupted blocks and seeking issues in H264 disc sources diff -r 07844149dfa9 -r 1fdfea5024a7 h264.c --- a/h264.c Mon Jul 30 18:05:46 2007 +0000 +++ b/h264.c Mon Jul 30 21:19:36 2007 +0000 @@ -6076,6 +6076,10 @@ if( IS_DIRECT(h->sub_mb_type[0] | h->sub_mb_type[1] | h->sub_mb_type[2] | h->sub_mb_type[3]) ) { pred_direct_motion(h, &mb_type); + h->ref_cache[0][scan8[4]] = + 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]) ) @@ -6111,11 +6115,11 @@ for(list=0; listlist_count; list++){ for(i=0; i<4; i++){ + h->ref_cache[list][ scan8[4*i] ]=h->ref_cache[list][ scan8[4*i]+1 ]; if(IS_DIRECT(h->sub_mb_type[i])){ fill_rectangle(h->mvd_cache[list][scan8[4*i]], 2, 2, 8, 0, 4); continue; } - h->ref_cache[list][ scan8[4*i] ]=h->ref_cache[list][ scan8[4*i]+1 ]; if(IS_DIR(h->sub_mb_type[i], 0, list) && !IS_DIRECT(h->sub_mb_type[i])){ const int sub_mb_type= h->sub_mb_type[i];