jamulussoftware / jamulussoftware/jamulus
Improve the jitter buffer
Personne n'a encore pris cette issue.
- Langage dominant
- C
- Étoiles
- 1.1k
- Forks
- 248
- Merge moyen
- 2 j 3 h
- PR mergées (30 j)
- 9
Description
The idea is:
A new jitter buffer uses a timing histogram to compute the actual jitter relative to the audio device or system clock timer.
A bit sequence will be added to all transmitted frames to improve the jitter histogram computation.
Open issues:
- What about compatibility to old Jamulus servers and clients?
- How does the new auto jitter buffer algorithm behave? For what situation is it optimized? See, e.g., https://github.com/corrados/jamulus/issues/417.
- The old algorithm was designed to measure the block error rate for different jitter buffer sizes. What is the metric for the new auto jitter buffer algorithm to set the buffer size?
- We are using an unused bit in the OPUS bit stream. Question: Why is this bit not used? Is it a reserved bit? Do we have a reference to the OPUS specification document, where this bit is mentioned? Is there a risk that at a later version of OPUS that this bit is then used by OPUS and we cannot upgrade Jamulus to a new OPUS version?
- A documentation of the algorithm should be added so that others can understand what's going on and can improve/tune the new algorithm.
A first patch is already available: https://github.com/corrados/jamulus/pull/539.
See also the discussion in the pull request: https://github.com/corrados/jamulus/pull/529#issuecomment-678292903
Guide de contribution
Ouvrir le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Piste de recherche
Commencez par examiner le premier patch de pull request #539 et la discussion dans pull request #529. Examinez l’histogramme de temporisation proposé, la séquence de bits de la trame transmise, la compatibilité avec les anciens clients et serveurs, ainsi que l’utilisation des bits OPUS. La tâche sera considérée comme terminée lorsqu’un algorithme et une métrique définitifs auront été établis, que les questions de compatibilité et de spécification auront été résolues et que l’algorithme aura été documenté.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Stack technique
- c
- Domaine
- audio-video-rtc
- Type d'issue
- Fonctionnalité
- Difficulté
- 5/5
- Temps estimé
- Plus d'une semaine
- Activité
- À l'abandon
- Clarté
- À clarifier
- Accessibilité débutants
- 20/100