In preparation of reworking how a default configuration is retrieved from a camera remove the streams and validation using the stream when judging if a camera configuration is valid. This is needed as once stream usage hints are added applications will no longer fetch default configuration based on Stream IDs so using them to verify the returned format is not useful. Signed-off-by: Niklas Söderlund <niklas.soderlund@ragnatech.se> Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Reviewed-by: Jacopo Mondi <jacopo@jmondi.org>
65 lines
1.2 KiB
C++
65 lines
1.2 KiB
C++
/* SPDX-License-Identifier: GPL-2.0-or-later */
|
|
/*
|
|
* Copyright (C) 2019, Google Inc.
|
|
*
|
|
* libcamera Camera API tests
|
|
*/
|
|
|
|
#include <iostream>
|
|
|
|
#include "camera_test.h"
|
|
|
|
using namespace libcamera;
|
|
using namespace std;
|
|
|
|
int CameraTest::init()
|
|
{
|
|
cm_ = CameraManager::instance();
|
|
|
|
if (cm_->start()) {
|
|
cout << "Failed to start camera manager" << endl;
|
|
return TestFail;
|
|
}
|
|
|
|
camera_ = cm_->get("VIMC Sensor B");
|
|
if (!camera_) {
|
|
cout << "Can not find VIMC camera" << endl;
|
|
return TestSkip;
|
|
}
|
|
|
|
/* Sanity check that the camera has streams. */
|
|
if (camera_->streams().empty()) {
|
|
cout << "Camera has no stream" << endl;
|
|
return TestFail;
|
|
}
|
|
|
|
return TestPass;
|
|
}
|
|
|
|
void CameraTest::cleanup()
|
|
{
|
|
if (camera_) {
|
|
camera_->release();
|
|
camera_.reset();
|
|
}
|
|
|
|
cm_->stop();
|
|
};
|
|
|
|
bool CameraTest::configurationValid(const std::map<Stream *, StreamConfiguration> &config) const
|
|
{
|
|
/* Test that the configuration is not empty. */
|
|
if (config.empty())
|
|
return false;
|
|
|
|
/* Test that configuration is valid. */
|
|
for (auto const &it : config) {
|
|
const StreamConfiguration &conf = it.second;
|
|
|
|
if (conf.width == 0 || conf.height == 0 ||
|
|
conf.pixelFormat == 0 || conf.bufferCount == 0)
|
|
return false;
|
|
}
|
|
|
|
return true;
|
|
}
|