diff --git a/src/libcamera/pipeline/vimc/vimc.cpp b/src/libcamera/pipeline/vimc/vimc.cpp
index b653066..e55a861 100644
--- a/src/libcamera/pipeline/vimc/vimc.cpp
+++ b/src/libcamera/pipeline/vimc/vimc.cpp
@@ -160,6 +160,10 @@ CameraConfiguration::Status VimcCameraConfiguration::validate()
 
 	cfg.bufferCount = 4;
 
+	const PixelFormatInfo &info = PixelFormatInfo::info(cfg.pixelFormat);
+	cfg.stride = info.stride(cfg.size.width, 0);
+	cfg.frameSize = info.frameSize(cfg.size);
+
 	return status;
 }
 
@@ -282,7 +286,6 @@ int PipelineHandlerVimc::configure(Camera *camera, CameraConfiguration *config)
 		return ret;
 
 	cfg.setStream(&data->stream_);
-	cfg.stride = format.planes[0].bpl;
 
 	return 0;
 }
