web-dev-qa-db-ja.com

XRunとは何ですか?

私はそれらについて何度か読んだことがありますが、jackでバッファサイズを低く設定しすぎたり、オーディオアプリケーションを終了したりしたときに、自分で遭遇しました。 XRunが何であるかを説明する人はいません。誰かがXRunを明確にして定義を与えることができますか?それは何ですか、そしておそらくそれらはどのように引き起こされますか?

XRunエラーの例を次に示します。

Mon Mar 16 12:32:23 2015: ERROR: JackEngine::XRun: client = <AUDIO APPLICATION> was not finished, state = Running
Mon Mar 16 12:32:23 2015: ERROR: JackAudioDriver::ProcessGraphAsyncMaster: Process error

アプリケーションを<AUDIO APPLICATION>に置き換えたことに注意してください

6
TomTom

どうやら (ubuntu forums thread)

それはバッファのアンダーまたはオーバーランであり、Xはアンダーまたはオーバーを表します。これは、システムが一部のバッファーを時間内に処理しなかったため、一部のデータが失われたことを示しています。これは、サウンドカードが着信バッファーを非常に高速に処理する(オーバーラン)ような非常に小さいバッファーサイズで実行する場合に特に当てはまります。一部のチップは小さなバッファーサイズに対応できないため、サウンドチップによる処理を容易にするためにバッファー長を増やす必要があります。

3
sendmoreinfo

Alsa Wiki から公式ドキュメントを追加するには:

「xrun」は、バッファーアンダーランまたはバッファーオーバーランのいずれかです。どちらの場合も、オーディオアプリは、ALSAオーディオバッファーにデータを配信するのに十分な速度でなかったか、ALSAオーディオバッファーからのデータを処理するのに十分な速度ではありませんでした。通常、xrunはパチパチまたはポップとして聞こえます。

Jackの下でxrunを最小化するために、さまざまなカーネルパッチと戦略が利用可能です。カーネルの横取りとRealtime Linux Security Module。執筆時点(2004年7月)では、これらの戦略は少し流動的な状態にあります。最新については http://jackit.sourceforge.net/docs/faq.php#a5 を参照してください。

Alsaの最近のバージョンでは、procツリーを介してxrunをログに記録してデバッグする手段が提供されています。

Xrunsのデバッグへのリンクは壊れていますが、いくつかの情報 here が見つかりました。

2
bluenote10