diff dsputil.c @ 1984:ef919e9ef73e libavcodec

separate out put_signed_pixels_clamped() into its own function and implement an optimized MMX version of the function
author melanson
date Tue, 27 Apr 2004 03:58:06 +0000
parents 89422281f6f6
children b6f2add2511e
line wrap: on
line diff
--- a/dsputil.c	Mon Apr 26 21:46:01 2004 +0000
+++ b/dsputil.c	Tue Apr 27 03:58:06 2004 +0000
@@ -332,6 +332,27 @@
     }
 }
 
+static void put_signed_pixels_clamped_c(const DCTELEM *block, 
+                                        uint8_t *restrict pixels,
+                                        int line_size)
+{
+    int i, j;
+
+    for (i = 0; i < 8; i++) {
+        for (j = 0; j < 8; j++) {
+            if (*block < -128)
+                *pixels = 0;
+            else if (*block > 127)
+                *pixels = 255;
+            else
+                *pixels = (uint8_t)(*block + 128);
+            block++;
+            pixels++;
+        }
+        pixels += (line_size - 8);
+    }
+}
+
 static void add_pixels_clamped_c(const DCTELEM *block, uint8_t *restrict pixels,
                           int line_size)
 {
@@ -3131,6 +3152,7 @@
     c->get_pixels = get_pixels_c;
     c->diff_pixels = diff_pixels_c;
     c->put_pixels_clamped = put_pixels_clamped_c;
+    c->put_signed_pixels_clamped = put_signed_pixels_clamped_c;
     c->add_pixels_clamped = add_pixels_clamped_c;
     c->gmc1 = gmc1_c;
     c->gmc = gmc_c;