[SCM] libav/experimental: Fix rgb15/16 vs. bgr part1.

siretart at users.alioth.debian.org siretart at users.alioth.debian.org
Sun Jun 30 16:29:25 UTC 2013


The following commit has been merged in the experimental branch:
commit 688b5e802059897b79ff5e57d69ae5156385206c
Author: Michael Niedermayer <michaelni at gmx.at>
Date:   Thu Sep 4 18:14:29 2008 +0000

    Fix rgb15/16 vs. bgr part1.
    
    Originally committed as revision 27516 to svn://svn.mplayerhq.hu/mplayer/trunk/libswscale

diff --git a/libswscale/yuv2rgb.c b/libswscale/yuv2rgb.c
index 83d65c5..c177cba 100644
--- a/libswscale/yuv2rgb.c
+++ b/libswscale/yuv2rgb.c
@@ -600,16 +600,16 @@ SwsFunc yuv2rgb_get_func_ptr (SwsContext *c)
         switch(c->dstFormat){
         case PIX_FMT_RGB32:  return yuv420_rgb32_MMX2;
         case PIX_FMT_BGR24:  return yuv420_rgb24_MMX2;
-        case PIX_FMT_BGR565: return yuv420_rgb16_MMX2;
-        case PIX_FMT_BGR555: return yuv420_rgb15_MMX2;
+        case PIX_FMT_RGB565: return yuv420_rgb16_MMX2;
+        case PIX_FMT_RGB555: return yuv420_rgb15_MMX2;
         }
     }
     if (c->flags & SWS_CPU_CAPS_MMX){
         switch(c->dstFormat){
         case PIX_FMT_RGB32:  return yuv420_rgb32_MMX;
         case PIX_FMT_BGR24:  return yuv420_rgb24_MMX;
-        case PIX_FMT_BGR565: return yuv420_rgb16_MMX;
-        case PIX_FMT_BGR555: return yuv420_rgb15_MMX;
+        case PIX_FMT_RGB565: return yuv420_rgb16_MMX;
+        case PIX_FMT_RGB555: return yuv420_rgb15_MMX;
         }
     }
 #endif
@@ -675,7 +675,14 @@ static int div_round (int dividend, int divisor)
 
 int yuv2rgb_c_init_tables (SwsContext *c, const int inv_table[4], int fullRange, int brightness, int contrast, int saturation)
 {
-    const int isRgb = isBGR(c->dstFormat);
+    const int isRgb =      c->dstFormat==PIX_FMT_RGB32
+                        || c->dstFormat==PIX_FMT_BGR24
+                        || c->dstFormat==PIX_FMT_RGB565
+                        || c->dstFormat==PIX_FMT_RGB555
+                        || c->dstFormat==PIX_FMT_RGB8
+                        || c->dstFormat==PIX_FMT_RGB4
+                        || c->dstFormat==PIX_FMT_RGB4_BYTE
+                        || c->dstFormat==PIX_FMT_MONOBLACK;
     const int bpp = fmt_depth(c->dstFormat);
     int i;
     uint8_t table_Y[1024];

-- 
Libav/FFmpeg packaging



More information about the pkg-multimedia-commits mailing list