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)
|
if (ret)
|
||||||
return 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;
|
data->frame_ = 0;
|
||||||
|
|
||||||
ret = param_->streamOn();
|
ret = param_->streamOn();
|
||||||
if (ret) {
|
if (ret) {
|
||||||
|
data->ipa_->stop();
|
||||||
freeBuffers(camera);
|
freeBuffers(camera);
|
||||||
LOG(RkISP1, Error)
|
LOG(RkISP1, Error)
|
||||||
<< "Failed to start parameters " << camera->name();
|
<< "Failed to start parameters " << camera->name();
|
||||||
|
@ -792,6 +801,7 @@ int PipelineHandlerRkISP1::start(Camera *camera)
|
||||||
ret = stat_->streamOn();
|
ret = stat_->streamOn();
|
||||||
if (ret) {
|
if (ret) {
|
||||||
param_->streamOff();
|
param_->streamOff();
|
||||||
|
data->ipa_->stop();
|
||||||
freeBuffers(camera);
|
freeBuffers(camera);
|
||||||
LOG(RkISP1, Error)
|
LOG(RkISP1, Error)
|
||||||
<< "Failed to start statistics " << camera->name();
|
<< "Failed to start statistics " << camera->name();
|
||||||
|
@ -802,6 +812,7 @@ int PipelineHandlerRkISP1::start(Camera *camera)
|
||||||
if (ret) {
|
if (ret) {
|
||||||
param_->streamOff();
|
param_->streamOff();
|
||||||
stat_->streamOff();
|
stat_->streamOff();
|
||||||
|
data->ipa_->stop();
|
||||||
freeBuffers(camera);
|
freeBuffers(camera);
|
||||||
|
|
||||||
LOG(RkISP1, Error)
|
LOG(RkISP1, Error)
|
||||||
|
@ -845,6 +856,8 @@ void PipelineHandlerRkISP1::stop(Camera *camera)
|
||||||
LOG(RkISP1, Warning)
|
LOG(RkISP1, Warning)
|
||||||
<< "Failed to stop parameters " << camera->name();
|
<< "Failed to stop parameters " << camera->name();
|
||||||
|
|
||||||
|
data->ipa_->stop();
|
||||||
|
|
||||||
data->timeline_.reset();
|
data->timeline_.reset();
|
||||||
|
|
||||||
data->frameInfo_.clear();
|
data->frameInfo_.clear();
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue