comparison h264_loopfilter.c @ 10961:34a65026fa06 libavcodec

Move array specifiers outside DECLARE_ALIGNED() invocations
author mru
date Fri, 22 Jan 2010 03:25:11 +0000
parents 10759fd39860
children 2e8fbfc278d5
comparison
equal deleted inserted replaced
10960:10759fd39860 10961:34a65026fa06
370 filter_mb_edgech( &img_cb[2*2*uvlinesize], uvlinesize, bS3, qpc, h); 370 filter_mb_edgech( &img_cb[2*2*uvlinesize], uvlinesize, bS3, qpc, h);
371 filter_mb_edgech( &img_cr[2*0*uvlinesize], uvlinesize, bSH, qpc1, h); 371 filter_mb_edgech( &img_cr[2*0*uvlinesize], uvlinesize, bSH, qpc1, h);
372 filter_mb_edgech( &img_cr[2*2*uvlinesize], uvlinesize, bS3, qpc, h); 372 filter_mb_edgech( &img_cr[2*2*uvlinesize], uvlinesize, bS3, qpc, h);
373 return; 373 return;
374 } else { 374 } else {
375 DECLARE_ALIGNED_8(int16_t, bS[2][4][4]); 375 DECLARE_ALIGNED_8(int16_t, bS)[2][4][4];
376 uint64_t (*bSv)[4] = (uint64_t(*)[4])bS; 376 uint64_t (*bSv)[4] = (uint64_t(*)[4])bS;
377 int edges; 377 int edges;
378 if( IS_8x8DCT(mb_type) && (h->cbp&7) == 7 ) { 378 if( IS_8x8DCT(mb_type) && (h->cbp&7) == 7 ) {
379 edges = 4; 379 edges = 4;
380 bSv[0][0] = bSv[0][2] = bSv[1][0] = bSv[1][2] = 0x0002000200020002ULL; 380 bSv[0][0] = bSv[0][2] = bSv[1][0] = bSv[1][2] = 0x0002000200020002ULL;
455 unsigned int tmp_uvlinesize = 2 * uvlinesize; 455 unsigned int tmp_uvlinesize = 2 * uvlinesize;
456 int mbn_xy = mb_xy - 2 * s->mb_stride; 456 int mbn_xy = mb_xy - 2 * s->mb_stride;
457 int j; 457 int j;
458 458
459 for(j=0; j<2; j++, mbn_xy += s->mb_stride){ 459 for(j=0; j<2; j++, mbn_xy += s->mb_stride){
460 DECLARE_ALIGNED_8(int16_t, bS[4]); 460 DECLARE_ALIGNED_8(int16_t, bS)[4];
461 int qp; 461 int qp;
462 if( IS_INTRA(mb_type|s->current_picture.mb_type[mbn_xy]) ) { 462 if( IS_INTRA(mb_type|s->current_picture.mb_type[mbn_xy]) ) {
463 *(uint64_t*)bS= 0x0003000300030003ULL; 463 *(uint64_t*)bS= 0x0003000300030003ULL;
464 } else { 464 } else {
465 const uint8_t *mbn_nnz = h->non_zero_count[mbn_xy] + 4+3*8; 465 const uint8_t *mbn_nnz = h->non_zero_count[mbn_xy] + 4+3*8;
486 /* Calculate bS */ 486 /* Calculate bS */
487 for( edge = start; edge < edges; edge++ ) { 487 for( edge = start; edge < edges; edge++ ) {
488 /* mbn_xy: neighbor macroblock */ 488 /* mbn_xy: neighbor macroblock */
489 const int mbn_xy = edge > 0 ? mb_xy : mbm_xy; 489 const int mbn_xy = edge > 0 ? mb_xy : mbm_xy;
490 const int mbn_type = s->current_picture.mb_type[mbn_xy]; 490 const int mbn_type = s->current_picture.mb_type[mbn_xy];
491 DECLARE_ALIGNED_8(int16_t, bS[4]); 491 DECLARE_ALIGNED_8(int16_t, bS)[4];
492 int qp; 492 int qp;
493 493
494 if( (edge&1) && IS_8x8DCT(mb_type) ) 494 if( (edge&1) && IS_8x8DCT(mb_type) )
495 continue; 495 continue;
496 496
630 /* First vertical edge is different in MBAFF frames 630 /* First vertical edge is different in MBAFF frames
631 * There are 8 different bS to compute and 2 different Qp 631 * There are 8 different bS to compute and 2 different Qp
632 */ 632 */
633 const int pair_xy = mb_x + (mb_y&~1)*s->mb_stride; 633 const int pair_xy = mb_x + (mb_y&~1)*s->mb_stride;
634 const int left_mb_xy[2] = { pair_xy-1, pair_xy-1+s->mb_stride }; 634 const int left_mb_xy[2] = { pair_xy-1, pair_xy-1+s->mb_stride };
635 DECLARE_ALIGNED_8(int16_t, bS[8]); 635 DECLARE_ALIGNED_8(int16_t, bS)[8];
636 int qp[2]; 636 int qp[2];
637 int bqp[2]; 637 int bqp[2];
638 int rqp[2]; 638 int rqp[2];
639 int mb_qp, mbn0_qp, mbn1_qp; 639 int mb_qp, mbn0_qp, mbn1_qp;
640 int i; 640 int i;