avfilter/vf_extractplanes: add support for packed rgb float formats
This commit is contained in:
@@ -124,6 +124,7 @@ AVFILTER_DEFINE_CLASS(extractplanes);
|
|||||||
|
|
||||||
#define FLOAT_FORMATS(suf) \
|
#define FLOAT_FORMATS(suf) \
|
||||||
AV_PIX_FMT_GRAYF32##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 \
|
AV_PIX_FMT_GBRPF32##suf, AV_PIX_FMT_GBRAPF32##suf \
|
||||||
|
|
||||||
static int query_formats(AVFilterContext *ctx)
|
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 ] = src[x * step + comp * 2 ];
|
||||||
dst[x * 2 + 1] = src[x * step + comp * 2 + 1];
|
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;
|
break;
|
||||||
}
|
}
|
||||||
dst += dst_linesize;
|
dst += dst_linesize;
|
||||||
|
|||||||
Reference in New Issue
Block a user