Revision 01c51168
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