Skip to content

Commit 016028f

Browse files
Improve webcam
1 parent 0e314c2 commit 016028f

File tree

2 files changed

+8
-4
lines changed

2 files changed

+8
-4
lines changed

c_mpos/src/webcam.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,8 +23,8 @@
2323
#define CAPTURE_HEIGHT 480
2424
#define OUTPUT_WIDTH 240 // Resize to 240x240
2525
#define OUTPUT_HEIGHT 240
26-
#define NUM_BUFFERS 2 // Revert to 2 buffers, as it achieved 2 captures
27-
#define QUEUE_RETRIES 10 // Increase retries for robustness
26+
#define NUM_BUFFERS 10 // Revert to 2 buffers, as it achieved 2 captures
27+
#define QUEUE_RETRIES 5 // Increase retries for robustness
2828
#define QUEUE_RETRY_DELAY_US 200000 // 200ms delay between retries
2929

3030
// Webcam object type

internal_filesystem/apps/com.example.camtest/assets/camtest.py

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -98,7 +98,7 @@ def try_capture():
9898
new_cam_buffer = cam.capture_grayscale()
9999
elif cam.frame_available():
100100
new_cam_buffer = cam.capture() # Returns memoryview
101-
if len(new_cam_buffer):
101+
if new_cam_buffer and len(new_cam_buffer):
102102
# print("Invalid buffer size:", len(new_cam_buffer))
103103
# cam.free_buffer()
104104
# return
@@ -200,7 +200,11 @@ def __init__(self):
200200
# webcam.init() returns (obj, capture_grayscale, deinit)
201201
self.obj, self._capture_grayscale, self._deinit = webcam.init()
202202
def capture_grayscale(self):
203-
return self._capture_grayscale(self.obj)
203+
try:
204+
return self._capture_grayscale(self.obj)
205+
except Exception as e:
206+
print(f"capture got exception {e}")
207+
self.deinit()
204208
def deinit(self):
205209
return self._deinit(self.obj)
206210

0 commit comments

Comments
 (0)