summaryrefslogtreecommitdiffstats
path: root/libavfilter/vf_kerndeint.c
diff options
context:
space:
mode:
Diffstat (limited to 'libavfilter/vf_kerndeint.c')
-rw-r--r--libavfilter/vf_kerndeint.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/libavfilter/vf_kerndeint.c b/libavfilter/vf_kerndeint.c
index c97df45..6cd9bc2 100644
--- a/libavfilter/vf_kerndeint.c
+++ b/libavfilter/vf_kerndeint.c
@@ -82,7 +82,10 @@ static int query_formats(AVFilterContext *ctx)
static const enum PixelFormat pix_fmts[] = {
AV_PIX_FMT_YUV420P,
AV_PIX_FMT_YUYV422,
- AV_PIX_FMT_ARGB,
+ AV_PIX_FMT_ARGB, AV_PIX_FMT_0RGB,
+ AV_PIX_FMT_ABGR, AV_PIX_FMT_0BGR,
+ AV_PIX_FMT_RGBA, AV_PIX_FMT_RGB0,
+ AV_PIX_FMT_BGRA, AV_PIX_FMT_BGR0,
AV_PIX_FMT_NONE
};
@@ -200,10 +203,11 @@ static int filter_frame(AVFilterLink *inlink, AVFilterBufferRef *inpic)
(abs((int)prvp[x] - (int)srcp[x]) > thresh) ||
(abs((int)prvpp[x] - (int)srcpp[x]) > thresh) ||
(abs((int)prvpn[x] - (int)srcpn[x]) > thresh)) {
+ int is_packed_rgb = av_pix_fmt_desc_get(inlink->format)->flags & PIX_FMT_RGB;
if (map) {
g = x & ~3;
- if (inlink->format == AV_PIX_FMT_ARGB) {
+ if (is_packed_rgb) {
AV_WB32(dstp + g, 0xffffffff);
x = g + 3;
} else if (inlink->format == AV_PIX_FMT_YUYV422) {
@@ -214,7 +218,7 @@ static int filter_frame(AVFilterLink *inlink, AVFilterBufferRef *inpic)
dstp[x] = plane == 0 ? 235 : 128;
}
} else {
- if (inlink->format == AV_PIX_FMT_ARGB) {
+ if (is_packed_rgb) {
hi = 255;
lo = 0;
} else if (inlink->format == AV_PIX_FMT_YUYV422) {
OpenPOWER on IntegriCloud