test: v4l2_videodevice: Fix format configuration in the vimc pipeline

The V4L2VideoDeviceTest class configures the capture pipeline with
parameters that are partly hardcoded, and partly come from the current
configuration of the device. In particular, with the vimc pipeline, the
sensor subdevice is configured with the size retrieved from the capture
video node, and the video node is then reconfigured to 640x480.

Relying on the current (and thus possibly random) device configuration
can lead to broken pipes when starting streaming. This currently causes
failures of the dequeue_watchdog test when run after the formats test.

Fix it by explicitly setting the same size for both the vimc subdevs and
the video capture device.

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Reviewed-by: Paul Elder <paul.elder@ideasonboard.com>
Tested-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
This commit is contained in:
Laurent Pinchart 2022-04-07 11:31:06 +03:00
parent 3980448e9f
commit 302731cdf8

View file

@ -60,6 +60,9 @@ int V4L2VideoDeviceTest::init()
if (capture_->getFormat(&format))
return TestFail;
format.size.width = 640;
format.size.height = 480;
if (driver_ == "vimc") {
sensor_ = new CameraSensor(media_->getEntityByName("Sensor A"));
if (sensor_->init())
@ -82,8 +85,6 @@ int V4L2VideoDeviceTest::init()
return TestFail;
}
format.size.width = 640;
format.size.height = 480;
if (capture_->setFormat(&format))
return TestFail;