cam: free allocated buffers when done capturing
The allocated buffers needs to be freed once the application is done with them. Signed-off-by: Niklas Söderlund <niklas.soderlund@ragnatech.se> Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
This commit is contained in:
parent
2090f8fdd8
commit
24cb563853
1 changed files with 7 additions and 3 deletions
|
@ -160,7 +160,8 @@ static int capture()
|
||||||
Request *request = camera->createRequest();
|
Request *request = camera->createRequest();
|
||||||
if (!request) {
|
if (!request) {
|
||||||
std::cerr << "Can't create request" << std::endl;
|
std::cerr << "Can't create request" << std::endl;
|
||||||
return -ENOMEM;
|
ret = -ENOMEM;
|
||||||
|
goto out;
|
||||||
}
|
}
|
||||||
|
|
||||||
std::map<Stream *, Buffer *> map;
|
std::map<Stream *, Buffer *> map;
|
||||||
|
@ -168,13 +169,13 @@ static int capture()
|
||||||
ret = request->setBuffers(map);
|
ret = request->setBuffers(map);
|
||||||
if (ret < 0) {
|
if (ret < 0) {
|
||||||
std::cerr << "Can't set buffers for request" << std::endl;
|
std::cerr << "Can't set buffers for request" << std::endl;
|
||||||
return ret;
|
goto out;
|
||||||
}
|
}
|
||||||
|
|
||||||
ret = camera->queueRequest(request);
|
ret = camera->queueRequest(request);
|
||||||
if (ret < 0) {
|
if (ret < 0) {
|
||||||
std::cerr << "Can't queue request" << std::endl;
|
std::cerr << "Can't queue request" << std::endl;
|
||||||
return ret;
|
goto out;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -184,6 +185,9 @@ static int capture()
|
||||||
ret = loop->exec();
|
ret = loop->exec();
|
||||||
|
|
||||||
camera->stop();
|
camera->stop();
|
||||||
|
out:
|
||||||
|
camera->freeBuffers();
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue