comparison libswscale/yuv2rgb.c @ 27484:c550b2157eaa

Fix rgb15/16 vs. bgr part1.
author michael
date Thu, 04 Sep 2008 18:14:29 +0000
parents 65b8334df960
children 651ebfa4b7db
comparison
equal deleted inserted replaced
27483:2c27916c40d2 27484:c550b2157eaa
598 #if defined(HAVE_MMX2) || defined(HAVE_MMX) 598 #if defined(HAVE_MMX2) || defined(HAVE_MMX)
599 if (c->flags & SWS_CPU_CAPS_MMX2){ 599 if (c->flags & SWS_CPU_CAPS_MMX2){
600 switch(c->dstFormat){ 600 switch(c->dstFormat){
601 case PIX_FMT_RGB32: return yuv420_rgb32_MMX2; 601 case PIX_FMT_RGB32: return yuv420_rgb32_MMX2;
602 case PIX_FMT_BGR24: return yuv420_rgb24_MMX2; 602 case PIX_FMT_BGR24: return yuv420_rgb24_MMX2;
603 case PIX_FMT_BGR565: return yuv420_rgb16_MMX2; 603 case PIX_FMT_RGB565: return yuv420_rgb16_MMX2;
604 case PIX_FMT_BGR555: return yuv420_rgb15_MMX2; 604 case PIX_FMT_RGB555: return yuv420_rgb15_MMX2;
605 } 605 }
606 } 606 }
607 if (c->flags & SWS_CPU_CAPS_MMX){ 607 if (c->flags & SWS_CPU_CAPS_MMX){
608 switch(c->dstFormat){ 608 switch(c->dstFormat){
609 case PIX_FMT_RGB32: return yuv420_rgb32_MMX; 609 case PIX_FMT_RGB32: return yuv420_rgb32_MMX;
610 case PIX_FMT_BGR24: return yuv420_rgb24_MMX; 610 case PIX_FMT_BGR24: return yuv420_rgb24_MMX;
611 case PIX_FMT_BGR565: return yuv420_rgb16_MMX; 611 case PIX_FMT_RGB565: return yuv420_rgb16_MMX;
612 case PIX_FMT_BGR555: return yuv420_rgb15_MMX; 612 case PIX_FMT_RGB555: return yuv420_rgb15_MMX;
613 } 613 }
614 } 614 }
615 #endif 615 #endif
616 #ifdef HAVE_VIS 616 #ifdef HAVE_VIS
617 { 617 {
673 return -((-dividend + (divisor>>1)) / divisor); 673 return -((-dividend + (divisor>>1)) / divisor);
674 } 674 }
675 675
676 int yuv2rgb_c_init_tables (SwsContext *c, const int inv_table[4], int fullRange, int brightness, int contrast, int saturation) 676 int yuv2rgb_c_init_tables (SwsContext *c, const int inv_table[4], int fullRange, int brightness, int contrast, int saturation)
677 { 677 {
678 const int isRgb = isBGR(c->dstFormat); 678 const int isRgb = c->dstFormat==PIX_FMT_RGB32
679 || c->dstFormat==PIX_FMT_BGR24
680 || c->dstFormat==PIX_FMT_RGB565
681 || c->dstFormat==PIX_FMT_RGB555
682 || c->dstFormat==PIX_FMT_RGB8
683 || c->dstFormat==PIX_FMT_RGB4
684 || c->dstFormat==PIX_FMT_RGB4_BYTE
685 || c->dstFormat==PIX_FMT_MONOBLACK;
679 const int bpp = fmt_depth(c->dstFormat); 686 const int bpp = fmt_depth(c->dstFormat);
680 int i; 687 int i;
681 uint8_t table_Y[1024]; 688 uint8_t table_Y[1024];
682 uint32_t *table_32 = 0; 689 uint32_t *table_32 = 0;
683 uint16_t *table_16 = 0; 690 uint16_t *table_16 = 0;