Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/FFmpeg/FFmpeg.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul B Mahol <onemda@gmail.com>2021-02-07 23:41:04 +0300
committerPaul B Mahol <onemda@gmail.com>2021-02-07 23:45:26 +0300
commit629dd8efb5ec74a27f676f7252c517ed96879cd5 (patch)
tree2c461ede5139d258a5db355f251629c7baa08afe /libavfilter/vf_extractplanes.c
parentcae57cae1f70371591223a5f9fe3f370ce8dfd50 (diff)
avfilter/vf_extractplanes: add float formats support
Diffstat (limited to 'libavfilter/vf_extractplanes.c')
-rw-r--r--libavfilter/vf_extractplanes.c16
1 files changed, 14 insertions, 2 deletions
diff --git a/libavfilter/vf_extractplanes.c b/libavfilter/vf_extractplanes.c
index b10cd13f8f..01ce4d1a3d 100644
--- a/libavfilter/vf_extractplanes.c
+++ b/libavfilter/vf_extractplanes.c
@@ -115,16 +115,22 @@ AVFILTER_DEFINE_CLASS(extractplanes);
AV_PIX_FMT_YUV422P14##suf, \
AV_PIX_FMT_YUV444P14##suf
+#define FLOAT_FORMATS(suf) \
+ AV_PIX_FMT_GRAYF32##suf, \
+ AV_PIX_FMT_GBRPF32##suf, AV_PIX_FMT_GBRAPF32##suf \
+
static int query_formats(AVFilterContext *ctx)
{
static const enum AVPixelFormat in_pixfmts_le[] = {
EIGHTBIT_FORMATS,
HIGHDEPTH_FORMATS(LE),
+ FLOAT_FORMATS(LE),
AV_PIX_FMT_NONE,
};
static const enum AVPixelFormat in_pixfmts_be[] = {
EIGHTBIT_FORMATS,
HIGHDEPTH_FORMATS(BE),
+ FLOAT_FORMATS(BE),
AV_PIX_FMT_NONE,
};
static const enum AVPixelFormat out8_pixfmts[] = { AV_PIX_FMT_GRAY8, AV_PIX_FMT_NONE };
@@ -138,6 +144,8 @@ static int query_formats(AVFilterContext *ctx)
static const enum AVPixelFormat out14be_pixfmts[] = { AV_PIX_FMT_GRAY14BE, AV_PIX_FMT_NONE };
static const enum AVPixelFormat out16le_pixfmts[] = { AV_PIX_FMT_GRAY16LE, AV_PIX_FMT_NONE };
static const enum AVPixelFormat out16be_pixfmts[] = { AV_PIX_FMT_GRAY16BE, AV_PIX_FMT_NONE };
+ static const enum AVPixelFormat out32le_pixfmts[] = { AV_PIX_FMT_GRAYF32LE, AV_PIX_FMT_NONE };
+ static const enum AVPixelFormat out32be_pixfmts[] = { AV_PIX_FMT_GRAYF32BE, AV_PIX_FMT_NONE };
const enum AVPixelFormat *out_pixfmts, *in_pixfmts;
const AVPixFmtDescriptor *desc;
AVFilterFormats *avff;
@@ -187,10 +195,14 @@ static int query_formats(AVFilterContext *ctx)
out_pixfmts = out14le_pixfmts;
else if (be && depth == 14)
out_pixfmts = out14be_pixfmts;
- else if (be)
+ else if (be && depth == 16)
out_pixfmts = out16be_pixfmts;
- else
+ else if (!be && depth == 16)
out_pixfmts = out16le_pixfmts;
+ else if (be && depth == 32)
+ out_pixfmts = out32be_pixfmts;
+ else
+ out_pixfmts = out32le_pixfmts;
for (i = 0; i < ctx->nb_outputs; i++)
if ((ret = ff_formats_ref(ff_make_format_list(out_pixfmts), &ctx->outputs[i]->incfg.formats)) < 0)