From 27096fc20c6affcae896edfd9890776aba4d75a3 Mon Sep 17 00:00:00 2001 From: Maxim Devaev Date: Sun, 23 Aug 2026 12:56:12 +0300 Subject: [PATCH] janus: request camera key frame every 2 seconds --- janus/src/client.c | 6 ++++++ janus/src/client.h | 2 ++ 2 files changed, 8 insertions(+) diff --git a/janus/src/client.c b/janus/src/client.c index 8b0263f..5f66380 100644 --- a/janus/src/client.c +++ b/janus/src/client.c @@ -171,11 +171,17 @@ void us_janus_client_recv(us_janus_client_s *client, janus_plugin_rtp *packet) { retry = true; // fall through case US_RUR_DEPACKETIZATION_FAILED: + client->last_key_req_ts = us_get_now_monotonic(); client->gw->send_pli(client->session); break; } } while (retry); } + const ldf now_ts = us_get_now_monotonic(); + if (client->last_key_req_ts + 2 < now_ts) { + client->last_key_req_ts = now_ts; + client->gw->send_pli(client->session); + } } else { if (header->type == US_RTP_OPUS_PAYLOAD && atomic_load(&client->transmit_aplay)) { if (seq >= client->aplay_seq_next || (client->aplay_seq_next - seq) > 50) { diff --git a/janus/src/client.h b/janus/src/client.h index e535a00..0d8df18 100644 --- a/janus/src/client.h +++ b/janus/src/client.h @@ -64,6 +64,8 @@ typedef struct { us_rtpc_s *rtpc; us_ring_s *vplay_enc_ring; + ldf last_key_req_ts; + US_LIST_DECLARE; } us_janus_client_s;