Mesa (main): frontends/va/postproc: Keep track of deinterlacing method being used
GitLab Mirror
gitlab-mirror at kemper.freedesktop.org
Sun Aug 8 14:42:46 UTC 2021
Module: Mesa
Branch: main
Commit: 3cafe333e99f8ce77c742543a47f3700852b44ea
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=3cafe333e99f8ce77c742543a47f3700852b44ea
Author: Thong Thai <thong.thai at amd.com>
Date: Fri Aug 6 14:42:44 2021 -0400
frontends/va/postproc: Keep track of deinterlacing method being used
When transcoding a video, the context used by decode/postproc process
might be different from that of the encoder, but we encoder needs to
know if deinterlacing was used.
Fixes: c5088b49729 ("gallium: Fix VAAPI postproc blit")
Signed-off-by: Thong Thai <thong.thai at amd.com>
Reviewed-by: Leo Liu <leo.liu at amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12251>
---
src/gallium/frontends/va/postproc.c | 7 ++++---
1 file changed, 4 insertions(+), 3 deletions(-)
diff --git a/src/gallium/frontends/va/postproc.c b/src/gallium/frontends/va/postproc.c
index 162994d88fd..88d7d81619d 100644
--- a/src/gallium/frontends/va/postproc.c
+++ b/src/gallium/frontends/va/postproc.c
@@ -222,7 +222,7 @@ static VAStatus vlVaPostProcBlit(vlVaDriver *drv, vlVaContext *context,
if (drv->pipe->screen->get_param(drv->pipe->screen,
PIPE_CAP_PREFER_COMPUTE_FOR_MULTIMEDIA))
- util_compute_blit(drv->pipe, &blit, &context->blit_cs);
+ util_compute_blit(drv->pipe, &blit, &context->blit_cs, !drv->compositor.deinterlace);
else
drv->pipe->blit(drv->pipe, &blit);
}
@@ -281,7 +281,7 @@ vlVaApplyDeint(vlVaDriver *drv, vlVaContext *context,
VAStatus
vlVaHandleVAProcPipelineParameterBufferType(vlVaDriver *drv, vlVaContext *context, vlVaBuffer *buf)
{
- enum vl_compositor_deinterlace deinterlace = VL_COMPOSITOR_WEAVE;
+ enum vl_compositor_deinterlace deinterlace = VL_COMPOSITOR_NONE;
VARectangle def_src_region, def_dst_region;
const VARectangle *src_region, *dst_region;
VAProcPipelineParameterBuffer *param;
@@ -349,12 +349,13 @@ vlVaHandleVAProcPipelineParameterBufferType(vlVaDriver *drv, vlVaContext *contex
case VAProcDeinterlacingMotionAdaptive:
src = vlVaApplyDeint(drv, context, param, src,
!!(deint->flags & VA_DEINTERLACING_BOTTOM_FIELD));
+ deinterlace = VL_COMPOSITOR_MOTION_ADAPTIVE;
break;
default:
return VA_STATUS_ERROR_UNIMPLEMENTED;
}
-
+ drv->compositor.deinterlace = deinterlace;
break;
}
More information about the mesa-commit
mailing list