Browse code

avfilter/xbr: localize some filtering variables

Clément Bœsch authored on 2014/11/12 05:28:43
Showing 1 changed files
... ...
@@ -112,16 +112,19 @@ static uint32_t pixel_diff(uint32_t x, uint32_t y, const uint32_t *r2y)
112 112
 #define eq(A, B)\
113 113
     (df(A, B) < 155)\
114 114
 
115
-#define FILTRO(PE, PI, PH, PF, PG, PC, PD, PB, PA, G5, C4, G0, D0, C1, B1, F4, I4, H5, I5, A0, A1, N0, N1, N2, N3) \
116
-     ex   = (PE!=PH && PE!=PF); \
115
+#define FILTRO(PE, PI, PH, PF, PG, PC, PD, PB, PA, G5, C4, G0, D0, C1, B1, F4, I4, H5, I5, A0, A1, N0, N1, N2, N3) do { \
116
+     unsigned ex = (PE!=PH && PE!=PF); \
117 117
      if ( ex )\
118 118
      {\
119
-          e = (df(PE,PC)+df(PE,PG)+df(PI,H5)+df(PI,F4))+(df(PH,PF)<<2); \
120
-          i = (df(PH,PD)+df(PH,I5)+df(PF,I4)+df(PF,PB))+(df(PE,PI)<<2); \
119
+          unsigned e = (df(PE,PC)+df(PE,PG)+df(PI,H5)+df(PI,F4))+(df(PH,PF)<<2); \
120
+          unsigned i = (df(PH,PD)+df(PH,I5)+df(PF,I4)+df(PF,PB))+(df(PE,PI)<<2); \
121 121
           if ((e<i)  && ( !eq(PF,PB) && !eq(PH,PD) || eq(PE,PI) && (!eq(PF,I4) && !eq(PH,I5)) || eq(PE,PG) || eq(PE,PC)) )\
122 122
           {\
123
-              ke=df(PF,PG); ki=df(PH,PC); \
124
-              ex2 = (PE!=PC && PB!=PC); ex3 = (PE!=PG && PD!=PG); px = (df(PE,PF) <= df(PE,PH)) ? PF : PH; \
123
+              unsigned ke = df(PF,PG); \
124
+              unsigned ki = df(PH,PC); \
125
+              unsigned ex2 = (PE!=PC && PB!=PC); \
126
+              unsigned ex3 = (PE!=PG && PD!=PG); \
127
+              unsigned px = (df(PE,PF) <= df(PE,PH)) ? PF : PH; \
125 128
               if ( ((ke<<1)<=ki) && ex3 && (ke>=(ki<<1)) && ex2 ) \
126 129
               {\
127 130
                      LEFT_UP_2_2X(N3, N2, N1, px)\
... ...
@@ -144,14 +147,11 @@ static uint32_t pixel_diff(uint32_t x, uint32_t y, const uint32_t *r2y)
144 144
                ALPHA_BLEND_128_W( E[N3], ((df(PE,PF) <= df(PE,PH)) ? PF : PH)); \
145 145
           }\
146 146
      }\
147
+} while (0)
147 148
 
148 149
 static void xbr2x(AVFrame * input, AVFrame * output, const uint32_t * r2y)
149 150
 {
150
-    unsigned int e, i,px;
151
-    unsigned int ex, ex2, ex3;
152
-    unsigned int ke, ki;
153 151
     int x,y;
154
-
155 152
     int next_line = output->linesize[0]>>2;
156 153
 
157 154
     for (y = 0; y < input->height; y++) {
... ...
@@ -297,16 +297,19 @@ static void xbr2x(AVFrame * input, AVFrame * output, const uint32_t * r2y)
297 297
     ALPHA_BLEND_32_W(E[N5], PIXEL); \
298 298
     ALPHA_BLEND_32_W(E[N7], PIXEL); \
299 299
 
300
-#define FILTRO(PE, PI, PH, PF, PG, PC, PD, PB, PA, G5, C4, G0, D0, C1, B1, F4, I4, H5, I5, A0, A1, N0, N1, N2, N3, N4, N5, N6, N7, N8) \
301
-     ex   = (PE!=PH && PE!=PF); \
300
+#define FILTRO(PE, PI, PH, PF, PG, PC, PD, PB, PA, G5, C4, G0, D0, C1, B1, F4, I4, H5, I5, A0, A1, N0, N1, N2, N3, N4, N5, N6, N7, N8) do { \
301
+     unsigned ex = (PE!=PH && PE!=PF); \
302 302
      if ( ex )\
303 303
      {\
304
-          e = (df(PE,PC)+df(PE,PG)+df(PI,H5)+df(PI,F4))+(df(PH,PF)<<2); \
305
-          i = (df(PH,PD)+df(PH,I5)+df(PF,I4)+df(PF,PB))+(df(PE,PI)<<2); \
304
+          unsigned e = (df(PE,PC)+df(PE,PG)+df(PI,H5)+df(PI,F4))+(df(PH,PF)<<2); \
305
+          unsigned i = (df(PH,PD)+df(PH,I5)+df(PF,I4)+df(PF,PB))+(df(PE,PI)<<2); \
306 306
           if ((e<i)  && ( !eq(PF,PB) && !eq(PF,PC) || !eq(PH,PD) && !eq(PH,PG) || eq(PE,PI) && (!eq(PF,F4) && !eq(PF,I4) || !eq(PH,H5) && !eq(PH,I5)) || eq(PE,PG) || eq(PE,PC)) )\
307 307
           {\
308
-              ke=df(PF,PG); ki=df(PH,PC); \
309
-              ex2 = (PE!=PC && PB!=PC); ex3 = (PE!=PG && PD!=PG); px = (df(PE,PF) <= df(PE,PH)) ? PF : PH; \
308
+              unsigned ke = df(PF,PG); \
309
+              unsigned ki = df(PH,PC); \
310
+              unsigned ex2 = (PE!=PC && PB!=PC); \
311
+              unsigned ex3 = (PE!=PG && PD!=PG); \
312
+              unsigned px = (df(PE,PF) <= df(PE,PH)) ? PF : PH; \
310 313
               if ( ((ke<<1)<=ki) && ex3 && (ke>=(ki<<1)) && ex2 ) \
311 314
               {\
312 315
                      LEFT_UP_2_3X(N7, N5, N6, N2, N8, px)\
... ...
@@ -329,16 +332,12 @@ static void xbr2x(AVFrame * input, AVFrame * output, const uint32_t * r2y)
329 329
                ALPHA_BLEND_128_W( E[N8], ((df(PE,PF) <= df(PE,PH)) ? PF : PH)); \
330 330
           }\
331 331
      }\
332
+} while (0)
332 333
 
333 334
 static void xbr3x(AVFrame *input, AVFrame *output, const uint32_t *r2y)
334 335
 {
335 336
     const int nl = output->linesize[0]>>2;
336 337
     const int nl1 = nl + nl;
337
-
338
-    unsigned int e, i,px;
339
-    unsigned int ex, ex2, ex3;
340
-    unsigned int ke, ki;
341
-
342 338
     uint32_t pprev;
343 339
     uint32_t pprev2;
344 340
 
... ...
@@ -490,16 +489,19 @@ static void xbr3x(AVFrame *input, AVFrame *output, const uint32_t *r2y)
490 490
     ALPHA_BLEND_128_W(E[N14], PIXEL); \
491 491
     E[N15] = PIXEL; \
492 492
 
493
-#define FILTRO(PE, PI, PH, PF, PG, PC, PD, PB, PA, G5, C4, G0, D0, C1, B1, F4, I4, H5, I5, A0, A1, N15, N14, N11, N3, N7, N10, N13, N12, N9, N6, N2, N1, N5, N8, N4, N0) \
494
-     ex   = (PE!=PH && PE!=PF); \
493
+#define FILTRO(PE, PI, PH, PF, PG, PC, PD, PB, PA, G5, C4, G0, D0, C1, B1, F4, I4, H5, I5, A0, A1, N15, N14, N11, N3, N7, N10, N13, N12, N9, N6, N2, N1, N5, N8, N4, N0) do { \
494
+     unsigned ex   = (PE!=PH && PE!=PF); \
495 495
      if ( ex )\
496 496
      {\
497
-          e = (df(PE,PC)+df(PE,PG)+df(PI,H5)+df(PI,F4))+(df(PH,PF)<<2); \
498
-          i = (df(PH,PD)+df(PH,I5)+df(PF,I4)+df(PF,PB))+(df(PE,PI)<<2); \
497
+          unsigned e = (df(PE,PC)+df(PE,PG)+df(PI,H5)+df(PI,F4))+(df(PH,PF)<<2); \
498
+          unsigned i = (df(PH,PD)+df(PH,I5)+df(PF,I4)+df(PF,PB))+(df(PE,PI)<<2); \
499 499
           if ((e<i)  && ( !eq(PF,PB) && !eq(PH,PD) || eq(PE,PI) && (!eq(PF,I4) && !eq(PH,I5)) || eq(PE,PG) || eq(PE,PC)) )\
500 500
           {\
501
-              ke=df(PF,PG); ki=df(PH,PC); \
502
-              ex2 = (PE!=PC && PB!=PC); ex3 = (PE!=PG && PD!=PG); px = (df(PE,PF) <= df(PE,PH)) ? PF : PH; \
501
+              unsigned ke = df(PF,PG); \
502
+              unsigned ki = df(PH,PC); \
503
+              unsigned ex2 = (PE!=PC && PB!=PC); \
504
+              unsigned ex3 = (PE!=PG && PD!=PG); \
505
+              unsigned px = (df(PE,PF) <= df(PE,PH)) ? PF : PH; \
503 506
               if ( ((ke<<1)<=ki) && ex3 && (ke>=(ki<<1)) && ex2 ) \
504 507
               {\
505 508
                      LEFT_UP_2(N15, N14, N11, N13, N12, N10, N7, N3, px)\
... ...
@@ -522,6 +524,7 @@ static void xbr3x(AVFrame *input, AVFrame *output, const uint32_t *r2y)
522 522
                ALPHA_BLEND_128_W( E[N15], ((df(PE,PF) <= df(PE,PH)) ? PF : PH)); \
523 523
           }\
524 524
      }\
525
+} while (0)
525 526
 
526 527
 static void xbr4x(AVFrame *input, AVFrame *output, const uint32_t *r2y)
527 528
 {
... ...
@@ -529,11 +532,6 @@ static void xbr4x(AVFrame *input, AVFrame *output, const uint32_t *r2y)
529 529
     const int nl = output->linesize[0]>>2;
530 530
     const int nl1 = nl + nl;
531 531
     const int nl2 = nl1 + nl;
532
-
533
-    unsigned int e, i, px;
534
-    unsigned int ex, ex2, ex3;
535
-    unsigned int ke, ki;
536
-
537 532
     uint32_t pprev;
538 533
     uint32_t pprev2;
539 534