第 13章インタフェース

項5.3 では、アプリケーションとエレメントの間でやり取りを行う簡単な方法として、GObject のプロパティを使う方法について説明しました。このとき使用したメソッドは、簡単で直接的な設定には十分ですが、取得や設定より込み入ったことをしようとするとうまくいきません。こうした込み入ったケースでは、GStreamer は Glib の GInterface 型をベースとするインタフェースを使います。

ここで取り上げるインタフェースのほとんどでは、サンプルコードを掲載していません。詳細については、API リファレンスを参照してください。ここでは、各インタフェースの適用対象と目的だけを説明します。

13.1. URI インタフェース

これまでに示した例は、いずれも "filesrc" エレメント経由でローカルファイルを扱うケースばかりでした。あらためて言うまでもなく、GStreamer はその他の多くの場所にあるソースをサポートしています。ただし GStreamer では、特定のネットワークソースの種類を表すエレメント名など、エレメントの具体的な実装の詳細についてはアプリケーション側で知る必要がないようにしています。そのために用意されているのが URI インタフェースで、このインタフェースを使えば、特定の URI の種類をサポートしているソースエレメントを取得することができます。URI の名前付けに関する厳密なルールはありませんが、GStreamer では、広く使われている名前付け規則に従っています。たとえば、適切なプラグインがインストール済みであれば、GStreamer sは "file:///<path>/<file>""http://<host>/<path>/<file>""mms://<host>/<path>/<file>" といった URI をサポートします。

特定の URI をサポートしているソースエレメントまたはシンクエレメントを取得するには、gst_element_make_from_uri () を使用します。このとき、URI の種類には、ソースエレメントの場合は GST_URI_SRC、シンクエレメントの場合は GST_URI_SINK を指定します。

ファイル名から URI への変換と URI からファイル名への変換には、GLib の g_filename_to_uri () および g_uri_to_filename () を使用できます。