libcamera: pipeline: rkisp1: Call IPA start() and stop()
Call the IPA start()/stop() functions before/after the camera is started. This makes sure the IPA functions properly once thread management is moved into the start/stop interface. Signed-off-by: Niklas Söderlund <niklas.soderlund@ragnatech.se> Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
This commit is contained in:
parent
871d182cef
commit
6d7a66dc4e
1 changed files with 13 additions and 0 deletions
|
@ -779,10 +779,19 @@ int PipelineHandlerRkISP1::start(Camera *camera)
|
|||
if (ret)
|
||||
return ret;
|
||||
|
||||
ret = data->ipa_->start();
|
||||
if (ret) {
|
||||
freeBuffers(camera);
|
||||
LOG(RkISP1, Error)
|
||||
<< "Failed to start IPA " << camera->name();
|
||||
return ret;
|
||||
}
|
||||
|
||||
data->frame_ = 0;
|
||||
|
||||
ret = param_->streamOn();
|
||||
if (ret) {
|
||||
data->ipa_->stop();
|
||||
freeBuffers(camera);
|
||||
LOG(RkISP1, Error)
|
||||
<< "Failed to start parameters " << camera->name();
|
||||
|
@ -792,6 +801,7 @@ int PipelineHandlerRkISP1::start(Camera *camera)
|
|||
ret = stat_->streamOn();
|
||||
if (ret) {
|
||||
param_->streamOff();
|
||||
data->ipa_->stop();
|
||||
freeBuffers(camera);
|
||||
LOG(RkISP1, Error)
|
||||
<< "Failed to start statistics " << camera->name();
|
||||
|
@ -802,6 +812,7 @@ int PipelineHandlerRkISP1::start(Camera *camera)
|
|||
if (ret) {
|
||||
param_->streamOff();
|
||||
stat_->streamOff();
|
||||
data->ipa_->stop();
|
||||
freeBuffers(camera);
|
||||
|
||||
LOG(RkISP1, Error)
|
||||
|
@ -845,6 +856,8 @@ void PipelineHandlerRkISP1::stop(Camera *camera)
|
|||
LOG(RkISP1, Warning)
|
||||
<< "Failed to stop parameters " << camera->name();
|
||||
|
||||
data->ipa_->stop();
|
||||
|
||||
data->timeline_.reset();
|
||||
|
||||
data->frameInfo_.clear();
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue