summaryrefslogtreecommitdiff
path: root/src/libcamera/pipeline/vimc/vimc.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/libcamera/pipeline/vimc/vimc.cpp')
-rw-r--r--src/libcamera/pipeline/vimc/vimc.cpp8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/libcamera/pipeline/vimc/vimc.cpp b/src/libcamera/pipeline/vimc/vimc.cpp
index b04a9726..c5eea3a0 100644
--- a/src/libcamera/pipeline/vimc/vimc.cpp
+++ b/src/libcamera/pipeline/vimc/vimc.cpp
@@ -274,8 +274,15 @@ int PipelineHandlerVimc::start(Camera *camera)
if (ret < 0)
return ret;
+ ret = data->ipa_->start();
+ if (ret) {
+ data->video_->releaseBuffers();
+ return ret;
+ }
+
ret = data->video_->streamOn();
if (ret < 0) {
+ data->ipa_->stop();
data->video_->releaseBuffers();
return ret;
}
@@ -287,6 +294,7 @@ void PipelineHandlerVimc::stop(Camera *camera)
{
VimcCameraData *data = cameraData(camera);
data->video_->streamOff();
+ data->ipa_->stop();
data->video_->releaseBuffers();
}