From cfc2bdca537a92eff7ddc39a0a576eb15ae6ebd7 Mon Sep 17 00:00:00 2001 From: Martin Pulec Date: Wed, 5 Oct 2022 11:12:58 +0200 Subject: [PATCH] displays: if timeout > 0, act as nonblocking For displays not implementing timeout, take timeout > 0 as nonblocking. --- src/video_display/blend.cpp | 2 +- src/video_display/conference.cpp | 2 +- src/video_display/dvs.c | 2 +- src/video_display/multiplier.cpp | 2 +- src/video_display/openxr_gl.cpp | 2 +- src/video_display/pano_gl.cpp | 2 +- src/video_display/rpi4_out.cpp | 2 +- src/video_display/sdl.cpp | 2 +- src/video_display/sdl2.cpp | 2 +- src/video_display/unix_sock.cpp | 2 +- 10 files changed, 10 insertions(+), 10 deletions(-) diff --git a/src/video_display/blend.cpp b/src/video_display/blend.cpp index 8c9c35be5..60cf869c4 100644 --- a/src/video_display/blend.cpp +++ b/src/video_display/blend.cpp @@ -347,7 +347,7 @@ static int display_blend_putf(void *state, struct video_frame *frame, long long if (s->incoming_queue.size() >= IN_QUEUE_MAX_BUFFER_LEN) { fprintf(stderr, "blend: queue full!\n"); } - if (flags == PUTF_NONBLOCK && s->incoming_queue.size() >= IN_QUEUE_MAX_BUFFER_LEN) { + if (flags != PUTF_BLOCKING && s->incoming_queue.size() >= IN_QUEUE_MAX_BUFFER_LEN) { vf_free(frame); return 1; } diff --git a/src/video_display/conference.cpp b/src/video_display/conference.cpp index b6d49aad1..1c8ff006b 100644 --- a/src/video_display/conference.cpp +++ b/src/video_display/conference.cpp @@ -713,7 +713,7 @@ static int display_conference_putf(void *state, struct video_frame *frame, long std::unique_lock lg(s->incoming_frames_lock); if (s->incoming_frames.size() >= IN_QUEUE_MAX_BUFFER_LEN) { log_msg(LOG_LEVEL_WARNING, "[conference] queue full!\n"); - if(flags == PUTF_NONBLOCK){ + if(flags != PUTF_BLOCKING){ vf_free(frame); return 1; } diff --git a/src/video_display/dvs.c b/src/video_display/dvs.c index 43ee5219c..861e56c8d 100644 --- a/src/video_display/dvs.c +++ b/src/video_display/dvs.c @@ -500,7 +500,7 @@ static int display_dvs_putf(void *state, struct video_frame *frame, long long fl assert(s->magic == HDSP_MAGIC); pthread_mutex_lock(&s->lock); - if(s->work_to_do && flags == PUTF_NONBLOCK) { + if(s->work_to_do && flags != PUTF_BLOCKING) { pthread_mutex_unlock(&s->lock); return EWOULDBLOCK; } diff --git a/src/video_display/multiplier.cpp b/src/video_display/multiplier.cpp index ec2684666..def39617f 100644 --- a/src/video_display/multiplier.cpp +++ b/src/video_display/multiplier.cpp @@ -239,7 +239,7 @@ static int display_multiplier_putf(void *state, struct video_frame *frame, long if (s->incoming_queue.size() >= IN_QUEUE_MAX_BUFFER_LEN) { fprintf(stderr, "Multiplier: queue full!\n"); } - if (flags == PUTF_NONBLOCK && s->incoming_queue.size() >= IN_QUEUE_MAX_BUFFER_LEN) { + if (flags != PUTF_BLOCKING && s->incoming_queue.size() >= IN_QUEUE_MAX_BUFFER_LEN) { vf_free(frame); return 1; } diff --git a/src/video_display/openxr_gl.cpp b/src/video_display/openxr_gl.cpp index b1bab0ee9..6df977244 100644 --- a/src/video_display/openxr_gl.cpp +++ b/src/video_display/openxr_gl.cpp @@ -1037,7 +1037,7 @@ static int display_xrgl_putf(void *state, struct video_frame *frame, long long n s->new_frame_ready_cv.notify_one(); return 0; } - if (s->frame_queue.size() >= MAX_BUFFER_SIZE && nonblock == PUTF_NONBLOCK) { + if (s->frame_queue.size() >= MAX_BUFFER_SIZE && nonblock != PUTF_BLOCKING) { s->dispose_frame_pool.push_back(frame); s->new_frame_ready_cv.notify_one(); return 1; diff --git a/src/video_display/pano_gl.cpp b/src/video_display/pano_gl.cpp index fe267a873..324507bad 100644 --- a/src/video_display/pano_gl.cpp +++ b/src/video_display/pano_gl.cpp @@ -283,7 +283,7 @@ static int display_panogl_putf(void *state, struct video_frame *frame, long long } std::unique_lock lk(s->lock); - if (s->buffered_frames_count >= MAX_BUFFER_SIZE && nonblock == PUTF_NONBLOCK + if (s->buffered_frames_count >= MAX_BUFFER_SIZE && nonblock != PUTF_BLOCKING && frame != NULL) { vf_free(frame); printf("1 frame(s) dropped!\n"); diff --git a/src/video_display/rpi4_out.cpp b/src/video_display/rpi4_out.cpp index 4c8b68528..2c525f8d3 100644 --- a/src/video_display/rpi4_out.cpp +++ b/src/video_display/rpi4_out.cpp @@ -516,7 +516,7 @@ static int display_rpi4_putf(void *state, struct video_frame *frame, long long f return 0; } - if (s->frame_queue.size() >= MAX_BUFFER_SIZE && flags == PUTF_NONBLOCK) { + if (s->frame_queue.size() >= MAX_BUFFER_SIZE && flags != PUTF_BLOCKING) { log_msg(LOG_LEVEL_VERBOSE, "nonblock putf drop\n"); vf_recycle(frame); std::lock_guard(s->free_frames_mut); diff --git a/src/video_display/sdl.cpp b/src/video_display/sdl.cpp index e4bd68c55..03afa9e19 100644 --- a/src/video_display/sdl.cpp +++ b/src/video_display/sdl.cpp @@ -632,7 +632,7 @@ static int display_sdl_putf(void *state, struct video_frame *frame, int nonblock } std::unique_lock lk(s->lock); - if (s->buffered_frames_count >= MAX_BUFFER_SIZE && nonblock == PUTF_NONBLOCK + if (s->buffered_frames_count >= MAX_BUFFER_SIZE && nonblock != PUTF_BLOCKING && frame != NULL) { vf_free(frame); printf("1 frame(s) dropped!\n"); diff --git a/src/video_display/sdl2.cpp b/src/video_display/sdl2.cpp index 2f24f6e10..06882d27a 100644 --- a/src/video_display/sdl2.cpp +++ b/src/video_display/sdl2.cpp @@ -714,7 +714,7 @@ static int display_sdl2_putf(void *state, struct video_frame *frame, long long n return 0; } - if (s->buffered_frames_count >= MAX_BUFFER_SIZE && nonblock == PUTF_NONBLOCK + if (s->buffered_frames_count >= MAX_BUFFER_SIZE && nonblock != PUTF_BLOCKING && frame != NULL) { s->free_frame_queue.push(frame); LOG(LOG_LEVEL_INFO) << MOD_NAME << "1 frame(s) dropped!\n"; diff --git a/src/video_display/unix_sock.cpp b/src/video_display/unix_sock.cpp index fc93a3596..32f5f9025 100644 --- a/src/video_display/unix_sock.cpp +++ b/src/video_display/unix_sock.cpp @@ -254,7 +254,7 @@ static int display_unix_sock_putf(void *state, struct video_frame *frame, long l std::unique_lock lg(s->lock); if (s->incoming_queue.size() >= IN_QUEUE_MAX_BUFFER_LEN){ - if(flags == PUTF_NONBLOCK){ + if(flags != PUTF_BLOCKING){ log_msg(LOG_LEVEL_WARNING, MOD_NAME "queue full!\n"); return 1; }