[Mesa-dev] [PATCH] st/va: add dst rect to avoid scale on deint
Andy Furniss
adf.lists at gmail.com
Fri Sep 29 10:04:18 UTC 2017
Leo Liu wrote:
> 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"
Probably my test cases are lacking, but I can't see and difference with
this. Do you have an example?
>
> Signed-off-by: Leo Liu <leo.liu at amd.com>
> ---
> src/gallium/state_trackers/va/picture.c | 12 ++++++------
> 1 file changed, 6 insertions(+), 6 deletions(-)
>
> diff --git a/src/gallium/state_trackers/va/picture.c b/src/gallium/state_trackers/va/picture.c
> index 5e794652a6..7427b98688 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;
>
More information about the mesa-dev
mailing list