When the source buffer is progressive source, re-allocate the
destination buffer as progressive if it isn't already - otherwise
transcoding will fail.
Closes: https://gitlab.freedesktop.org/mesa/mesa/issues/1418
Signed-off-by: Thong Thai <thong.thai@amd.com>
Reviewed-by: Leo Liu <leo.liu@amd.com>
Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4001>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4001>
!src->interlaced)
grab = true;
- if (src->interlaced != dst->interlaced && dst->interlaced && !grab)
- return VA_STATUS_ERROR_INVALID_SURFACE;
-
if ((src->width != dst->width || src->height != dst->height) &&
(src->interlaced && dst->interlaced))
scale = true;
if (!src_surfaces || !src_surfaces[0])
return VA_STATUS_ERROR_INVALID_SURFACE;
- if (scale || (grab && dst->interlaced)) {
+ if (scale || (src->interlaced != dst->interlaced && dst->interlaced)) {
vlVaSurface *surf;
surf = handle_table_get(drv->htab, context->target_id);