From bcfbdfbbcac127a0c82acb5e19d2845817148f15 Mon Sep 17 00:00:00 2001 From: Nicolas Dufresne Date: Wed, 11 Oct 2023 09:36:11 -0400 Subject: [PATCH] v4l2: Fix tiled formats stride conversion While adding arbitrary tile support, a round up operation was badly converter. This caused the Y component of the stride to be 0. This eventually lead to a crash in glupoad preceded by the following assertion. gst_gl_buffer_allocation_params_new: assertion 'alloc_size > 0' failed Part-of: --- subprojects/gst-plugins-good/sys/v4l2/gstv4l2object.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/subprojects/gst-plugins-good/sys/v4l2/gstv4l2object.c b/subprojects/gst-plugins-good/sys/v4l2/gstv4l2object.c index d6a85d774d..c75ade1a3f 100644 --- a/subprojects/gst-plugins-good/sys/v4l2/gstv4l2object.c +++ b/subprojects/gst-plugins-good/sys/v4l2/gstv4l2object.c @@ -3438,10 +3438,9 @@ gst_v4l2_object_set_stride (GstVideoInfo * info, GstVideoAlignment * align, padded_height = GST_VIDEO_FORMAT_INFO_SCALE_HEIGHT (finfo, plane, info->height + align->padding_top + align->padding_bottom); - padded_height = (padded_height + tile_height - 1) / tile_height; x_tiles = stride / GST_VIDEO_FORMAT_INFO_TILE_STRIDE (finfo, plane); - y_tiles = padded_height / tile_height; + y_tiles = (padded_height + tile_height - 1) / tile_height; info->stride[plane] = GST_VIDEO_TILE_MAKE_STRIDE (x_tiles, y_tiles); } else { info->stride[plane] = stride;