2016-05-13 38 views
2

メッセージ処理/イベント処理のコンテキストでパイプラインバスについて語っているGStreamerアプリケーション開発者マニュアルは、gst_bus_add_watch()とg_signal_connect )。これらの2つの機能は互換性があるようです。アプリケーションのマニュアルは言う:gst_bus_add_watch()とg_signal_connect()の相違点

デフォルトのGLibメインループの統合を使用している場合、あなたは、代わりに時計を装着すると、 がバス上の「メッセージ」信号に接続できることに注意してください。

27ページ。これらの2つの機能の違いは何ですか?また、どのようなコンテキストで役立ちますか?これらの関数で登録したコールバックを使用するのは誰ですか?要素自体がコールバックを呼び出しますか?

答えて

1

gst_bus_add_watch()を使用している場合は、メッセージが利用可能になったときに呼び出されるコールバックを提供します。

gst_bus_add_signal_watch()を呼び出すと、GSourceをメインループに登録するデフォルトのコールバックが登録されます。これにより、信号の使用が可能になります。

機能的には同等ですが、たとえばglib/gtkベースのアプリケーションを書くと、どこでもシグナルを使用することで、コードの一貫性を高めることができます。

+0

私はgst_bus_add_signal_watch()ではなくg_signal_connect()について尋ねました。これらの2つの機能は同等ですか? – nirvanaswap

+0

これらは同じではありませんが、効果は似ています。 gst_bus_add_signal_watch()を呼び出さずにg_signal_connect()を使用することはできないため、gst_bus_add_signal_watch()を指摘しました。 – ensonic

関連する問題