Revision 01c51168

View differences:

libavcodec/h264.h
817 817

  
818 818
        h->cbp= h->cbp_table[mb_xy];
819 819

  
820
        topleft_type = 0;
821
        topright_type = 0;
822 820
        top_type     = h->slice_table[top_xy     ] < 0xFFFF ? s->current_picture.mb_type[top_xy]     : 0;
823 821
        left_type[0] = h->slice_table[left_xy[0] ] < 0xFFFF ? s->current_picture.mb_type[left_xy[0]] : 0;
824 822
        left_type[1] = h->slice_table[left_xy[1] ] < 0xFFFF ? s->current_picture.mb_type[left_xy[1]] : 0;
825 823

  
826
        if(!IS_INTRA(mb_type)){
824
        {
827 825
            int list;
828 826
            for(list=0; list<h->list_count; list++){
829 827
                int8_t *ref;
......
838 836
                }
839 837

  
840 838
                ref = &s->current_picture.ref_index[list][h->mb2b8_xy[mb_xy]];
841
                if(for_deblock){
839
                {
842 840
                    int (*ref2frm)[64] = h->ref2frm[ h->slice_num&(MAX_SLICES-1) ][0] + (MB_MBAFF ? 20 : 2);
843 841
                    *(uint32_t*)&h->ref_cache[list][scan8[ 0]] =
844 842
                    *(uint32_t*)&h->ref_cache[list][scan8[ 2]] = (pack16to32(ref2frm[list][ref[0]],ref2frm[list][ref[1]])&0x00FF00FF)*0x0101;
845 843
                    ref += h->b8_stride;
846 844
                    *(uint32_t*)&h->ref_cache[list][scan8[ 8]] =
847 845
                    *(uint32_t*)&h->ref_cache[list][scan8[10]] = (pack16to32(ref2frm[list][ref[0]],ref2frm[list][ref[1]])&0x00FF00FF)*0x0101;
848
                }else{
849
                *(uint32_t*)&h->ref_cache[list][scan8[ 0]] =
850
                *(uint32_t*)&h->ref_cache[list][scan8[ 2]] = (pack16to32(ref[0],ref[1])&0x00FF00FF)*0x0101;
851
                ref += h->b8_stride;
852
                *(uint32_t*)&h->ref_cache[list][scan8[ 8]] =
853
                *(uint32_t*)&h->ref_cache[list][scan8[10]] = (pack16to32(ref[0],ref[1])&0x00FF00FF)*0x0101;
854 846
                }
855 847

  
856 848
                b_xy = 4*s->mb_x + 4*s->mb_y*h->b_stride;
......
1065 1057
    if(IS_INTER(mb_type) || IS_DIRECT(mb_type)){
1066 1058
        int list;
1067 1059
        for(list=0; list<h->list_count; list++){
1068
            if(!USES_LIST(mb_type, list) && !IS_DIRECT(mb_type) && !h->deblocking_filter){
1060
            if(!for_deblock && !USES_LIST(mb_type, list) && !IS_DIRECT(mb_type)){
1069 1061
                /*if(!h->mv_cache_clean[list]){
1070 1062
                    memset(h->mv_cache [list],  0, 8*5*2*sizeof(int16_t)); //FIXME clean only input? clean at all?
1071 1063
                    memset(h->ref_cache[list], PART_NOT_AVAILABLE, 8*5*sizeof(int8_t));

Also available in: Unified diff