From 2a24f7f1961eca6037f074bb6c828333a79d1975 Mon Sep 17 00:00:00 2001 From: zarazaex69 Date: Fri, 1 May 2026 10:16:36 +0300 Subject: [PATCH] fix: change vp8Keepalive from P-frame to keyframe --- internal/transport/vp8channel/transport.go | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/internal/transport/vp8channel/transport.go b/internal/transport/vp8channel/transport.go index b894e7a..9c593f1 100644 --- a/internal/transport/vp8channel/transport.go +++ b/internal/transport/vp8channel/transport.go @@ -32,11 +32,12 @@ var ( ErrTransportClosed = errors.New("vp8channel transport closed") ) -// vp8Keepalive is a minimal VP8 inter-frame (P-frame, P-bit=1) used as -// idle filler. It must not be a keyframe, otherwise the SFU treats it as -// a key reference and forwards it aggressively to all subscribers. +// vp8Keepalive is a minimal VP8 keyframe used as idle filler. It must be +// a keyframe (P-bit=0) so that the SFU/decoder has a valid reference and +// forwards subsequent frames; switching to a P-frame here causes the SFU +// to drop the entire stream until a keyframe arrives. var vp8Keepalive = []byte{ - 0x31, 0x01, 0x00, 0x9d, 0x01, 0x2a, 0x10, 0x00, + 0x30, 0x01, 0x00, 0x9d, 0x01, 0x2a, 0x10, 0x00, 0x10, 0x00, 0x00, 0x47, 0x08, 0x85, 0x85, 0x88, 0x99, 0x84, 0x88, 0xfc, }