X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=libavfilter%2Fdrawutils.c;h=77ab86b7754547de44672c04950d60c067fcc885;hb=06ed3768c88cce44ba157ec81676acf96e50a61a;hp=f19fc5df1d45a415435b74478f29c016a6ebd841;hpb=a0ffd66caaae1bff1abebffb36e135abcc8122e6;p=ffmpeg diff --git a/libavfilter/drawutils.c b/libavfilter/drawutils.c index f19fc5df1d4..77ab86b7754 100644 --- a/libavfilter/drawutils.c +++ b/libavfilter/drawutils.c @@ -64,6 +64,8 @@ int ff_fill_rgba_map(uint8_t *rgba_map, enum AVPixelFormat pix_fmt) case AV_PIX_FMT_GBRP16LE: case AV_PIX_FMT_GBRP16BE: case AV_PIX_FMT_GBRAP: + case AV_PIX_FMT_GBRAP10LE: + case AV_PIX_FMT_GBRAP10BE: case AV_PIX_FMT_GBRAP12LE: case AV_PIX_FMT_GBRAP12BE: case AV_PIX_FMT_GBRAP16LE: @@ -260,14 +262,16 @@ void ff_draw_color(FFDrawContext *draw, FFDrawColor *color, const uint8_t rgba[4 EXPAND(2); EXPAND(1); EXPAND(0); - } else if (draw->format == AV_PIX_FMT_GRAY8 || draw->format == AV_PIX_FMT_GRAY8A) { - color->comp[0].u8[0] = RGB_TO_Y_CCIR(rgba[0], rgba[1], rgba[2]); - color->comp[1].u8[0] = rgba[3]; - } else if (draw->format == AV_PIX_FMT_GRAY16LE || draw->format == AV_PIX_FMT_YA16LE) { + } else if (draw->format == AV_PIX_FMT_GRAY8 || draw->format == AV_PIX_FMT_GRAY8A || + draw->format == AV_PIX_FMT_GRAY16LE || draw->format == AV_PIX_FMT_YA16LE || + draw->format == AV_PIX_FMT_GRAY9LE || + draw->format == AV_PIX_FMT_GRAY10LE || + draw->format == AV_PIX_FMT_GRAY12LE) { + const AVPixFmtDescriptor *desc = draw->desc; color->comp[0].u8[0] = RGB_TO_Y_CCIR(rgba[0], rgba[1], rgba[2]); - color->comp[0].u16[0] = color->comp[0].u8[0] << 8; + EXPAND(0); color->comp[1].u8[0] = rgba[3]; - color->comp[1].u16[0] = color->comp[1].u8[0] << 8; + EXPAND(1); } else { av_log(NULL, AV_LOG_WARNING, "Color conversion not implemented for %s\n", draw->desc->name);