Browse code

avfilter/drawutils: add gray9/10/12 support

Paul B Mahol authored on 2017/08/08 01:39:29
Showing 1 changed files
... ...
@@ -262,14 +262,16 @@ void ff_draw_color(FFDrawContext *draw, FFDrawColor *color, const uint8_t rgba[4
262 262
         EXPAND(2);
263 263
         EXPAND(1);
264 264
         EXPAND(0);
265
-    } else if (draw->format == AV_PIX_FMT_GRAY8 || draw->format == AV_PIX_FMT_GRAY8A) {
266
-        color->comp[0].u8[0] = RGB_TO_Y_CCIR(rgba[0], rgba[1], rgba[2]);
267
-        color->comp[1].u8[0] = rgba[3];
268
-    } else if (draw->format == AV_PIX_FMT_GRAY16LE || draw->format == AV_PIX_FMT_YA16LE) {
265
+    } else if (draw->format == AV_PIX_FMT_GRAY8 || draw->format == AV_PIX_FMT_GRAY8A ||
266
+               draw->format == AV_PIX_FMT_GRAY16LE || draw->format == AV_PIX_FMT_YA16LE ||
267
+               draw->format == AV_PIX_FMT_GRAY9LE  ||
268
+               draw->format == AV_PIX_FMT_GRAY10LE ||
269
+               draw->format == AV_PIX_FMT_GRAY12LE) {
270
+        const AVPixFmtDescriptor *desc = draw->desc;
269 271
         color->comp[0].u8[0] = RGB_TO_Y_CCIR(rgba[0], rgba[1], rgba[2]);
270
-        color->comp[0].u16[0] = color->comp[0].u8[0] << 8;
272
+        EXPAND(0);
271 273
         color->comp[1].u8[0] = rgba[3];
272
-        color->comp[1].u16[0] = color->comp[1].u8[0] << 8;
274
+        EXPAND(1);
273 275
     } else {
274 276
         av_log(NULL, AV_LOG_WARNING,
275 277
                "Color conversion not implemented for %s\n", draw->desc->name);