comparison imgconvert.c @ 4208:45e0102824fb libavcodec

Remove alpha channel from RGB555
author alex
date Thu, 16 Nov 2006 20:46:36 +0000
parents bc9de4875ebd
children 0924cc1db086
comparison
equal deleted inserted replaced
4207:bc9de4875ebd 4208:45e0102824fb
183 .depth = 5, 183 .depth = 5,
184 .x_chroma_shift = 0, .y_chroma_shift = 0, 184 .x_chroma_shift = 0, .y_chroma_shift = 0,
185 }, 185 },
186 [PIX_FMT_RGB555] = { 186 [PIX_FMT_RGB555] = {
187 .name = "rgb555", 187 .name = "rgb555",
188 .nb_channels = 4, .is_alpha = 1, 188 .nb_channels = 3,
189 .color_type = FF_COLOR_RGB, 189 .color_type = FF_COLOR_RGB,
190 .pixel_type = FF_PIXEL_PACKED, 190 .pixel_type = FF_PIXEL_PACKED,
191 .depth = 5, 191 .depth = 5,
192 .x_chroma_shift = 0, .y_chroma_shift = 0, 192 .x_chroma_shift = 0, .y_chroma_shift = 0,
193 }, 193 },
1627 r = bitcopy_n(v >> (10 - 3), 3);\ 1627 r = bitcopy_n(v >> (10 - 3), 3);\
1628 g = bitcopy_n(v >> (5 - 3), 3);\ 1628 g = bitcopy_n(v >> (5 - 3), 3);\
1629 b = bitcopy_n(v << 3, 3);\ 1629 b = bitcopy_n(v << 3, 3);\
1630 } 1630 }
1631 1631
1632 #define RGBA_IN(r, g, b, a, s)\ 1632
1633 #define RGB_OUT(d, r, g, b)\
1633 {\ 1634 {\
1634 unsigned int v = ((const uint16_t *)(s))[0];\ 1635 ((uint16_t *)(d))[0] = ((r >> 3) << 10) | ((g >> 3) << 5) | (b >> 3);\
1635 r = bitcopy_n(v >> (10 - 3), 3);\
1636 g = bitcopy_n(v >> (5 - 3), 3);\
1637 b = bitcopy_n(v << 3, 3);\
1638 a = (-(v >> 15)) & 0xff;\
1639 }
1640
1641 #define RGBA_OUT(d, r, g, b, a)\
1642 {\
1643 ((uint16_t *)(d))[0] = ((r >> 3) << 10) | ((g >> 3) << 5) | (b >> 3) | \
1644 ((a << 8) & 0x8000);\
1645 } 1636 }
1646 1637
1647 #define BPP 2 1638 #define BPP 2
1648 1639
1649 #include "imgconvert_template.h" 1640 #include "imgconvert_template.h"
2594 return 0; 2585 return 0;
2595 switch(pix_fmt) { 2586 switch(pix_fmt) {
2596 case PIX_FMT_RGBA32: 2587 case PIX_FMT_RGBA32:
2597 ret = get_alpha_info_rgba32(src, width, height); 2588 ret = get_alpha_info_rgba32(src, width, height);
2598 break; 2589 break;
2599 case PIX_FMT_RGB555:
2600 ret = get_alpha_info_rgb555(src, width, height);
2601 break;
2602 case PIX_FMT_PAL8: 2590 case PIX_FMT_PAL8:
2603 ret = get_alpha_info_pal8(src, width, height); 2591 ret = get_alpha_info_pal8(src, width, height);
2604 break; 2592 break;
2605 default: 2593 default:
2606 /* we do not know, so everything is indicated */ 2594 /* we do not know, so everything is indicated */