comparison h264_loopfilter.c @ 10984:541acd292c48 libavcodec

Remove all uses of slice_type* from the loop filter, also remove its initialization befre the loop filter.
author michael
date Sun, 24 Jan 2010 13:20:17 +0000
parents 776dba50775c
children 5e5d44c920b6
comparison
equal deleted inserted replaced
10983:b97c4ad11022 10984:541acd292c48
379 && (s->current_picture.mb_type[mb_xy-1] & (MB_TYPE_16x16 | MB_TYPE_8x16)) 379 && (s->current_picture.mb_type[mb_xy-1] & (MB_TYPE_16x16 | MB_TYPE_8x16))
380 ? 3 : 0; 380 ? 3 : 0;
381 int step = IS_8x8DCT(mb_type) ? 2 : 1; 381 int step = IS_8x8DCT(mb_type) ? 2 : 1;
382 edges = (mb_type & MB_TYPE_16x16) && !(h->cbp & 15) ? 1 : 4; 382 edges = (mb_type & MB_TYPE_16x16) && !(h->cbp & 15) ? 1 : 4;
383 s->dsp.h264_loop_filter_strength( bS, h->non_zero_count_cache, h->ref_cache, h->mv_cache, 383 s->dsp.h264_loop_filter_strength( bS, h->non_zero_count_cache, h->ref_cache, h->mv_cache,
384 (h->slice_type_nos == FF_B_TYPE), edges, step, mask_edge0, mask_edge1, FIELD_PICTURE); 384 h->list_count==2, edges, step, mask_edge0, mask_edge1, FIELD_PICTURE);
385 } 385 }
386 if( IS_INTRA(s->current_picture.mb_type[mb_xy-1]) ) 386 if( IS_INTRA(s->current_picture.mb_type[mb_xy-1]) )
387 bSv[0][0] = 0x0004000400040004ULL; 387 bSv[0][0] = 0x0004000400040004ULL;
388 if( IS_INTRA(s->current_picture.mb_type[h->top_mb_xy]) ) 388 if( IS_INTRA(s->current_picture.mb_type[h->top_mb_xy]) )
389 bSv[1][0] = FIELD_PICTURE ? 0x0003000300030003ULL : 0x0004000400040004ULL; 389 bSv[1][0] = FIELD_PICTURE ? 0x0003000300030003ULL : 0x0004000400040004ULL;
511 else if( mask_par0 && (edge || (mbn_type & (MB_TYPE_16x16 | (MB_TYPE_8x16 >> dir)))) ) { 511 else if( mask_par0 && (edge || (mbn_type & (MB_TYPE_16x16 | (MB_TYPE_8x16 >> dir)))) ) {
512 int b_idx= 8 + 4 + edge * (dir ? 8:1); 512 int b_idx= 8 + 4 + edge * (dir ? 8:1);
513 int bn_idx= b_idx - (dir ? 8:1); 513 int bn_idx= b_idx - (dir ? 8:1);
514 int v = 0; 514 int v = 0;
515 515
516 for( l = 0; !v && l < 1 + (h->slice_type_nos == FF_B_TYPE); l++ ) { 516 for( l = 0; !v && l < h->list_count; l++ ) {
517 v |= h->ref_cache[l][b_idx] != h->ref_cache[l][bn_idx] | 517 v |= h->ref_cache[l][b_idx] != h->ref_cache[l][bn_idx] |
518 h->mv_cache[l][b_idx][0] - h->mv_cache[l][bn_idx][0] + 3 >= 7U | 518 h->mv_cache[l][b_idx][0] - h->mv_cache[l][bn_idx][0] + 3 >= 7U |
519 FFABS( h->mv_cache[l][b_idx][1] - h->mv_cache[l][bn_idx][1] ) >= mvy_limit; 519 FFABS( h->mv_cache[l][b_idx][1] - h->mv_cache[l][bn_idx][1] ) >= mvy_limit;
520 } 520 }
521 521
522 if(h->slice_type_nos == FF_B_TYPE && v){ 522 if(h->list_count==2 && v){
523 v=0; 523 v=0;
524 for( l = 0; !v && l < 2; l++ ) { 524 for( l = 0; !v && l < 2; l++ ) {
525 int ln= 1-l; 525 int ln= 1-l;
526 v |= h->ref_cache[l][b_idx] != h->ref_cache[ln][bn_idx] | 526 v |= h->ref_cache[l][b_idx] != h->ref_cache[ln][bn_idx] |
527 h->mv_cache[l][b_idx][0] - h->mv_cache[ln][bn_idx][0] + 3 >= 7U | 527 h->mv_cache[l][b_idx][0] - h->mv_cache[ln][bn_idx][0] + 3 >= 7U |
546 bS[i] = 2; 546 bS[i] = 2;
547 } 547 }
548 else if(!mv_done) 548 else if(!mv_done)
549 { 549 {
550 bS[i] = 0; 550 bS[i] = 0;
551 for( l = 0; l < 1 + (h->slice_type_nos == FF_B_TYPE); l++ ) { 551 for( l = 0; l < h->list_count; l++ ) {
552 if( h->ref_cache[l][b_idx] != h->ref_cache[l][bn_idx] | 552 if( h->ref_cache[l][b_idx] != h->ref_cache[l][bn_idx] |
553 h->mv_cache[l][b_idx][0] - h->mv_cache[l][bn_idx][0] + 3 >= 7U | 553 h->mv_cache[l][b_idx][0] - h->mv_cache[l][bn_idx][0] + 3 >= 7U |
554 FFABS( h->mv_cache[l][b_idx][1] - h->mv_cache[l][bn_idx][1] ) >= mvy_limit ) { 554 FFABS( h->mv_cache[l][b_idx][1] - h->mv_cache[l][bn_idx][1] ) >= mvy_limit ) {
555 bS[i] = 1; 555 bS[i] = 1;
556 break; 556 break;
557 } 557 }
558 } 558 }
559 559
560 if(h->slice_type_nos == FF_B_TYPE && bS[i]){ 560 if(h->list_count == 2 && bS[i]){
561 bS[i] = 0; 561 bS[i] = 0;
562 for( l = 0; l < 2; l++ ) { 562 for( l = 0; l < 2; l++ ) {
563 int ln= 1-l; 563 int ln= 1-l;
564 if( h->ref_cache[l][b_idx] != h->ref_cache[ln][bn_idx] | 564 if( h->ref_cache[l][b_idx] != h->ref_cache[ln][bn_idx] |
565 h->mv_cache[l][b_idx][0] - h->mv_cache[ln][bn_idx][0] + 3 >= 7U | 565 h->mv_cache[l][b_idx][0] - h->mv_cache[ln][bn_idx][0] + 3 >= 7U |