From ad94ccca0bbed9cd8ddaaa931da2c7ed18bf060c Mon Sep 17 00:00:00 2001 From: Romain Vimont Date: Wed, 1 Mar 2023 18:33:03 +0100 Subject: [PATCH] Stop the video buffer on error If an error occurs from the video buffer thread (typically an out-of-memory error), then stop. --- app/src/video_buffer.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/app/src/video_buffer.c b/app/src/video_buffer.c index a8f7f20a..49c01839 100644 --- a/app/src/video_buffer.c +++ b/app/src/video_buffer.c @@ -93,9 +93,16 @@ run_buffering(void *data) { pts, vb_frame.push_date, sc_tick_now()); #endif - sc_video_buffer_offer(vb, vb_frame.frame); - + bool ok = sc_video_buffer_offer(vb, vb_frame.frame); sc_video_buffer_frame_destroy(&vb_frame); + if (!ok) { + LOGE("Delayed frame could not be pushed, stopping"); + sc_mutex_lock(&vb->b.mutex); + // Prevent to push any new packet + vb->b.stopped = true; + sc_mutex_unlock(&vb->b.mutex); + goto stopped; + } } stopped: