From 05f484b592d6e381a593b114556e242e23677067 Mon Sep 17 00:00:00 2001 From: Paul B Mahol Date: Wed, 14 Sep 2022 16:41:48 +0200 Subject: [PATCH 4/4] avfilter/vf_extractplanes: add support for packed rgb float formats Signed-off-by: Paul B Mahol --- libavfilter/vf_extractplanes.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/libavfilter/vf_extractplanes.c b/libavfilter/vf_extractplanes.c index 60b55578cf..3c794eaa28 100644 --- a/libavfilter/vf_extractplanes.c +++ b/libavfilter/vf_extractplanes.c @@ -124,6 +124,7 @@ AVFILTER_DEFINE_CLASS(extractplanes); #define FLOAT_FORMATS(suf) \ AV_PIX_FMT_GRAYF32##suf, \ + AV_PIX_FMT_RGBF32##suf, AV_PIX_FMT_RGBAF32##suf, \ AV_PIX_FMT_GBRPF32##suf, AV_PIX_FMT_GBRAPF32##suf \ static int query_formats(AVFilterContext *ctx) @@ -283,6 +284,13 @@ static void extract_from_packed(uint8_t *dst, int dst_linesize, dst[x * 2 ] = src[x * step + comp * 2 ]; dst[x * 2 + 1] = src[x * step + comp * 2 + 1]; } + case 4: + for (x = 0; x < width; x++) { + dst[x * 4 ] = src[x * step + comp * 4 ]; + dst[x * 4 + 1] = src[x * step + comp * 4 + 1]; + dst[x * 4 + 2] = src[x * step + comp * 4 + 2]; + dst[x * 4 + 3] = src[x * step + comp * 4 + 3]; + } break; } dst += dst_linesize; -- 2.37.2