From: Paul B Mahol Date: Mon, 8 Jul 2013 15:17:33 +0000 (+0000) Subject: lavfi/drawutils: fix planar rgb X-Git-Tag: android-x86-4.4-r1~2475 X-Git-Url: http://git.osdn.net/view?a=commitdiff_plain;h=55c94f48ce5a81896fd7f71e2b2d2f2174dd94a8;p=android-x86%2Fexternal-ffmpeg.git lavfi/drawutils: fix planar rgb Signed-off-by: Paul B Mahol --- diff --git a/libavfilter/drawutils.c b/libavfilter/drawutils.c index b2307616e4..1952199dc9 100644 --- a/libavfilter/drawutils.c +++ b/libavfilter/drawutils.c @@ -197,10 +197,15 @@ void ff_draw_color(FFDrawContext *draw, FFDrawColor *color, const uint8_t rgba[4 if (rgba != 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) { + if (draw->nb_planes == 1) { for (i = 0; i < 4; 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) { /* assume YUV */ color->comp[0].u8[0] = RGB_TO_Y_CCIR(rgba[0], rgba[1], rgba[2]); diff --git a/tests/ref/fate/filter-pixfmts-pad b/tests/ref/fate/filter-pixfmts-pad index 8328f896e8..616e2c05ac 100644 --- a/tests/ref/fate/filter-pixfmts-pad +++ b/tests/ref/fate/filter-pixfmts-pad @@ -5,8 +5,8 @@ argb e5fbb7bb282a80897b8f730627f68876 bgr0 c55368036cccbb0af471d6bd82abe02a bgr24 67f9fd70dc6d9896b7122976b33932b4 bgra c8dd017b5a3b55e8b9d0ac1cdcf327bd -gbrap 23e8ef832c4aef52c6183f429ac86b32 -gbrp 74f83deee9866bbdce3f91fa2aeddaaa +gbrap 8551b62534034c8aaebaa7d9fdefdfe9 +gbrp 4f3b389ed3f8a3945560a36f862b452a gray ca280f6888a9b66688b5f8ea68fe454a rgb0 b1977b45634c4db58a183a07feb2acff rgb24 e73de9dc0fdd78f4853c168603cc7aba