2017-08-17 11 views
0

Gstreamerでコードフローを追跡するのは少し難しいです。たとえば、 'c'コードを記述すると、シーケンシャルコマンド実行が行われるので、どのステートメントを実行するかを知ることができます。しかし、Gstreamerではシーケンスがなく、ほとんどの場合、コードフローを理解するのが難しいです。GStreamer Code Flow

+0

.... ok。あなたの問題は? –

+0

コードの順序を知る方法。すなわち開始から終了まで。 – user7825639

+0

はい、複数のスレッドとイベントループを追跡することは困難です。 – Velkan

答えて

0

デバッグレベル9でログをとり、パイプラインの要素の状態遷移がどこから始まるかを知るlogs.soのchange_stateを検索します。その後、デバッグログでコードを理解しようとします。すなわち、要素の状態遷移に関してコードを理解しようとする。

上記のアプローチは、バグのみを解決しようとする場合に便利です。しかし、gstreamerを完全に理解したい場合は、最初にOOPSコンセプトのC以外のGOBJECTを知る必要があります。要素をデバッグしたい場合はまずgobjectの継承を理解してください。関数のオーバーライドがどのように行われ、chainメカニズムと呼ばれるメカニズムがもう1つあります。これらの基本的なメカニズムを理解すれば、gstreamerのコードフローは他のc/C++コードフローと同じです。