render: measure decode jitter and shrink the 2 s processed buffer toward media3's ~0.5 s
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Idoneità per principianti
- 35/100
- Tipo di issue
- Refactoring
- Chiarezza
- Abbastanza chiara
- Stato di attività
- Attiva
- Stack tecnologico
- c
- Ambito
- audio-video-rtc, performance
Direzione di ricerca
Start with Feeder.targetDepth and its resumeDepth counterpart, then read ADR 0018 for the renderer's roughly once-a-second pull and ADR 0013 for upstream read-ahead. Measure the worst gap between pumps and decode time per chunk on an older device and on the network path before changing anything. Done means a measured justification for the new depth, with resumeDepth adjusted to match and docs/usage.md:319 updated if the stated effect latency changes.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
The feeder keeps 2 s of processed PCM written ahead of the renderer clock (Feeder.targetDepth). Since #183, that is purely a cushion against decode or upstream stalls. The network cushion is really the growing-file read-ahead upstream (Shuttle2 uses 60 s, ADR 0013), unprocessed.
media3 splits it the same way: it keeps about 500 ms of PCM in the AudioTrack (DefaultAudioTrackBufferSizeProvider, DEFAULT_PCM_BUFFER_DURATION_US) and 50 s of compressed samples upstream (DefaultLoadControl). Effects are heard about one PCM depth later (docs/usage.md:319), so a shallower depth means EQ, ReplayGain and Voice Boost changes are heard sooner.
Before changing it, measure the decode jitter: the worst gap between pumps, and decode time per chunk on an older device and on the network path. The depth must outlast the renderer's roughly once-a-second pull (ADR 0018). Candidate: about 1 s, with resumeDepth scaled to match.
Superseded if flush-on-effect-change lands, since effect latency would then stop depending on depth. Context: timusus/shuttle2#1064, #183.
- Lingua principale
- C
- Stelle
- 0
- Fork
- 0
- Metriche di merge delle PR
- Nessuna PR unita negli ultimi 30g
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Ha un modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di timusus/AudioPlaybackKit
-
idea
Difficoltà 5/5 Più di una settimana Idoneità per principianti 8/100
timusus/AudioPlaybackKit#184 ·
-
Crossfade between itemsApertaenhancement idea
Difficoltà 5/5 Più di una settimana Idoneità per principianti 35/100
timusus/AudioPlaybackKit#172 ·
Tutte le issue di timusus/AudioPlaybackKit
Issue simili
-
backlog bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
EchoTools/nevr-runtime#653 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
InfiniTimeOrg/InfiniTime#2492 ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 80/100
I maintainer di solito rispondono entro 1 giorno
-
system: coco
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 90/100
FujiNetWIFI/fujinet-config#274 ·
I maintainer di solito rispondono entro 1 giorno
-
base-files: 82_config_generate: regenerate /etc/board.json if 0-bytes / truncated after power cutAperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
openwrt/openwrt#25940 · 5 commenti ·
I maintainer di solito rispondono entro 1 giorno