From 9f25ac59fc3f8c21b0fa4e3a0653b2022d6843f6 Mon Sep 17 00:00:00 2001 From: zarazaex69 Date: Thu, 28 May 2026 02:42:50 +0300 Subject: [PATCH] perf(videochannel): reduce ack timeout and multiplier --- internal/transport/videochannel/transport.go | 4 ++-- internal/transport/videochannel/transport_unit_test.go | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/internal/transport/videochannel/transport.go b/internal/transport/videochannel/transport.go index ed9abcf..2b41a46 100644 --- a/internal/transport/videochannel/transport.go +++ b/internal/transport/videochannel/transport.go @@ -23,7 +23,7 @@ import ( const ( defaultMaxPayloadSize = 16 * 1024 defaultFragmentSize = 256 - defaultAckTimeout = 1 * time.Second + defaultAckTimeout = 300 * time.Millisecond defaultFrameInterval = 40 * time.Millisecond defaultConnectTimeout = 30 * time.Second maxSendAttempts = 20 @@ -301,7 +301,7 @@ func perAttemptAckTimeout(fragments, fps int) time.Duration { fps = 25 } frameInterval := time.Second / time.Duration(fps) - estimated := time.Duration(fragments) * frameInterval * 3 + estimated := time.Duration(fragments) * frameInterval * 2 if estimated < defaultAckTimeout { return defaultAckTimeout } diff --git a/internal/transport/videochannel/transport_unit_test.go b/internal/transport/videochannel/transport_unit_test.go index 25169fc..e1f9003 100644 --- a/internal/transport/videochannel/transport_unit_test.go +++ b/internal/transport/videochannel/transport_unit_test.go @@ -262,8 +262,8 @@ func TestPerAttemptAckTimeoutScalesWithFragments(t *testing.T) { t.Fatalf("perAttemptAckTimeout(2,25) = %v, want %v", got, defaultAckTimeout) } - // 16 fragments @ 25 FPS: 16 * 40ms * 3 = 1920ms. - if got, want := perAttemptAckTimeout(16, 25), 1920*time.Millisecond; got != want { + // 16 fragments @ 25 FPS: 16 * 40ms * 2 = 1280ms. + if got, want := perAttemptAckTimeout(16, 25), 1280*time.Millisecond; got != want { t.Fatalf("perAttemptAckTimeout(16,25) = %v, want %v", got, want) }