invalidate doesnt update it:

This commit is contained in:
Thomas Farstrike
2025-05-14 12:00:24 +02:00
parent 3cf4ff8236
commit 416316ad5a
2 changed files with 15 additions and 15 deletions
+3 -3
View File
@@ -174,9 +174,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_bytes(self->gray_buffer, OUTPUT_WIDTH * OUTPUT_HEIGHT);
@@ -101,24 +101,24 @@ def try_capture():
else:
new_cam_buffer = cam.capture() # Returns memoryview for other camera
if new_cam_buffer and len(new_cam_buffer) == 240 * 240:
# Update image descriptor with new buffer
#image.set_src(None)
#image_dsc.data = None
# Set image source to update LVGL
image_dsc.data = new_cam_buffer
#image.set_src(image_dsc)
# Free the previous buffer (if any)
if current_cam_buffer is not None:
if use_webcam:
pass
#webcam.free_buffer(cam) # Explicitly free webcam buffer
#pass
webcam.free_buffer(cam) # Explicitly free webcam buffer
else:
cam.free_buffer() # Free other camera buffer
else:
pass
#print("current_cam_buffer is None, not freeing...")
#current_cam_buffer = None
#current_cam_buffer = new_cam_buffer # Store new buffer reference
print("current_cam_buffer is None, not freeing...")
current_cam_buffer = None
current_cam_buffer = new_cam_buffer # Store new buffer reference
# Update image descriptor with new buffer
# Set image source to update LVGL
image_dsc.data = None # this doesnt help
#image.set_src(None) this crashes it
image_dsc.data = current_cam_buffer
image.invalidate()
#image.set_src(image_dsc)
else:
print("Invalid buffer size:", len(new_cam_buffer))
if use_webcam: