5.6. エレメントの状態

エレメントは、作成された後も、実際にはまだ何も処理を行いません。エレメントに何か処理をさせるには、エレメントの状態を変更する必要があります。GStreamer によって認識されるエレメントの状態は 4 つあり、それぞれの特定の意味を持っています。具体的には、次の 4 つの状態があります。

エレメントの状態は、関数 gst_element_set_state () を使って変更できます。エレメントを別の状態にすると、GStreamer は内部的にその間のすべての状態を経由することになります。たとえば、あるエレメントを NULL から再生中 (PLAYING) にすると、GStreamer はその間、該当するエレメントを内部的に準備完了 (READY) 状態と一時停止 (PAUSED) 状態を経由させた後、再生中 (PLAYING) 状態に移行させます。

GST_STATE_PLAYING に移行すると、パイプラインはデータを自動的に処理します。パイプラインを何らかの形で繰り返す必要はありません。内部的には、GStreamer はこのタスクを任せるためのスレッドを開始します。また、GStreamer は、GstBus を使って、パイプラインのスレッドからのメッセージをアプリケーションの独自のスレッドに振り分ける処理も行います。詳細については、第7章を参照してください。