st/va: set the visible image dimensions in vlVaDeriveImage
This fixes video being rendered incorrectly. User wants height of 360 but internally pipe_video_buffer 's height is 368 in the test below. Test: GST_GL_PLATFORM=egl gst-launch-1.0 videotestsrc ! video/x-raw, width=868, height=360, format=NV12 ! vaapipostproc ! glimagesink Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=110443 Signed-off-by: Julien Isorce <jisorce@oblong.com> Reviewed-by: Marek Olšák <marek.olsak@amd.com> Reviewed-by: Leo Liu <leo.liu@amd.com>
This commit is contained in:
committed by
Julien Isorce
parent
292187afcc
commit
98b852cd07
@@ -236,10 +236,12 @@ vlVaDeriveImage(VADriverContextP ctx, VASurfaceID surface, VAImage *image)
|
||||
|
||||
img->format.fourcc = PipeFormatToVaFourcc(surf->buffer->buffer_format);
|
||||
img->buf = VA_INVALID_ID;
|
||||
img->width = surf->buffer->width;
|
||||
img->height = surf->buffer->height;
|
||||
/* Use the visible dimensions. */
|
||||
img->width = surf->templat.width;
|
||||
img->height = surf->templat.height;
|
||||
img->num_palette_entries = 0;
|
||||
img->entry_bytes = 0;
|
||||
/* Image data size is computed using internal dimensions. */
|
||||
w = align(surf->buffer->width, 2);
|
||||
h = align(surf->buffer->height, 2);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user