From 6a9af925654ce91d100443c9f69b1d825c72a16f Mon Sep 17 00:00:00 2001 From: Carl Eugen Hoyos Date: Sat, 5 Jan 2013 14:40:06 +0100 Subject: Allow remaining 32bit RGB packed pix_fmts in kerndeint filter. Reviewed-by: Stefano Sabatini --- libavfilter/vf_kerndeint.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) (limited to 'libavfilter/vf_kerndeint.c') 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) { -- cgit v1.1