Revision d4a688d0

View differences:

libavcodec/h264.c
6076 6076
            if( IS_DIRECT(h->sub_mb_type[0] | h->sub_mb_type[1] |
6077 6077
                          h->sub_mb_type[2] | h->sub_mb_type[3]) ) {
6078 6078
                pred_direct_motion(h, &mb_type);
6079
                h->ref_cache[0][scan8[4]] =
6080
                h->ref_cache[1][scan8[4]] =
6081
                h->ref_cache[0][scan8[12]] =
6082
                h->ref_cache[1][scan8[12]] = PART_NOT_AVAILABLE;
6079 6083
                if( h->ref_count[0] > 1 || h->ref_count[1] > 1 ) {
6080 6084
                    for( i = 0; i < 4; i++ )
6081 6085
                        if( IS_DIRECT(h->sub_mb_type[i]) )
......
6111 6115

  
6112 6116
        for(list=0; list<h->list_count; list++){
6113 6117
            for(i=0; i<4; i++){
6118
                h->ref_cache[list][ scan8[4*i]   ]=h->ref_cache[list][ scan8[4*i]+1 ];
6114 6119
                if(IS_DIRECT(h->sub_mb_type[i])){
6115 6120
                    fill_rectangle(h->mvd_cache[list][scan8[4*i]], 2, 2, 8, 0, 4);
6116 6121
                    continue;
6117 6122
                }
6118
                h->ref_cache[list][ scan8[4*i]   ]=h->ref_cache[list][ scan8[4*i]+1 ];
6119 6123

  
6120 6124
                if(IS_DIR(h->sub_mb_type[i], 0, list) && !IS_DIRECT(h->sub_mb_type[i])){
6121 6125
                    const int sub_mb_type= h->sub_mb_type[i];

Also available in: Unified diff