summaryrefslogtreecommitdiff
path: root/test/v4l2_videodevice/v4l2_videodevice_test.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'test/v4l2_videodevice/v4l2_videodevice_test.cpp')
-rw-r--r--test/v4l2_videodevice/v4l2_videodevice_test.cpp26
1 files changed, 26 insertions, 0 deletions
diff --git a/test/v4l2_videodevice/v4l2_videodevice_test.cpp b/test/v4l2_videodevice/v4l2_videodevice_test.cpp
index b26d06ad..a0d269fe 100644
--- a/test/v4l2_videodevice/v4l2_videodevice_test.cpp
+++ b/test/v4l2_videodevice/v4l2_videodevice_test.cpp
@@ -8,6 +8,8 @@
#include <iostream>
#include <sys/stat.h>
+#include <linux/media-bus-format.h>
+
#include "v4l2_videodevice_test.h"
#include "device_enumerator.h"
@@ -69,6 +71,28 @@ int V4L2VideoDeviceTest::init()
if (capture_->getFormat(&format))
return TestFail;
+ if (driver_ == "vimc") {
+ sensor_ = new CameraSensor(media_->getEntityByName("Sensor A"));
+ if (sensor_->init())
+ return TestFail;
+
+ debayer_ = new V4L2Subdevice(media_->getEntityByName("Debayer A"));
+ if (debayer_->open())
+ return TestFail;
+
+ format.fourcc = V4L2_PIX_FMT_SBGGR8;
+
+ V4L2SubdeviceFormat subformat = {};
+ subformat.mbus_code = MEDIA_BUS_FMT_SBGGR8_1X8;
+ subformat.size = format.size;
+
+ if (sensor_->setFormat(&subformat))
+ return TestFail;
+
+ if (debayer_->setFormat(0, &subformat))
+ return TestFail;
+ }
+
format.size.width = 640;
format.size.height = 480;
if (capture_->setFormat(&format))
@@ -83,5 +107,7 @@ void V4L2VideoDeviceTest::cleanup()
capture_->releaseBuffers();
capture_->close();
+ delete debayer_;
+ delete sensor_;
delete capture_;
};