From b3e4ea9c0f3a32238949c9c4545401b9108b88d0 Mon Sep 17 00:00:00 2001 From: Maxim Devaev Date: Sun, 17 Sep 2023 03:43:08 +0300 Subject: [PATCH] issue #230: processing any freshest valid buffer --- src/ustreamer/device.c | 17 +++++++---------- 1 file changed, 7 insertions(+), 10 deletions(-) diff --git a/src/ustreamer/device.c b/src/ustreamer/device.c index f1ac523b7..0b64f3914 100644 --- a/src/ustreamer/device.c +++ b/src/ustreamer/device.c @@ -366,18 +366,15 @@ int us_device_grab_buffer(us_device_s *dev, us_hw_buffer_s **hw) { buf_got = true; } else { - if(errno == EAGAIN) { - if(broken) { - return -2; - } else if(buf_got) { - break; - } else { - continue; + if (errno == EAGAIN) { + if (buf_got) { + break; // Process any latest valid frame + } else if (broken) { + return -2; // If we have only broken frames on this capture session } - } else { - US_LOG_PERROR("Can't grab device buffer"); - return -1; } + US_LOG_PERROR("Can't grab device buffer"); + return -1; } } while (true);