Mercurial > mplayer.hg
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; |