diff options
author | Jacopo Mondi <jacopo@jmondi.org> | 2019-06-12 13:09:57 +0100 |
---|---|---|
committer | Jacopo Mondi <jacopo@jmondi.org> | 2019-06-19 15:46:44 +0200 |
commit | 3a6c4bd146cc6647daf458bbc048bd861e702f62 (patch) | |
tree | fe44a23f524bd1d82b541985bddf83a275ae725a /test/v4l2_videodevice/v4l2_videodevice_test.cpp | |
parent | 20807a8c17e629b93d293ef0a0bdbd686ce84823 (diff) |
libcamera: Rename V4L2Device to V4L2VideoDevice
In preparation of creating a new V4L2Device base class, rename
V4L2Device to V4L2VideoDevice.
This is a project wide rename without any intended functional change.
Signed-off-by: Jacopo Mondi <jacopo@jmondi.org>
Signed-off-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
Reviewed-by: Niklas Söderlund <niklas.soderlund@ragnatech.se>
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Diffstat (limited to 'test/v4l2_videodevice/v4l2_videodevice_test.cpp')
-rw-r--r-- | test/v4l2_videodevice/v4l2_videodevice_test.cpp | 87 |
1 files changed, 87 insertions, 0 deletions
diff --git a/test/v4l2_videodevice/v4l2_videodevice_test.cpp b/test/v4l2_videodevice/v4l2_videodevice_test.cpp new file mode 100644 index 00000000..b26d06ad --- /dev/null +++ b/test/v4l2_videodevice/v4l2_videodevice_test.cpp @@ -0,0 +1,87 @@ +/* SPDX-License-Identifier: GPL-2.0-or-later */ +/* + * Copyright (C) 2019, Google Inc. + * + * libcamera V4L2 API tests + */ + +#include <iostream> +#include <sys/stat.h> + +#include "v4l2_videodevice_test.h" + +#include "device_enumerator.h" +#include "media_device.h" + +using namespace std; +using namespace libcamera; + +bool exists(const std::string &path) +{ + struct stat sb; + + if (stat(path.c_str(), &sb) == 0) + return true; + + return false; +} + +int V4L2VideoDeviceTest::init() +{ + enumerator_ = DeviceEnumerator::create(); + if (!enumerator_) { + cerr << "Failed to create device enumerator" << endl; + return TestFail; + } + + if (enumerator_->enumerate()) { + cerr << "Failed to enumerate media devices" << endl; + return TestFail; + } + + DeviceMatch dm(driver_); + dm.add(entity_); + + media_ = enumerator_->search(dm); + if (!media_) + return TestSkip; + + MediaEntity *entity = media_->getEntityByName(entity_); + if (!entity) + return TestSkip; + + capture_ = new V4L2VideoDevice(entity); + if (!capture_) + return TestFail; + + if (!media_->acquire()) + return TestFail; + + int ret = media_->disableLinks(); + media_->release(); + if (ret) + return TestFail; + + if (capture_->open()) + return TestFail; + + V4L2DeviceFormat format = {}; + if (capture_->getFormat(&format)) + return TestFail; + + format.size.width = 640; + format.size.height = 480; + if (capture_->setFormat(&format)) + return TestFail; + + return TestPass; +} + +void V4L2VideoDeviceTest::cleanup() +{ + capture_->streamOff(); + capture_->releaseBuffers(); + capture_->close(); + + delete capture_; +}; |