]> git.sesse.net Git - ffmpeg/blobdiff - libswscale/output.c
doxygen: qdm2: Drop documentation for non-existing function parameters
[ffmpeg] / libswscale / output.c
index f1acf9ec92b5743a73a5a53f4e54719c86e009f2..43d5435b98b9d851c9c3c0a56e4e8be1f546bf5c 100644 (file)
@@ -24,6 +24,7 @@
 #include <stdio.h>
 #include <string.h>
 
+#include "libavutil/attributes.h"
 #include "libavutil/avutil.h"
 #include "libavutil/bswap.h"
 #include "libavutil/cpu.h"
@@ -353,7 +354,7 @@ yuv2mono_2_c_template(SwsContext *c, const int16_t *buf[2],
 {
     const int16_t *buf0  = buf[0],  *buf1  = buf[1];
     const uint8_t * const d128 = dither_8x8_220[y & 7];
-    int  yalpha1 = 4095 - yalpha;
+    int  yalpha1 = 4096 - yalpha;
     int i;
 
     for (i = 0; i < dstW; i += 8) {
@@ -466,7 +467,7 @@ yuv2422_X_c_template(SwsContext *c, const int16_t *lumFilter,
 {
     int i;
 
-    for (i = 0; i < (dstW >> 1); i++) {
+    for (i = 0; i < ((dstW + 1) >> 1); i++) {
         int j;
         int Y1 = 1 << 18;
         int Y2 = 1 << 18;
@@ -505,11 +506,11 @@ yuv2422_2_c_template(SwsContext *c, const int16_t *buf[2],
     const int16_t *buf0  = buf[0],  *buf1  = buf[1],
                   *ubuf0 = ubuf[0], *ubuf1 = ubuf[1],
                   *vbuf0 = vbuf[0], *vbuf1 = vbuf[1];
-    int  yalpha1 = 4095 - yalpha;
-    int uvalpha1 = 4095 - uvalpha;
+    int  yalpha1 = 4096 - yalpha;
+    int uvalpha1 = 4096 - uvalpha;
     int i;
 
-    for (i = 0; i < (dstW >> 1); i++) {
+    for (i = 0; i < ((dstW + 1) >> 1); i++) {
         int Y1 = (buf0[i * 2]     * yalpha1  + buf1[i * 2]     * yalpha)  >> 19;
         int Y2 = (buf0[i * 2 + 1] * yalpha1  + buf1[i * 2 + 1] * yalpha)  >> 19;
         int U  = (ubuf0[i]        * uvalpha1 + ubuf1[i]        * uvalpha) >> 19;
@@ -534,7 +535,7 @@ yuv2422_1_c_template(SwsContext *c, const int16_t *buf0,
     int i;
 
     if (uvalpha < 2048) {
-        for (i = 0; i < (dstW >> 1); i++) {
+        for (i = 0; i < ((dstW + 1) >> 1); i++) {
             int Y1 = buf0[i * 2]     >> 7;
             int Y2 = buf0[i * 2 + 1] >> 7;
             int U  = ubuf0[i]        >> 7;
@@ -549,7 +550,7 @@ yuv2422_1_c_template(SwsContext *c, const int16_t *buf0,
         }
     } else {
         const int16_t *ubuf1 = ubuf[1], *vbuf1 = vbuf[1];
-        for (i = 0; i < (dstW >> 1); i++) {
+        for (i = 0; i < ((dstW + 1) >> 1); i++) {
             int Y1 =  buf0[i * 2]          >> 7;
             int Y2 =  buf0[i * 2 + 1]      >> 7;
             int U  = (ubuf0[i] + ubuf1[i]) >> 8;
@@ -589,7 +590,7 @@ yuv2rgb48_X_c_template(SwsContext *c, const int16_t *lumFilter,
 {
     int i;
 
-    for (i = 0; i < (dstW >> 1); i++) {
+    for (i = 0; i < ((dstW + 1) >> 1); i++) {
         int j;
         int Y1 = -0x40000000;
         int Y2 = -0x40000000;
@@ -648,11 +649,11 @@ yuv2rgb48_2_c_template(SwsContext *c, const int32_t *buf[2],
     const int32_t *buf0  = buf[0],  *buf1  = buf[1],
                   *ubuf0 = ubuf[0], *ubuf1 = ubuf[1],
                   *vbuf0 = vbuf[0], *vbuf1 = vbuf[1];
-    int  yalpha1 = 4095 - yalpha;
-    int uvalpha1 = 4095 - uvalpha;
+    int  yalpha1 = 4096 - yalpha;
+    int uvalpha1 = 4096 - uvalpha;
     int i;
 
-    for (i = 0; i < (dstW >> 1); i++) {
+    for (i = 0; i < ((dstW + 1) >> 1); i++) {
         int Y1 = (buf0[i * 2]     * yalpha1  + buf1[i * 2]     * yalpha) >> 14;
         int Y2 = (buf0[i * 2 + 1] * yalpha1  + buf1[i * 2 + 1] * yalpha) >> 14;
         int U  = (ubuf0[i]        * uvalpha1 + ubuf1[i]        * uvalpha + (-128 << 23)) >> 14;
@@ -690,7 +691,7 @@ yuv2rgb48_1_c_template(SwsContext *c, const int32_t *buf0,
     int i;
 
     if (uvalpha < 2048) {
-        for (i = 0; i < (dstW >> 1); i++) {
+        for (i = 0; i < ((dstW + 1) >> 1); i++) {
             int Y1 = (buf0[i * 2]    ) >> 2;
             int Y2 = (buf0[i * 2 + 1]) >> 2;
             int U  = (ubuf0[i] + (-128 << 11)) >> 2;
@@ -718,7 +719,7 @@ yuv2rgb48_1_c_template(SwsContext *c, const int32_t *buf0,
         }
     } else {
         const int32_t *ubuf1 = ubuf[1], *vbuf1 = vbuf[1];
-        for (i = 0; i < (dstW >> 1); i++) {
+        for (i = 0; i < ((dstW + 1) >> 1); i++) {
             int Y1 = (buf0[i * 2]    ) >> 2;
             int Y2 = (buf0[i * 2 + 1]) >> 2;
             int U  = (ubuf0[i] + ubuf1[i] + (-128 << 12)) >> 3;
@@ -932,7 +933,7 @@ yuv2rgb_X_c_template(SwsContext *c, const int16_t *lumFilter,
 {
     int i;
 
-    for (i = 0; i < (dstW >> 1); i++) {
+    for (i = 0; i < ((dstW + 1) >> 1); i++) {
         int j, A1, A2;
         int Y1 = 1 << 18;
         int Y2 = 1 << 18;
@@ -995,25 +996,27 @@ yuv2rgb_2_c_template(SwsContext *c, const int16_t *buf[2],
                   *vbuf0 = vbuf[0], *vbuf1 = vbuf[1],
                   *abuf0 = hasAlpha ? abuf[0] : NULL,
                   *abuf1 = hasAlpha ? abuf[1] : NULL;
-    int  yalpha1 = 4095 - yalpha;
-    int uvalpha1 = 4095 - uvalpha;
+    int  yalpha1 = 4096 - yalpha;
+    int uvalpha1 = 4096 - uvalpha;
     int i;
 
-    for (i = 0; i < (dstW >> 1); i++) {
+    for (i = 0; i < ((dstW + 1) >> 1); i++) {
         int Y1 = (buf0[i * 2]     * yalpha1  + buf1[i * 2]     * yalpha)  >> 19;
         int Y2 = (buf0[i * 2 + 1] * yalpha1  + buf1[i * 2 + 1] * yalpha)  >> 19;
         int U  = (ubuf0[i]        * uvalpha1 + ubuf1[i]        * uvalpha) >> 19;
         int V  = (vbuf0[i]        * uvalpha1 + vbuf1[i]        * uvalpha) >> 19;
         int A1, A2;
-        const void *r =  c->table_rV[V],
-                   *g = (c->table_gU[U] + c->table_gV[V]),
-                   *b =  c->table_bU[U];
+        const void *r, *g, *b;
 
         Y1 = av_clip_uint8(Y1);
         Y2 = av_clip_uint8(Y2);
         U  = av_clip_uint8(U);
         V  = av_clip_uint8(V);
 
+        r =  c->table_rV[V];
+        g = (c->table_gU[U] + c->table_gV[V]);
+        b =  c->table_bU[U];
+
         if (hasAlpha) {
             A1 = (abuf0[i * 2    ] * yalpha1 + abuf1[i * 2    ] * yalpha) >> 19;
             A2 = (abuf0[i * 2 + 1] * yalpha1 + abuf1[i * 2 + 1] * yalpha) >> 19;
@@ -1037,21 +1040,23 @@ yuv2rgb_1_c_template(SwsContext *c, const int16_t *buf0,
     int i;
 
     if (uvalpha < 2048) {
-        for (i = 0; i < (dstW >> 1); i++) {
+        for (i = 0; i < ((dstW + 1) >> 1); i++) {
             int Y1 = buf0[i * 2]     >> 7;
             int Y2 = buf0[i * 2 + 1] >> 7;
             int U  = ubuf0[i]        >> 7;
             int V  = vbuf0[i]        >> 7;
             int A1, A2;
-            const void *r =  c->table_rV[V],
-                       *g = (c->table_gU[U] + c->table_gV[V]),
-                       *b =  c->table_bU[U];
+            const void *r, *g, *b;
 
             Y1 = av_clip_uint8(Y1);
             Y2 = av_clip_uint8(Y2);
             U  = av_clip_uint8(U);
             V  = av_clip_uint8(V);
 
+            r =  c->table_rV[V];
+            g = (c->table_gU[U] + c->table_gV[V]);
+            b =  c->table_bU[U];
+
             if (hasAlpha) {
                 A1 = abuf0[i * 2    ] >> 7;
                 A2 = abuf0[i * 2 + 1] >> 7;
@@ -1064,21 +1069,23 @@ yuv2rgb_1_c_template(SwsContext *c, const int16_t *buf0,
         }
     } else {
         const int16_t *ubuf1 = ubuf[1], *vbuf1 = vbuf[1];
-        for (i = 0; i < (dstW >> 1); i++) {
+        for (i = 0; i < ((dstW + 1) >> 1); i++) {
             int Y1 =  buf0[i * 2]          >> 7;
             int Y2 =  buf0[i * 2 + 1]      >> 7;
             int U  = (ubuf0[i] + ubuf1[i]) >> 8;
             int V  = (vbuf0[i] + vbuf1[i]) >> 8;
             int A1, A2;
-            const void *r =  c->table_rV[V],
-                       *g = (c->table_gU[U] + c->table_gV[V]),
-                       *b =  c->table_bU[U];
+            const void *r, *g, *b;
 
             Y1 = av_clip_uint8(Y1);
             Y2 = av_clip_uint8(Y2);
             U  = av_clip_uint8(U);
             V  = av_clip_uint8(V);
 
+            r =  c->table_rV[V];
+            g = (c->table_gU[U] + c->table_gV[V]);
+            b =  c->table_bU[U];
+
             if (hasAlpha) {
                 A1 = abuf0[i * 2    ] >> 7;
                 A2 = abuf0[i * 2 + 1] >> 7;
@@ -1254,13 +1261,13 @@ YUV2RGBWRAPPERX(yuv2, rgb_full, xrgb32_full, PIX_FMT_ARGB,  0)
 YUV2RGBWRAPPERX(yuv2, rgb_full, bgr24_full,  PIX_FMT_BGR24, 0)
 YUV2RGBWRAPPERX(yuv2, rgb_full, rgb24_full,  PIX_FMT_RGB24, 0)
 
-void ff_sws_init_output_funcs(SwsContext *c,
-                              yuv2planar1_fn *yuv2plane1,
-                              yuv2planarX_fn *yuv2planeX,
-                              yuv2interleavedX_fn *yuv2nv12cX,
-                              yuv2packed1_fn *yuv2packed1,
-                              yuv2packed2_fn *yuv2packed2,
-                              yuv2packedX_fn *yuv2packedX)
+av_cold void ff_sws_init_output_funcs(SwsContext *c,
+                                      yuv2planar1_fn *yuv2plane1,
+                                      yuv2planarX_fn *yuv2planeX,
+                                      yuv2interleavedX_fn *yuv2nv12cX,
+                                      yuv2packed1_fn *yuv2packed1,
+                                      yuv2packed2_fn *yuv2packed2,
+                                      yuv2packedX_fn *yuv2packedX)
 {
     enum PixelFormat dstFormat = c->dstFormat;