avfilter/vf_extractplanes: add 9 bitdepth support
authorPaul B Mahol <onemda@gmail.com>
Sat, 5 Aug 2017 13:18:12 +0000 (15:18 +0200)
committerPaul B Mahol <onemda@gmail.com>
Mon, 7 Aug 2017 11:09:56 +0000 (13:09 +0200)
libavfilter/vf_extractplanes.c

index d3a9046..f2118e6 100644 (file)
@@ -103,6 +103,13 @@ static int query_formats(AVFilterContext *ctx)
         AV_PIX_FMT_YUV440P12LE,
         AV_PIX_FMT_GBRP10LE, AV_PIX_FMT_GBRAP10LE,
         AV_PIX_FMT_GBRP12LE, AV_PIX_FMT_GBRAP12LE,
+        AV_PIX_FMT_YUV420P9LE,
+        AV_PIX_FMT_YUV422P9LE,
+        AV_PIX_FMT_YUV444P9LE,
+        AV_PIX_FMT_YUVA420P9LE,
+        AV_PIX_FMT_YUVA422P9LE,
+        AV_PIX_FMT_YUVA444P9LE,
+        AV_PIX_FMT_GBRP9LE,
         AV_PIX_FMT_NONE,
     };
     static const enum AVPixelFormat in_pixfmts_be[] = {
@@ -142,9 +149,18 @@ static int query_formats(AVFilterContext *ctx)
         AV_PIX_FMT_YUV440P12BE,
         AV_PIX_FMT_GBRP10BE, AV_PIX_FMT_GBRAP10BE,
         AV_PIX_FMT_GBRP12BE, AV_PIX_FMT_GBRAP12BE,
+        AV_PIX_FMT_YUV420P9BE,
+        AV_PIX_FMT_YUV422P9BE,
+        AV_PIX_FMT_YUV444P9BE,
+        AV_PIX_FMT_YUVA420P9BE,
+        AV_PIX_FMT_YUVA422P9BE,
+        AV_PIX_FMT_YUVA444P9BE,
+        AV_PIX_FMT_GBRP9BE,
         AV_PIX_FMT_NONE,
     };
     static const enum AVPixelFormat out8_pixfmts[] = { AV_PIX_FMT_GRAY8, AV_PIX_FMT_NONE };
+    static const enum AVPixelFormat out9le_pixfmts[] = { AV_PIX_FMT_GRAY9LE, AV_PIX_FMT_NONE };
+    static const enum AVPixelFormat out9be_pixfmts[] = { AV_PIX_FMT_GRAY9BE, AV_PIX_FMT_NONE };
     static const enum AVPixelFormat out10le_pixfmts[] = { AV_PIX_FMT_GRAY10LE, AV_PIX_FMT_NONE };
     static const enum AVPixelFormat out10be_pixfmts[] = { AV_PIX_FMT_GRAY10BE, AV_PIX_FMT_NONE };
     static const enum AVPixelFormat out12le_pixfmts[] = { AV_PIX_FMT_GRAY12LE, AV_PIX_FMT_NONE };
@@ -184,6 +200,10 @@ static int query_formats(AVFilterContext *ctx)
 
     if (depth == 8)
         out_pixfmts = out8_pixfmts;
+    else if (!be && depth == 9)
+        out_pixfmts = out9le_pixfmts;
+    else if (be && depth == 9)
+        out_pixfmts = out9be_pixfmts;
     else if (!be && depth == 10)
         out_pixfmts = out10le_pixfmts;
     else if (be && depth == 10)