Mercurial > libavcodec.hg
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 */ |