Revision 806ac67b
libavcodec/h264.h  

741  741 
{0,2,0,2,7,10,7,10,7+0*8, 7+2*8, 7+0*8, 7+2*8, 2+0*8, 2+3*8, 2+0*8, 2+3*8} 
742  742 
}; 
743  743  
744 
top_xy = mb_xy  (s>mb_stride << FIELD_PICTURE);


744 
top_xy = mb_xy  (s>mb_stride << MB_FIELD);


745  745  
746  746 
//FIXME deblocking could skip the intra and nnz parts. 
747  747 
// if(for_deblock && (h>slice_num == 1  h>slice_table[mb_xy] == h>slice_table[top_xy]) && !FRAME_MBAFF) 
...  ...  
755  755 
left_xy[1] = left_xy[0] = mb_xy1; 
756  756 
left_block = left_block_options[0]; 
757  757 
if(FRAME_MBAFF){ 
758 
const int pair_xy = s>mb_x + (s>mb_y & ~1)*s>mb_stride; 

759 
const int top_pair_xy = pair_xy  s>mb_stride; 

760 
const int topleft_pair_xy = top_pair_xy  1; 

761 
const int topright_pair_xy = top_pair_xy + 1; 

762 
const int topleft_mb_field_flag = IS_INTERLACED(s>current_picture.mb_type[topleft_pair_xy]); 

763 
const int top_mb_field_flag = IS_INTERLACED(s>current_picture.mb_type[top_pair_xy]); 

764 
const int topright_mb_field_flag = IS_INTERLACED(s>current_picture.mb_type[topright_pair_xy]); 

765 
const int left_mb_field_flag = IS_INTERLACED(s>current_picture.mb_type[pair_xy1]); 

758 
const int left_mb_field_flag = IS_INTERLACED(s>current_picture.mb_type[mb_xy1]); 

766  759 
const int curr_mb_field_flag = IS_INTERLACED(mb_type); 
767 
const int bottom = (s>mb_y & 1); 

768 
tprintf(s>avctx, "fill_caches: curr_mb_field_flag:%d, left_mb_field_flag:%d, topleft_mb_field_flag:%d, top_mb_field_flag:%d, topright_mb_field_flag:%d\n", curr_mb_field_flag, left_mb_field_flag, topleft_mb_field_flag, top_mb_field_flag, topright_mb_field_flag); 

769  
770 
if (curr_mb_field_flag && (bottom  top_mb_field_flag)){ 

771 
top_xy = s>mb_stride; 

772 
} 

773 
if (curr_mb_field_flag && (bottom  topleft_mb_field_flag)){ 

774 
topleft_xy = s>mb_stride; 

775 
} else if(bottom && !curr_mb_field_flag && left_mb_field_flag) { 

776 
topleft_xy += s>mb_stride; 

777 
// take top left mv from the middle of the mb, as opposed to all other modes which use the bottom right partition 

778 
topleft_partition = 0; 

779 
} 

780 
if (curr_mb_field_flag && (bottom  topright_mb_field_flag)){ 

781 
topright_xy = s>mb_stride; 

782 
} 

783 
if (left_mb_field_flag != curr_mb_field_flag) { 

784 
left_xy[1] = left_xy[0] = pair_xy  1; 

785 
if (curr_mb_field_flag) { 

786 
left_xy[1] += s>mb_stride; 

787 
left_block = left_block_options[3]; 

788 
} else { 

789 
left_block= left_block_options[2  bottom]; 

760 
if(s>mb_y&1){ 

761 
if (left_mb_field_flag != curr_mb_field_flag) { 

762 
left_xy[1] = left_xy[0] = mb_xy  s>mb_stride  1; 

763 
if (curr_mb_field_flag) { 

764 
left_xy[1] += s>mb_stride; 

765 
left_block = left_block_options[3]; 

766 
} else { 

767 
topleft_xy += s>mb_stride; 

768 
// take top left mv from the middle of the mb, as opposed to all other modes which use the bottom right partition 

769 
topleft_partition = 0; 

770 
left_block = left_block_options[1]; 

771 
} 

772 
} 

773 
}else{ 

774 
if(curr_mb_field_flag){ 

775 
topleft_xy += s>mb_stride & (((s>current_picture.mb_type[top_xy  1]>>7)&1)1); 

776 
topright_xy += s>mb_stride & (((s>current_picture.mb_type[top_xy + 1]>>7)&1)1); 

777 
top_xy += s>mb_stride & (((s>current_picture.mb_type[top_xy ]>>7)&1)1); 

778 
} 

779 
if (left_mb_field_flag != curr_mb_field_flag) { 

780 
left_xy[1] = left_xy[0] = mb_xy  1; 

781 
if (curr_mb_field_flag) { 

782 
left_xy[1] += s>mb_stride; 

783 
left_block = left_block_options[3]; 

784 
} else { 

785 
left_block = left_block_options[2]; 

786 
} 

790  787 
} 
791  788 
} 
792  789 
} 
Also available in: Unified diff