To prepare for specialising the CameraConfiguration class in pipeline handlers, return a pointer to a camera configuration instead of a reference from Camera::generateConfiguration(). The camera configuration always needs to be allocated from the pipeline handler, and its ownership is passed to the application. For symmetry, change Camera::configure() to take a CameraConfiguration pointer instead of a reference. This aligns with our coding practice of passing parameters that are modified by the callee by pointer. Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Reviewed-by: Niklas Söderlund <niklas.soderlund@ragnatech.se> Reviewed-by: Jacopo Mondi <jacopo@jmondi.org>
47 lines
983 B
C++
47 lines
983 B
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 std;
|
|
|
|
namespace {
|
|
|
|
class ConfigurationDefault : public CameraTest
|
|
{
|
|
protected:
|
|
int run()
|
|
{
|
|
std::unique_ptr<CameraConfiguration> config;
|
|
|
|
/* Test asking for configuration for a video stream. */
|
|
config = camera_->generateConfiguration({ StreamRole::VideoRecording });
|
|
if (!config || !config->isValid()) {
|
|
cout << "Default configuration invalid" << endl;
|
|
return TestFail;
|
|
}
|
|
|
|
/*
|
|
* Test that asking for configuration for an empty array of
|
|
* stream roles returns an empty camera configuration.
|
|
*/
|
|
config = camera_->generateConfiguration({});
|
|
if (!config || config->isValid()) {
|
|
cout << "Failed to retrieve configuration for empty roles list"
|
|
<< endl;
|
|
return TestFail;
|
|
}
|
|
|
|
return TestPass;
|
|
}
|
|
};
|
|
|
|
} /* namespace */
|
|
|
|
TEST_REGISTER(ConfigurationDefault);
|