Hacktoberfest 2026: le issue che i maintainer hanno segnato per ottobre, aperte e adatte ai principianti. Sfoglia le issue Hacktoberfest

render: flush queued audio on a processor change so effects are heard almost at once

Aperta
#184 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
5/5
Tempo stimato
Più di una settimana
Idoneità per principianti
8/100
Tipo di issue
Funzionalità
Chiarezza
Abbastanza chiara
Stato di attività
Attiva
Stack tecnologico
ios, macos, swift

Direzione di ricerca

The feeder and processor chain are the starting points, and the design question is whether AVSampleBufferAudioRenderer.flush(fromSourceTime:) can replace a full flush on a processor change. Read docs/usage.md around line 319 and ADR 0026 for the current latency, plus ADR 0009 and ADR 0018 for seek and flush costs. Done means a new ADR that settles the approach, not a patch.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

idea

Processors (EQ, ReplayGain, Voice Boost, skip-silence) run when audio is written. A change is therefore heard one feed depth (2 s) plus the route's output latency later (docs/usage.md:319, ADR 0026).

AVSampleBufferAudioRenderer.flush(fromSourceTime:) discards queued audio after a given time without an audible gap (WWDC17 509). On a processor change, the feeder could flush from the clock plus a small margin and re-feed from there through the new chain. Effects would then be heard almost at once, whatever the depth.

That would also make a deep output buffer safe, which demand-driven feeding on AirPlay 2 would need: there the renderer asks for up to minutes ahead.

Costs and questions:

  • flush() blocks 74-80 ms (ADR 0018); unverified for flush(fromSourceTime:).
  • The re-feed needs the PCM from before processing, or a re-decode from the flush time (the sample-accurate seek, ADR 0009, allows it).
  • The fake output needs to model a partial flush.

Needs its own ADR. 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

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di timusus/AudioPlaybackKit

Tutte le issue di timusus/AudioPlaybackKit

Issue simili

Altre issue su C

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.