render: flush queued audio on a processor change so effects are heard almost at once
まだ誰も着手していません。
評価
- 難易度
- 5/5
- 見積もり時間
- 1週間以上
- 初心者へのやさしさ
- 8/100
- issue の種類
- 機能追加
- 明瞭さ
- おおむね明確
- 活発さ
- 活発
- 技術スタック
- ios, macos, swift
調査の方向性
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.
索引モデルが issue の本文から書いたものです。
説明
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 forflush(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.
- 主要言語
- C
- スター
- 0
- フォーク
- 0
- PR マージ指標
- 30日以内にマージされた PR はありません
環境構築
- Dockerfile・Docker Compose ファイルなし
- プルリクエストのテンプレートあり
- コントリビューションガイドを読む
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
timusus/AudioPlaybackKit のほかの issue
-
idea
難易度 4/5 3〜5日 初心者へのやさしさ 35/100
timusus/AudioPlaybackKit#185 ·
-
enhancement idea
難易度 5/5 1週間以上 初心者へのやさしさ 35/100
timusus/AudioPlaybackKit#172 ·
timusus/AudioPlaybackKit の issue をすべて見る
似ている issue
-
backlog bug
難易度 2/5 1〜3時間 初心者へのやさしさ 75/100
EchoTools/nevr-runtime#653 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 75/100
InfiniTimeOrg/InfiniTime#2492 ·
-
難易度 2/5 1〜3時間 初心者へのやさしさ 80/100
メンテナーはふだん 1 日以内に返信
-
system: coco
難易度 1/5 1時間未満 初心者へのやさしさ 90/100
FujiNetWIFI/fujinet-config#274 ·
メンテナーはふだん 1 日以内に返信
-
base-files: 82_config_generate: regenerate /etc/board.json if 0-bytes / truncated after power cutオープン
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
openwrt/openwrt#25940 · コメント 5 件 ·
メンテナーはふだん 1 日以内に返信