<html><head><meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<meta name="Generator" content="Microsoft Exchange Server">
<!-- converted from text -->
<style>.EmailQuote { margin-left: 1pt; padding-left: 4pt; border-left: #800000 2px solid; }</style></head>
<body>
<font size="2"><div class="PlainText">If the camera device is stopped, there may still be requests within<br>
'data->queuedRequests_' that are mistakenly never popped. If this is the<br>
case, libcamera terminates with the assertion<br>
'ASSERT(data->queuedRequests_.empty())'.<br>
<br>
Walk over the pending queued requests, destroy the info frames and<br>
complete the requests to ensure that no requests are left behind.<br>
<br>
Co-developed-by: Lukas Riezler <lukas.riezler@wolfvision.net><br>
Signed-off-by: Lukas Riezler <lukas.riezler@wolfvision.net><br>
Signed-off-by: Javier Carrasco <javier.carrasco@wolfvision.net><br>
<br>
---<br>
This is my first patch for libcamera, apologies for anything I might<br>
have overlooked from the "Submitting Patches" section in the docs.<br>
<br>
There is already a patch to fix a similar issue for swISP[1], which<br>
adresses a bug tracked on Bugzilla[2]. The latter contains some mentions<br>
to the possibility of having the same issue for rkisp1, and that is what<br>
we are observing on our RK3568-based system. I did not add a 'Bug:' tag<br>
as [2] addresses a different pipeline, but the problem seems to be the<br>
same.<br>
<br>
The developers involved in this fix are by no means libcamera experts,<br>
and we have tried to follow a similar approach as in [1] by walking over<br>
pending requests and completing them before stopDevice() is completed.<br>
The proposed patch fixes the issue, but we are open to any suggestions<br>
and improvements.<br>
<br>
Link: <a href="https://patchwork.libcamera.org/patch/21537/">https://patchwork.libcamera.org/patch/21537/</a> [1]<br>
Link: <a href="https://bugs.libcamera.org/show_bug.cgi?id=234">https://bugs.libcamera.org/show_bug.cgi?id=234</a> [2]<br>
---<br>
 src/libcamera/pipeline/rkisp1/rkisp1.cpp | 7 +++++++<br>
 1 file changed, 7 insertions(+)<br>
<br>
diff --git a/src/libcamera/pipeline/rkisp1/rkisp1.cpp b/src/libcamera/pipeline/rkisp1/rkisp1.cpp<br>
index c02c7cf3..efa7dbd5 100644<br>
--- a/src/libcamera/pipeline/rkisp1/rkisp1.cpp<br>
+++ b/src/libcamera/pipeline/rkisp1/rkisp1.cpp<br>
@@ -997,6 +997,13 @@ void PipelineHandlerRkISP1::stopDevice(Camera *camera)<br>
                                 << "Failed to stop parameters for " << camera->id();<br>
         }<br>
<br>
+       while (!data->queuedRequests_.empty()) {<br>
+               Request *req = data->queuedRequests_.front();<br>
+               RkISP1FrameInfo *info = data->frameInfo_.find(req);<br>
+               data->frameInfo_.destroy(info->frame);<br>
+               completeRequest(req);<br>
+       }<br>
+<br>
         ASSERT(data->queuedRequests_.empty());<br>
         data->frameInfo_.clear();<br>
<br>
--<br>
2.43.0<br>
<br>
</div></font>
<p style="font-size: 10pt; font-family: Calibri, Helvetica, Arial, sans-serif; color: rgb(133, 133, 133);"><span style="font-weight: bolder;">Javier Carrasco</span><br>R&D Engineer<br><span style="font-size: 13.3333px;">Mail: </span><a href="mailto:%7BE-mail%7D" style="text-decoration-line: none; background-color: rgb(255, 255, 255); font-size: 13.3333px;"><font color="#953735">javier.carrasco@wolfvision.net</font></a></p><p style="font-family: Calibri, Helvetica, Arial, sans-serif; color: rgb(133, 133, 133);"><font color="#953735" style="font-size: 13.3333px;"><span style="font-weight: bolder;">WolfVision GmbH</span></font><br style="font-size: 13.3333px;"><span style="font-size: 13.3333px;">Oberes Ried 14 | 6833 Klaus | &#xD6;sterreich</span><br style="font-size: 13.3333px;"><span style="font-size: 13.3333px;">T: </span><a href="tel:+43552352250" style="text-decoration-line: none; font-size: 13.3333px;"><font color="#953735">+43 5523 52250</font></a></p><p style="font-size: 10pt; font-family: Calibri, Helvetica, Arial, sans-serif; color: rgb(133, 133, 133);"><span style="font-size: 13.3333px;">Webpage: </span><a href="https://www.wolfvision.com/" style="background-color: rgb(255, 255, 255); font-size: 13.3333px;"><font color="#953735">www.wolfvision.com</font></a><span style="font-size: 13.3333px;"> | </span><a title="" href="https://www.wolfvision.com/green" style="background-color: rgb(255, 255, 255); font-size: 13.3333px;"><font color="#953735">www.wolfvision.com/green</font></a><span style="font-size: 13.3333px;"></span><br style="font-size: 13.3333px;"><span style="font-size: 8pt;">Firmenbuch / Commercial Register: FN283521v Feldkirch/Austria</span></p><p style="font-size: 10pt; font-family: Calibri, Helvetica, Arial, sans-serif; color: rgb(133, 133, 133);"><a href="https://marketing.wolfvision.com/l/908602/2024-10-24/by7n7" title="" style="background-color: rgb(255, 255, 255); font-family: Arial; font-size: 12px;"><img src="cid:registernow-signatur_ise25_v1_def26d5c-56fe-418c-a169-3703386ee9c5.jpg" border="0" id="0.wayectog05" alt="RegisterNow-Signatur_ISE25_v1.jpg"></a><a href="https://info.wolfvision.com/ise/?utm_source=email&utm_medium=referral&utm_campaign=ise2024&utm_content=signature" title="" style="background-color: rgb(255, 255, 255); font-family: Arial; font-size: 12px;"></a><font color="#858585" face="Calibri, Helvetica, Arial, sans-serif" style="font-size: 12px;"><span style="font-size: 13.3333px;"><br></span></font><span style="color: rgb(33, 37, 41); font-family: Arial; font-size: 12px; font-weight: bolder;"><span style="font-size: 10pt; color: rgb(35, 79, 149);">See our new solutions LIVE in Barcelona at ISE booth 3N500<br></span></span><span style="color: rgb(33, 37, 41); font-size: 13.3333px;"><font color="#234f95"><span style="font-weight: bolder;"><span style="font-family: Arial;">Use our discount code </span><span style="font-family: Arial;">QK7Z38BS</span><span style="font-family: Arial;"> to secure your free ticket </span><a href="https://marketing.wolfvision.com/l/908602/2024-10-24/by7n7" title="" style="font-family: Arial;">here</a><span style="color: rgb(185, 30, 43);"><span style="font-family: Calibri;"> </span></span></span></font></span></p></body>
</html>