1060 |
1060 |
*(uint32_t*)h->mvd_cache [list][scan8[12]]= 0;
|
1061 |
1061 |
|
1062 |
1062 |
if(h->slice_type_nos == FF_B_TYPE){
|
1063 |
|
fill_rectangle(&h->direct_cache[scan8[0]], 4, 4, 8, 0, 1);
|
|
1063 |
fill_rectangle(&h->direct_cache[scan8[0]], 4, 4, 8, MB_TYPE_16x16>>1, 1);
|
1064 |
1064 |
|
1065 |
1065 |
if(IS_DIRECT(top_type)){
|
1066 |
|
*(uint32_t*)&h->direct_cache[scan8[0] - 1*8]= 0x01010101;
|
|
1066 |
*(uint32_t*)&h->direct_cache[scan8[0] - 1*8]= 0x01010101*(MB_TYPE_DIRECT2>>1);
|
1067 |
1067 |
}else if(IS_8X8(top_type)){
|
1068 |
1068 |
int b8_xy = h->mb2b8_xy[top_xy] + h->b8_stride;
|
1069 |
1069 |
h->direct_cache[scan8[0] + 0 - 1*8]= h->direct_table[b8_xy];
|
1070 |
1070 |
h->direct_cache[scan8[0] + 2 - 1*8]= h->direct_table[b8_xy + 1];
|
1071 |
1071 |
}else{
|
1072 |
|
*(uint32_t*)&h->direct_cache[scan8[0] - 1*8]= 0;
|
|
1072 |
*(uint32_t*)&h->direct_cache[scan8[0] - 1*8]= 0x01010101*(MB_TYPE_16x16>>1);
|
1073 |
1073 |
}
|
1074 |
1074 |
|
1075 |
1075 |
if(IS_DIRECT(left_type[0]))
|
1076 |
|
h->direct_cache[scan8[0] - 1 + 0*8]= 1;
|
|
1076 |
h->direct_cache[scan8[0] - 1 + 0*8]= MB_TYPE_DIRECT2>>1;
|
1077 |
1077 |
else if(IS_8X8(left_type[0]))
|
1078 |
1078 |
h->direct_cache[scan8[0] - 1 + 0*8]= h->direct_table[h->mb2b8_xy[left_xy[0]] + 1 + h->b8_stride*(left_block[0]>>1)];
|
1079 |
1079 |
else
|
1080 |
|
h->direct_cache[scan8[0] - 1 + 0*8]= 0;
|
|
1080 |
h->direct_cache[scan8[0] - 1 + 0*8]= MB_TYPE_16x16>>1;
|
1081 |
1081 |
|
1082 |
1082 |
if(IS_DIRECT(left_type[1]))
|
1083 |
|
h->direct_cache[scan8[0] - 1 + 2*8]= 1;
|
|
1083 |
h->direct_cache[scan8[0] - 1 + 2*8]= MB_TYPE_DIRECT2>>1;
|
1084 |
1084 |
else if(IS_8X8(left_type[1]))
|
1085 |
1085 |
h->direct_cache[scan8[0] - 1 + 2*8]= h->direct_table[h->mb2b8_xy[left_xy[1]] + 1 + h->b8_stride*(left_block[2]>>1)];
|
1086 |
1086 |
else
|
1087 |
|
h->direct_cache[scan8[0] - 1 + 2*8]= 0;
|
|
1087 |
h->direct_cache[scan8[0] - 1 + 2*8]= MB_TYPE_16x16>>1;
|
1088 |
1088 |
}
|
1089 |
1089 |
}
|
1090 |
1090 |
}
|
... | ... | |
1409 |
1409 |
if(h->slice_type_nos == FF_B_TYPE && CABAC){
|
1410 |
1410 |
if(IS_8X8(mb_type)){
|
1411 |
1411 |
uint8_t *direct_table = &h->direct_table[b8_xy];
|
1412 |
|
direct_table[1+0*h->b8_stride] = IS_DIRECT(h->sub_mb_type[1]) ? 1 : 0;
|
1413 |
|
direct_table[0+1*h->b8_stride] = IS_DIRECT(h->sub_mb_type[2]) ? 1 : 0;
|
1414 |
|
direct_table[1+1*h->b8_stride] = IS_DIRECT(h->sub_mb_type[3]) ? 1 : 0;
|
|
1412 |
direct_table[1+0*h->b8_stride] = h->sub_mb_type[1]>>1;
|
|
1413 |
direct_table[0+1*h->b8_stride] = h->sub_mb_type[2]>>1;
|
|
1414 |
direct_table[1+1*h->b8_stride] = h->sub_mb_type[3]>>1;
|
1415 |
1415 |
}
|
1416 |
1416 |
}
|
1417 |
1417 |
}
|