preserve alpha channel when converting rgb32 to bgr32 in plain C
[ffmpeg.git] / libswscale / yuv2rgb.c
index 54bb34a..af7f86f 100644 (file)
@@ -611,7 +611,7 @@ SwsFunc yuv2rgb_get_func_ptr (SwsContext *c)
     }
 #endif
 
-    MSG_WARN("No accelerated colorspace conversion found\n");
+    av_log(c, AV_LOG_WARNING, "No accelerated colorspace conversion found\n");
 
     switch(c->dstFormat){
     case PIX_FMT_BGR32:
@@ -670,6 +670,11 @@ int yuv2rgb_c_init_tables (SwsContext *c, const int inv_table[4], int fullRange,
     if(!fullRange){
        cy= (cy*255) / 219;
        oy= 16<<16;
+    }else{
+        crv= (crv*224) / 255;
+        cbu= (cbu*224) / 255;
+        cgu= (cgu*224) / 255;
+        cgv= (cgv*224) / 255;
     }
        
     cy = (cy *contrast             )>>16;
@@ -828,7 +833,7 @@ int yuv2rgb_c_init_tables (SwsContext *c, const int inv_table[4], int fullRange,
 
     default:
        table_start= NULL;
-       MSG_ERR("%ibpp not supported by yuv2rgb\n", bpp);
+       av_log(c, AV_LOG_ERROR, "%ibpp not supported by yuv2rgb\n", bpp);
        //free mem?
        return -1;
     }