From 1ccf25ee102e8b52c92dbed2a7908e526ca237da Mon Sep 17 00:00:00 2001 From: Benjamin <8467845+import-benjamin@users.noreply.github.com> Date: Sun, 31 Aug 2025 16:21:40 +0200 Subject: [PATCH] fix: remove memory leak when processing gocv images --- internal/adapter/http/controls/controls.go | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/internal/adapter/http/controls/controls.go b/internal/adapter/http/controls/controls.go index 1218dae..aa27b13 100644 --- a/internal/adapter/http/controls/controls.go +++ b/internal/adapter/http/controls/controls.go @@ -57,7 +57,6 @@ func StreamVideoHandler(w http.ResponseWriter, r *http.Request) { if err != nil { http.Error(w, "Error capturing image: %v", http.StatusServiceUnavailable) } - // defer img.Close() resizedFrame := gocv.NewMat() @@ -73,7 +72,10 @@ func StreamVideoHandler(w http.ResponseWriter, r *http.Request) { if _, err := partWriter.Write(buf.GetBytes()); err != nil { log.Println("Error while processing buffer") } - + + buf.Close() + resizedFrame.Close() + img.Close() // we want to record around 10 fps // this mean every second send 10 images // Let's assume reading, encoding and writing do not consume any resources