libcamera/test/camera/camera_test.cpp
Niklas Söderlund 8f08880082 test: camera: Remove streams argument from configurationValid()
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>
2019-04-04 00:21:47 +02:00

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;
}