From 3ad8687295449154a91464b7990963fd88cf3cd1 Mon Sep 17 00:00:00 2001 From: Leo Liu Date: Mon, 11 Sep 2017 12:57:22 -0400 Subject: [PATCH] st/va: use new vl_compositor_yuv_deint_full() to deint MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit We also set src rectangle explicitly just in case of the mismatch of size between interlaced buffer and progressive buffer Acked-by: Christian König --- src/gallium/state_trackers/va/picture.c | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/src/gallium/state_trackers/va/picture.c b/src/gallium/state_trackers/va/picture.c index 19df52cb83e..81bd196ce00 100644 --- a/src/gallium/state_trackers/va/picture.c +++ b/src/gallium/state_trackers/va/picture.c @@ -668,9 +668,17 @@ vlVaEndPicture(VADriverContextP ctx, VAContextID context_id) } if (context->decoder->entrypoint == PIPE_VIDEO_ENTRYPOINT_ENCODE) { - if (old_buf->interlaced) - vl_compositor_yuv_deint(&drv->cstate, &drv->compositor, old_buf, surf->buffer); - else + if (old_buf->interlaced) { + struct u_rect src_rect; + + src_rect.x0 = 0; + src_rect.y0 = 0; + src_rect.x1 = surf->templat.width; + src_rect.y1 = surf->templat.height; + vl_compositor_yuv_deint_full(&drv->cstate, &drv->compositor, + old_buf, surf->buffer, + &src_rect, NULL, VL_COMPOSITOR_WEAVE); + } else /* Can't convert from progressive to interlaced yet */ return VA_STATUS_ERROR_INVALID_SURFACE; } -- 2.30.2