]> git.sesse.net Git - ffmpeg/commitdiff
palette to bgr24
authorMichael Niedermayer <michaelni@gmx.at>
Sun, 4 Nov 2001 19:50:29 +0000 (19:50 +0000)
committerMichael Niedermayer <michaelni@gmx.at>
Sun, 4 Nov 2001 19:50:29 +0000 (19:50 +0000)
Originally committed as revision 2698 to svn://svn.mplayerhq.hu/mplayer/trunk/postproc

postproc/rgb2rgb.c
postproc/rgb2rgb.h
postproc/rgb2rgb_template.c

index f83d565dbbbaffa273bc317cd9d9afd7d37fd87c..923837a1343d6b3077f6d5da81f0e7c6418d769e 100644 (file)
@@ -181,6 +181,27 @@ void palette8torgb32(uint8_t *src, uint8_t *dst, int src_size, uint8_t *palette)
                ((uint32_t *)dst)[i] = ((uint32_t *)palette)[ src[i] ];
 }
 
+/**
+ * Pallete is assumed to contain bgr32
+ */
+void palette8torgb24(uint8_t *src, uint8_t *dst, int src_size, uint8_t *palette)
+{
+       int i;
+/*
+       writes 1 byte o much and might cause alignment issues on some architectures?
+       for(i=0; i<src_size; i++)
+               ((uint32_t *)(&dst[i*3])) = ((uint32_t *)palette)[ src[i] ];
+*/
+       for(i=0; i<src_size; i++)
+       {
+               //FIXME slow?
+               dst[0]= palette[ src[i]*4+0 ];
+               dst[1]= palette[ src[i]*4+1 ];
+               dst[2]= palette[ src[i]*4+2 ];
+               dst+= 3;
+       }
+}
+
 void rgb32to16(uint8_t *src, uint8_t *dst, int src_size)
 {
        int i;
@@ -226,4 +247,4 @@ void palette8torgb15(uint8_t *src, uint8_t *dst, int src_size, uint8_t *palette)
        int i;
        for(i=0; i<src_size; i++)
                ((uint16_t *)dst)[i] = ((uint16_t *)palette)[ src[i] ];
-}
\ No newline at end of file
+}
index db6aff5f809bbfe40cd2e5c8e3ab746e71739183..0f7c8141a02b9ab6afdedc7639c4aa5717d0b615 100644 (file)
@@ -16,6 +16,6 @@ void rgb32to15(uint8_t *src, uint8_t *dst, int src_size);
 void palette8torgb32(uint8_t *src, uint8_t *dst, int src_size, uint8_t *palette);
 void palette8torgb16(uint8_t *src, uint8_t *dst, int src_size, uint8_t *palette);
 void palette8torgb15(uint8_t *src, uint8_t *dst, int src_size, uint8_t *palette);
-
+void palette8torgb24(uint8_t *src, uint8_t *dst, int src_size, uint8_t *palette);
 
 #endif
index f83d565dbbbaffa273bc317cd9d9afd7d37fd87c..923837a1343d6b3077f6d5da81f0e7c6418d769e 100644 (file)
@@ -181,6 +181,27 @@ void palette8torgb32(uint8_t *src, uint8_t *dst, int src_size, uint8_t *palette)
                ((uint32_t *)dst)[i] = ((uint32_t *)palette)[ src[i] ];
 }
 
+/**
+ * Pallete is assumed to contain bgr32
+ */
+void palette8torgb24(uint8_t *src, uint8_t *dst, int src_size, uint8_t *palette)
+{
+       int i;
+/*
+       writes 1 byte o much and might cause alignment issues on some architectures?
+       for(i=0; i<src_size; i++)
+               ((uint32_t *)(&dst[i*3])) = ((uint32_t *)palette)[ src[i] ];
+*/
+       for(i=0; i<src_size; i++)
+       {
+               //FIXME slow?
+               dst[0]= palette[ src[i]*4+0 ];
+               dst[1]= palette[ src[i]*4+1 ];
+               dst[2]= palette[ src[i]*4+2 ];
+               dst+= 3;
+       }
+}
+
 void rgb32to16(uint8_t *src, uint8_t *dst, int src_size)
 {
        int i;
@@ -226,4 +247,4 @@ void palette8torgb15(uint8_t *src, uint8_t *dst, int src_size, uint8_t *palette)
        int i;
        for(i=0; i<src_size; i++)
                ((uint16_t *)dst)[i] = ((uint16_t *)palette)[ src[i] ];
-}
\ No newline at end of file
+}