AJM のコーデック
AJM は ATRAC9、MP3、MPEG-4 AAC、Opus をデコードします。各コーデックのインスタンスは独自の状態を持ち、不明なコーデックは、無音の成功として報告するのではなく拒否します。
2026年10月10日 までのリポジトリノート
コーデックとサンプル形式
コーデック 0 は minimp3 による MP3 です。コーデック 1 は ATRAC9 です。コーデック 2 は FAAD2 による MPEG-4 AAC で、ADTS、raw、SAF のジョブに対応します。コーデック 24 は libopus による Opus です。ATRAC9 の出力は、符号付き 16 ビット、符号付き 32 ビット、浮動小数点、平面形式のいずれかです。初期化、コーデック情報、ギャップレスのメタデータ、ストリームのバイト数、デコードしたフレーム数、合計サンプル数のサイドバンドは保たれます。
ジョブは連続したバッファか分割されたバッファを使えます。インスタンスの状態はデコーダーごとなので、2 つのストリームがビットリザーバーを共有することはありません。レガシーの libSceAudiodec の経路は、独自の初期化、作成、リセット、削除の呼び出しの後、ATRAC9、MP3、AAC に同じバックエンドを使います。
ムービーの音声とプレビュー
観測した PlayStation 5 の多チャンネル ATRAC9 のレイアウトは、インターリーブされたモノラルストリームとしてデコードします。Ghost of Yōtei のムービーの音声が正しい位置で始まるのは、このレイアウトのおかげです。ムービーに含まれるハプティクストラックは無音でタイミングだけ合わせます。そこからコントローラーの振動を合成することはしません。
FSB を使うフォールバックのプレビューは、48 kHz のミックスにリサンプリングし、短いフェードを付けて、一度だけ流します。同じクリップの 2 つ目のコピーはエコーになるため、PS5_AUDIO_FALLBACK_MIX=1 でない限り、実行中の AudioOut のグラフにはミックスしません。
ライセンス
ATRAC9、FAAD2、minimp3、Opus はサードパーティのデコーダーです。それぞれのライセンスはリポジトリの docs/licenses ディレクトリとポータブル版のビルドに同梱しています。エミュレーター自身のコードは GPL-3.0-or-later のままです。
実装した 4 つの値以外のコーデック番号はエラーです。ゼロで埋めたバッファと成功コードを返すと、タイトルはストリームがデコードされたと信じてしまいます。
実装済みのこと
- インスタンスごとのデコーダーの状態を伴う ATRAC9、MP3、MPEG-4 AAC、Opus。
- 符号付き 16 ビット、符号付き 32 ビット、浮動小数点、平面形式の PCM としての ATRAC9 の出力。
- ギャップレスとサイドバンドのメタデータ、連続と分割の入力バッファ。
- libSceAudiodec の背後にある共有のバックエンド。
まだ足りないこと
- 不明な AJM のコーデック番号は拒否します。
- ハプティクストラックは無音のままです。そこから振動をエミュレートしません。
- フォールバックのプレビューのミックスは、PS5_AUDIO_FALLBACK_MIX=1 でない限り無効です。
関連するしくみ
これらのページについて