PipeWireでオーディオデバイスを構成するデバイスの階層は何ですか?

PipeWireでオーディオデバイスを構成するデバイスの階層は何ですか?

PipeWireのオーディオデバイス階層を理解しようとしています。出力を見てみるとpw-dump良いアイデアが得られますが、まだ全体的な状況を把握するのは難しいです。

私の理解によると、構造はおそらく次のようになります。

Devices: [{
    Profiles: [{
        Nodes: [{ // Sinks and Sources
            Formats: [...]
            Ports: [...] // in or out
            Routes: [...]
        }],
    }]
}]

したがって、最大の単位はデバイスです。 (例:サウンドカード)

  • デバイスには1つ以上のプロファイルがあります。 (例:アナログステレオデュプレックス、アナログステレオ入力、アナログステレオ出力、プロフェッショナルオーディオ...)
    • 構成ファイルには1つ以上のノードがあります。
      • ノードはシンク(出力)またはソース(入力)です。
      • ノードは、1つ以上の形式(s32le @ 48kHzなど)を持つことができます。
      • ノードには、1つ以上のパス(スピーカー/ヘッドフォン、内部マイク/ヘッドセットマイクなど)があります。
      • ノードは1つ以上のポートを持つことができます
        • ポートは、入力ポート(例:右マイク)または出力ポート(左スピーカー)です。

しかし、それは完全に真実ではありません。デバイスを見ると、パスはデバイスレベルで定義されているように見えます。これは、パスがプロファイルに拘束されず、ノードに拘束されないことを示します。ただし、各パスには一連のプロファイルがあるため、より複雑になります。その後、一連のルーティングレベルのデバイスがあります。

構造をよりよく説明する図はありますか?pw-dump正しい結果を得るために出力をリバースエンジニアリングするのは難しいことがわかります。

ベストアンサー1

おすすめ記事