test(e2e): tune videochannel params and reduce chunk timeout

This commit is contained in:
zarazaex69
2026-05-28 13:19:14 +03:00
parent b190c8c878
commit 33f46460dc
4 changed files with 16 additions and 12 deletions

View File

@@ -212,12 +212,10 @@ func streamPatternForDuration(conn net.Conn, duration time.Duration, chunkSize i
if chunkSize <= 0 {
chunkSize = 4096
}
// Per-chunk roundtrip deadline. Videochannel uses per-fragment acks
// with up to 20 retransmit attempts; during SFU renegotiation frames
// can be lost for several seconds, triggering the full retransmit
// cycle (~40s worst case). 45s covers that while still catching
// genuine stalls within a reasonable time.
const chunkTimeout = 45 * time.Second
// Per-chunk roundtrip deadline. Slow transports (videochannel) can
// take seconds+ per chunk in practice; 15s gives ample margin
// without making genuine stalls hang forever.
const chunkTimeout = 15 * time.Second
start := time.Now()
deadline := start.Add(duration)

View File

@@ -79,7 +79,7 @@ var (
)
realE2ETelemostRoom = flag.String( //nolint:gochecknoglobals // package-level state intentional
"olcrtc.real-telemost-room",
"41514917109506",
"02789996238784",
"Telemost room URL or id for real e2e",
)
realE2EWBStreamRoom = flag.String( //nolint:gochecknoglobals // package-level state intentional
@@ -935,12 +935,12 @@ func e2eTransportOptions(transportName string) transport.Options {
return videochannel.Options{
Width: 1080,
Height: 1080,
FPS: 10,
Bitrate: "1000k",
FPS: 60,
Bitrate: "5000k",
HW: videoHWNone,
QRSize: 512,
QRRecovery: "low",
Codec: "qrcode",
Codec: "tile",
TileModule: 4,
TileRS: 20,
}

View File

@@ -127,6 +127,12 @@ func (s *Session) handleCommonMessages(msg map[string]any, uid string) {
if _, ok := msg["updateDescription"]; ok {
s.sendAck(uid)
}
if _, ok := msg["slotsConfig"]; ok {
s.sendAck(uid)
}
if _, ok := msg["slotsMeta"]; ok {
s.sendAck(uid)
}
if _, ok := msg["vadActivity"]; ok {
s.sendAck(uid)
}

View File

@@ -81,9 +81,9 @@ func (d *goDecoder) PushSample(sample []byte) error {
frame, err := d.dec.Decode(sample)
if err != nil {
if errors.Is(err, vp8.ErrNoReference) {
return nil // skip inter-frames until keyframe arrives
return nil
}
return nil // skip undecodable frames (e.g. from other participants)
return nil
}
gray := frame.Grayscale()
select {