カスタムUDPプロトコルを介してリモートサーバーからオーディオサンプルのストリームを受信するアプリケーションを開発しています。ストリームはサンプルの小さなシーケンスで構成され、シーケンスごとにチャネル数とレートが異なる場合があります。
私が理解しているように、ストリームのsample_specは、ストリームの作成中(、、など)にのみ設定でき、pa_simple_new
後でpa_stream_new
切り替える方法はありません。
私の質問は、PulseAudioでこれらのサンプルを再生するための最も効率的なアプローチは何でしょうか?3つのオプションがあります。
- 単一のPulseAudioストリームを保持し、サンプルシーケンスを手動でリサンプリングし、必要に応じてチャネルをミックスします(PulseAudioに同じsample_specのサンプルを供給するため)
- 単一のPulseAudioストリームを保持し、仕様が変更されたときに新しいsample_specで閉じてから再度開きます
- 使用するサンプルの種類ごとに1つずつ、多数のストリームを保持します
オプション1は多くの手作業のようであり、かなりのリソースを消費します。オプション2はひどく非効率的なようです。オプション3はおそらく最良のように見えますが、私はリソースの消費を心配しています。足りないものはありますか?