jamulussoftware / jamulussoftware/jamulus

Add Local- and Server- buffererror detection in CChannel

Offen
#2,537 4 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen
feature request
Vorherrschende Sprache
C
Sterne
1.1k
Forks
248
Ø Merge
2 T. 3 Std.
Gemergte PRs (30 T.)
9

Beschreibung

**What is the current behaviour and why should it be changed?**

Adding JitterBuffer error detection for both client and server side errors in CChannel.
(Preparation for issue #2524. As discussed in issue #2524)
At this moment there is only a jitterbuffer error detection for the client side, implemented in CClient.
A better way of detection can be implemented in CChannel and also the protocol will be extended (fully backwards compatible, no new messages.) to provide jitterbuffer error flags for both client and server on the client side.

**Describe possible approaches**

See the discussion in issue #2524.
Pro's:
- Client can now indicate Local buffer underuns as well as Server buffer underruns, making manual buffer setting easier for most users.
- Fully backwards compatible.

Cons:
- Still no server-side buffer underrun indication when connected to old servers (But in this case the client will hide the Server Jitter Buffer Status LED.).

We will use the PROTMESSID_JITT_BUF_SIZE message with buffersize=0 to send buffer underrun information from server to client. (The other way around would also be possible, but I don't see any use for it at the server side.)
The server will always explicitly send a "buffer underrun" message during connection setup, so the client will know that the server supports this new message (since old servers never send it.).
CChannel will have Get-And-Reset functions for both flags for use by CClient.

**Has this feature been discussed and generally agreed?**

See the discussion in issue #2524.

Beitragsleitfaden

Beitragsleitfaden öffnen

Rechercherichtung

Beginne damit, die vorhandene Erkennung von Jitter-Buffer-Fehlern in CClient und die Behandlung in CChannel rund um PROTMESSID_JITT_BUF_SIZE zu lesen; sieh dir Issue #2524 zum vereinbarten Verhalten an. Implementiere die lokalen und serverseitigen Buffer-Underrun-Flags sowie deren Verwendung durch CClient mit Get-And-Reset und bewahre dabei die Kompatibilität mit älteren Servern. Fertig ist die Arbeit, wenn beide Status korrekt gemeldet werden und die Server-Fähigkeit während des Verbindungsaufbaus erkannt wird.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
c
Bereich
audio-video-rtc, networking
Issue-Typ
Feature
Schwierigkeit
4/5
Geschätzter Aufwand
3-5 Tage
Aktivitätsstatus
Ruhig
Klarheit
Größtenteils klar
Anfängerfreundlichkeit
45/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.