memoryview works sortof but hangs

This commit is contained in:
Thomas Farstrike
2025-05-14 12:14:34 +02:00
parent 0a7e4f4285
commit 0e57b10dbb
2 changed files with 8 additions and 6 deletions
+3 -3
View File
@@ -163,9 +163,9 @@ static mp_obj_t capture_frame(webcam_obj_t *self) {
yuyv_to_grayscale_240x240(self->buffers[buf.index], self->gray_buffer, WIDTH, HEIGHT);
char filename[32];
snprintf(filename, sizeof(filename), "frame_%03d.raw", self->frame_count++);
save_raw(filename, self->gray_buffer, OUTPUT_WIDTH, OUTPUT_HEIGHT);
//char filename[32];
//snprintf(filename, sizeof(filename), "frame_%03d.raw", self->frame_count++);
//save_raw(filename, self->gray_buffer, OUTPUT_WIDTH, OUTPUT_HEIGHT);
mp_obj_t result = mp_obj_new_memoryview(0x01, OUTPUT_WIDTH * OUTPUT_HEIGHT, self->gray_buffer);
@@ -99,7 +99,9 @@ def try_capture():
if new_cam_buffer and len(new_cam_buffer) == 240 * 240:
image_dsc.data = new_cam_buffer # Update image descriptor
image.set_src(image_dsc) # Update LVGL image
current_cam_buffer = None # Clear reference to allow GC
#if current_cam_buffer is not None:
# webcam.free_buffer(cam) # Free the old buffer
#current_cam_buffer = new_cam_buffer # Clear reference to allow GC
else:
print("Invalid buffer size:", len(new_cam_buffer))
@@ -120,8 +122,8 @@ def try_capture_old():
#current_cam_buffer = None # Clear reference to allow GC
#image.invalidate() #does not work
# Free the previous buffer (if any) after setting new data
if current_cam_buffer is not None and not use_webcam:
cam.free_buffer() # Free the old buffer
#if current_cam_buffer is not None and not use_webcam:
# cam.free_buffer() # Free the old buffer
current_cam_buffer = new_cam_buffer # Store new buffer reference