Mercurial > libavcodec.hg
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;