avfilter/drawutils: add gray9/10/12 support

This commit is contained in:
Paul B Mahol 2017-08-07 18:39:29 +02:00
parent 181c9abd47
commit 1bef0088dc
1 changed files with 8 additions and 6 deletions

View File

@ -262,14 +262,16 @@ void ff_draw_color(FFDrawContext *draw, FFDrawColor *color, const uint8_t rgba[4
EXPAND(2); EXPAND(2);
EXPAND(1); EXPAND(1);
EXPAND(0); EXPAND(0);
} else if (draw->format == AV_PIX_FMT_GRAY8 || draw->format == AV_PIX_FMT_GRAY8A) { } 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].u8[0] = RGB_TO_Y_CCIR(rgba[0], rgba[1], rgba[2]);
EXPAND(0);
color->comp[1].u8[0] = rgba[3]; color->comp[1].u8[0] = rgba[3];
} else if (draw->format == AV_PIX_FMT_GRAY16LE || draw->format == AV_PIX_FMT_YA16LE) { EXPAND(1);
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;
color->comp[1].u8[0] = rgba[3];
color->comp[1].u16[0] = color->comp[1].u8[0] << 8;
} else { } else {
av_log(NULL, AV_LOG_WARNING, av_log(NULL, AV_LOG_WARNING,
"Color conversion not implemented for %s\n", draw->desc->name); "Color conversion not implemented for %s\n", draw->desc->name);