全二重PCMブリッジ

全二重PCMブリッジ

私は2つのハードウェアPCMを持つLinuxを実行する組み込みデバイスを開発しています4.14.79。 1つはBluetoothチップに接続され、もう1つはGSM電話に接続されます。

bt-in -> gsm-out私の目標は、通話を処理するために全二重構成でこれらのストリーム(および)を接続することです。gsm-in -> bt-out実際、Bluetoothは電話に接続されています。

私のコーデックは機能しており、両方のカードで使用できますaplayarecord私は(パフォーマンスのために)カーネル側でこれらのチャンネルを一緒に接続するソリューションを探しています。これまで私が見つけたもの:

  • 差動パルスコード変調:ドライバを交換するためにDTを編集しようとしましたが、まだsimple-scu-card互いに通信しない2つの別々の(動作する)カードが残ります。次のステップはサウンドドライバを調整することです。
  • snd-aloop:私が知っている限り、私の場合はこの方法は適用されません。私のカードをカードインターフェイスhw:0,0に接続する方法がわかりません。Loopback
  • alsaloop:userspace、しかしうまくいきませんでした。
alsaloop -P hw:1,0 -C hw:0,0 --format S16_LE -c 2 -r 8000 -t 500000

上記のコマンドを実行すると、1フレーム長のカチッと音がしますalsaloop。また、他の期間とバッファサイズを試してみましたが、変更はありませんでした(xrunに奇妙な値があると予想されます)。まもなく追加テストを行う予定です。

Jack限られたリソースのためにおよび/または使用を避けたいと思いますpulseaudio

私の質問は:以前私と同じ問題を抱えていた人がいて、私にいくつかのリソース/文書/例を提供できる人はいますか?

どんなアドバイスも本当にありがとうございます。

気づく:私はこのトピックを数週間フォローしました。この質問に欠落している情報がある場合はお知らせください。

関連情報