aboutsummaryrefslogtreecommitdiff
path: root/libswscale/rgb2rgb.c
diff options
context:
space:
mode:
Diffstat (limited to 'libswscale/rgb2rgb.c')
-rw-r--r--libswscale/rgb2rgb.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/libswscale/rgb2rgb.c b/libswscale/rgb2rgb.c
index eb7ca7ba1a..31ebc20a68 100644
--- a/libswscale/rgb2rgb.c
+++ b/libswscale/rgb2rgb.c
@@ -284,14 +284,14 @@ void rgb15tobgr15(const uint8_t *src, uint8_t *dst, int src_size)
void rgb12tobgr12(const uint8_t *src, uint8_t *dst, int src_size)
{
+ uint16_t *d = (uint16_t*)dst;
+ uint16_t *s = (uint16_t*)src;
int i;
int num_pixels = src_size >> 1;
for (i = 0; i < num_pixels; i++) {
- unsigned br;
- unsigned rgb = ((const uint16_t *)src)[i];
- br = rgb & 0x0F0F;
- ((uint16_t *)dst)[i] = (br >> 8) | (rgb & 0x00F0) | (br << 8);
+ unsigned rgb = s[i];
+ d[i] = (rgb << 8 | rgb & 0xF0 | rgb >> 8) & 0xFFF;
}
}