2016-06-17 6 views
1

私は、Kurentoグループコールアプリケーション用のオーディオを処理するカスタムモジュールをいくつか作成しました。私が直面していますKurento:カスタムモジュールBの操作によってブロックされたカスタムモジュールAからのイベント

Custom module arrangement

問題は画像にModule Aによって発生したイベントがModule Cによってブロックされていることです。 Module C'sインターネット操作が完了すると、イベントがアプリケーションサーバーに到着します。私はウェブサービスを呼び出すためにカールを使用しています。

Module Aからの私の出来事が遅れている/ブロックされている理由を誰でも説明できますか?

答えて

1

gstreamerが機能するためです。 HTTP要求を行うために使用しているスレッドは、モジュールAのイベントをプッシュしているスレッドをブロックしています。

HTTP要求をモジュール上で行うことを警告したと思います。特に、ストリーミングスレッド。一般に、ストリーミングスレッドは、他のブロッキング操作ではなく、メディアに使用する必要があります。

+0

イメージでは、出力メディアを「モジュールA」、「HubPort」、および「モジュールB」に接続します。これは、出力メディアのフォーク/パラレル処理ではありませんか?また、Webサービスの要求は、モジュール内部の別のp_threadから行われます。 –

+0

はい、並列処理です(つまり、別のスレッドが使用されています)が、格納できるバッファの量に達したときに同期化されている限り(バッファが渡されているため)、他のスレッドも停止します。 – santoscadenas

+0

問題を解決しましたか?私の答えは助けてくれましたか? – santoscadenas

関連する問題