summaryrefslogtreecommitdiffstats
path: root/src/gallium/state_trackers
diff options
context:
space:
mode:
authorLeo Liu <[email protected]>2017-09-28 21:41:29 -0400
committerLeo Liu <[email protected]>2017-09-29 10:06:30 -0400
commit361d8f82c03ae78373483e91ad3ec339ccd05236 (patch)
treee54fd8ecd8472c9f0e418683dfeab129863a69c8 /src/gallium/state_trackers
parentd190bfc1ad1a90f6d231c0c840a8153c22c06423 (diff)
st/va: add dst rect to avoid scale on deint
For 1080p video transcode, the height will be scaled to 1088 when deint to progressive buffer. Set dst rect to make sure no scale. Fixes: 3ad8687 "st/va: use new vl_compositor_yuv_deint_full() to deint" Signed-off-by: Leo Liu <[email protected]> Reviewed-by: Christian König <[email protected]> Acked-by: Andy Furniss <[email protected]>
Diffstat (limited to 'src/gallium/state_trackers')
-rw-r--r--src/gallium/state_trackers/va/picture.c12
1 files changed, 6 insertions, 6 deletions
diff --git a/src/gallium/state_trackers/va/picture.c b/src/gallium/state_trackers/va/picture.c
index 5e794652a69..7427b98688a 100644
--- a/src/gallium/state_trackers/va/picture.c
+++ b/src/gallium/state_trackers/va/picture.c
@@ -669,15 +669,15 @@ vlVaEndPicture(VADriverContextP ctx, VAContextID context_id)
if (context->decoder->entrypoint == PIPE_VIDEO_ENTRYPOINT_ENCODE) {
if (old_buf->interlaced) {
- struct u_rect src_rect;
+ struct u_rect src_rect, dst_rect;
- src_rect.x0 = 0;
- src_rect.y0 = 0;
- src_rect.x1 = surf->templat.width;
- src_rect.y1 = surf->templat.height;
+ dst_rect.x0 = src_rect.x0 = 0;
+ dst_rect.y0 = src_rect.y0 = 0;
+ dst_rect.x1 = src_rect.x1 = surf->templat.width;
+ dst_rect.y1 = 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);
+ &src_rect, &dst_rect, VL_COMPOSITOR_WEAVE);
} else
/* Can't convert from progressive to interlaced yet */
return VA_STATUS_ERROR_INVALID_SURFACE;