summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--libavfilter/vf_extractplanes.c20
1 files changed, 20 insertions, 0 deletions
diff --git a/libavfilter/vf_extractplanes.c b/libavfilter/vf_extractplanes.c
index d3a90465b6..f2118e6599 100644
--- a/libavfilter/vf_extractplanes.c
+++ b/libavfilter/vf_extractplanes.c
@@ -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)