Module: Mesa
Branch: master
Commit: 3ad8687295449154a91464b7990963fd88cf3cd1
URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=3ad8687295449154a91464b7990963fd88cf3cd1

Author: Leo Liu <[email protected]>
Date:   Mon Sep 11 12:57:22 2017 -0400

st/va: use new vl_compositor_yuv_deint_full() to deint

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 <[email protected]>

---

 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 19df52cb83..81bd196ce0 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;
       }

_______________________________________________
mesa-commit mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/mesa-commit

Reply via email to