第 6章ビン

ビン (bin) はコンテナエレメントです。ビンにはエレメントを追加することができます。ビンそれ自体もエレメントなので、ビンはほかのエレメントとまったく同様に扱うことができます。換言すれば、前の章 (エレメント) で説明した内容はすべて、ビンにもあてはまります。

6.1. ビンとは

ビンを使うと、リンクされた複数のエレメントをまとめて 1 つの論理的なエレメントを作成することができます。論理的なエレメントを作成した後は、個々のエレメントについて考慮する必要はなく、ただ 1 つのエレメント、すなわちビンだけを扱えばよいことになります。この仕組みは、複雑なパイプラインを構築する場合に大きな威力を発揮します。なぜなら、パイプラインをいくつかの小さなチャンクに分割することができるからです。

ビンは、その中に含まれているエレメントの管理も行います。ビンは、その中をデータがどのように流れるかを把握し、このデータフローのための最適なプランを生成します。プランの生成は、GStreamer における最も込み入った手順の 1 つです。スケジューリングと呼ばれるこのプロセスについては、項16.2 で詳しく取り上げます。

図 6-1. いくつかのエレメントを含むビン

GStreamer プログラマが利用できる特別な種類のビンが 1 つあります。それはパイプラインです。