v4l2codecs: 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: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5463>
This commit is contained in:
Nicolas Dufresne 2023-10-10 15:43:07 -04:00 committed by Tim-Philipp Müller
parent b5ca7eba4e
commit c63e56fe63

View file

@ -86,10 +86,9 @@ set_stride (GstVideoInfo * info, gint plane, gint stride)
padded_height = GST_VIDEO_FORMAT_INFO_SCALE_HEIGHT (finfo, plane,
info->height);
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;