libcamera: camera: Return a pointer from generateConfiguration()
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>
This commit is contained in:
parent
77ae64eb24
commit
75de3bff9e
15 changed files with 184 additions and 126 deletions
|
@ -19,7 +19,7 @@ protected:
|
|||
int testAvailable()
|
||||
{
|
||||
/* Test operations which should fail. */
|
||||
if (camera_->configure(defconf_) != -EACCES)
|
||||
if (camera_->configure(defconf_.get()) != -EACCES)
|
||||
return TestFail;
|
||||
|
||||
if (camera_->allocateBuffers() != -EACCES)
|
||||
|
@ -84,7 +84,7 @@ protected:
|
|||
if (camera_->acquire())
|
||||
return TestFail;
|
||||
|
||||
if (camera_->configure(defconf_))
|
||||
if (camera_->configure(defconf_.get()))
|
||||
return TestFail;
|
||||
|
||||
return TestPass;
|
||||
|
@ -113,7 +113,7 @@ protected:
|
|||
return TestFail;
|
||||
|
||||
/* Test operations which should pass. */
|
||||
if (camera_->configure(defconf_))
|
||||
if (camera_->configure(defconf_.get()))
|
||||
return TestFail;
|
||||
|
||||
/* Test valid state transitions, end in Prepared state. */
|
||||
|
@ -123,7 +123,7 @@ protected:
|
|||
if (camera_->acquire())
|
||||
return TestFail;
|
||||
|
||||
if (camera_->configure(defconf_))
|
||||
if (camera_->configure(defconf_.get()))
|
||||
return TestFail;
|
||||
|
||||
if (camera_->allocateBuffers())
|
||||
|
@ -141,7 +141,7 @@ protected:
|
|||
if (camera_->release() != -EBUSY)
|
||||
return TestFail;
|
||||
|
||||
if (camera_->configure(defconf_) != -EACCES)
|
||||
if (camera_->configure(defconf_.get()) != -EACCES)
|
||||
return TestFail;
|
||||
|
||||
if (camera_->allocateBuffers() != -EACCES)
|
||||
|
@ -172,7 +172,7 @@ protected:
|
|||
if (camera_->acquire())
|
||||
return TestFail;
|
||||
|
||||
if (camera_->configure(defconf_))
|
||||
if (camera_->configure(defconf_.get()))
|
||||
return TestFail;
|
||||
|
||||
if (camera_->allocateBuffers())
|
||||
|
@ -193,7 +193,7 @@ protected:
|
|||
if (camera_->release() != -EBUSY)
|
||||
return TestFail;
|
||||
|
||||
if (camera_->configure(defconf_) != -EACCES)
|
||||
if (camera_->configure(defconf_.get()) != -EACCES)
|
||||
return TestFail;
|
||||
|
||||
if (camera_->allocateBuffers() != -EACCES)
|
||||
|
@ -233,10 +233,22 @@ protected:
|
|||
return TestPass;
|
||||
}
|
||||
|
||||
int run()
|
||||
int init() override
|
||||
{
|
||||
defconf_ = camera_->generateConfiguration({ StreamRole::VideoRecording });
|
||||
CameraTest::init();
|
||||
|
||||
defconf_ = camera_->generateConfiguration({ StreamRole::VideoRecording });
|
||||
if (!defconf_) {
|
||||
cout << "Failed to generate default configuration" << endl;
|
||||
CameraTest::cleanup();
|
||||
return TestFail;
|
||||
}
|
||||
|
||||
return TestPass;
|
||||
}
|
||||
|
||||
int run() override
|
||||
{
|
||||
if (testAvailable() != TestPass) {
|
||||
cout << "State machine in Available state failed" << endl;
|
||||
return TestFail;
|
||||
|
@ -265,7 +277,7 @@ protected:
|
|||
return TestPass;
|
||||
}
|
||||
|
||||
CameraConfiguration defconf_;
|
||||
std::unique_ptr<CameraConfiguration> defconf_;
|
||||
};
|
||||
|
||||
} /* namespace */
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue