lavfi/drawutils: fix planar rgb

Signed-off-by: Paul B Mahol <onemda@gmail.com>
This commit is contained in:
Paul B Mahol 2013-07-08 15:17:33 +00:00
parent d2dd1e075c
commit 55c94f48ce
2 changed files with 8 additions and 3 deletions

View File

@ -197,10 +197,15 @@ void ff_draw_color(FFDrawContext *draw, FFDrawColor *color, const uint8_t rgba[4
if (rgba != color->rgba) if (rgba != color->rgba)
memcpy(color->rgba, rgba, sizeof(color->rgba)); memcpy(color->rgba, rgba, sizeof(color->rgba));
if ((draw->desc->flags & AV_PIX_FMT_FLAG_RGB) && draw->nb_planes == 1 && if ((draw->desc->flags & AV_PIX_FMT_FLAG_RGB) &&
ff_fill_rgba_map(rgba_map, draw->format) >= 0) { ff_fill_rgba_map(rgba_map, draw->format) >= 0) {
if (draw->nb_planes == 1) {
for (i = 0; i < 4; i++) for (i = 0; i < 4; i++)
color->comp[0].u8[rgba_map[i]] = rgba[i]; color->comp[0].u8[rgba_map[i]] = rgba[i];
} else {
for (i = 0; i < 4; i++)
color->comp[rgba_map[i]].u8[0] = rgba[i];
}
} else if (draw->nb_planes == 3 || draw->nb_planes == 4) { } else if (draw->nb_planes == 3 || draw->nb_planes == 4) {
/* assume YUV */ /* assume YUV */
color->comp[0].u8[0] = RGB_TO_Y_CCIR(rgba[0], rgba[1], rgba[2]); color->comp[0].u8[0] = RGB_TO_Y_CCIR(rgba[0], rgba[1], rgba[2]);

View File

@ -5,8 +5,8 @@ argb e5fbb7bb282a80897b8f730627f68876
bgr0 c55368036cccbb0af471d6bd82abe02a bgr0 c55368036cccbb0af471d6bd82abe02a
bgr24 67f9fd70dc6d9896b7122976b33932b4 bgr24 67f9fd70dc6d9896b7122976b33932b4
bgra c8dd017b5a3b55e8b9d0ac1cdcf327bd bgra c8dd017b5a3b55e8b9d0ac1cdcf327bd
gbrap 23e8ef832c4aef52c6183f429ac86b32 gbrap 8551b62534034c8aaebaa7d9fdefdfe9
gbrp 74f83deee9866bbdce3f91fa2aeddaaa gbrp 4f3b389ed3f8a3945560a36f862b452a
gray ca280f6888a9b66688b5f8ea68fe454a gray ca280f6888a9b66688b5f8ea68fe454a
rgb0 b1977b45634c4db58a183a07feb2acff rgb0 b1977b45634c4db58a183a07feb2acff
rgb24 e73de9dc0fdd78f4853c168603cc7aba rgb24 e73de9dc0fdd78f4853c168603cc7aba