20.2. XML ファイルからの GstElement のロード

XML ファイルをロードする前に、GstXML オブジェクトを作成しなければなりません。GstXML オブジェクトを作成したら、保存した XML ファイルは gst_xml_parse_file (xml, filename, rootelement) メソッドを使ってロードできます。ルートエレメントは NULL にしておくことができます。次に示す例では、以前に作成した XML ファイルをロードして実行します。


#include <stdlib.h>
#include <gst/gst.h>

int 
main(int argc, char *argv[]) 
{
  GstXML *xml;
  GstElement *pipeline;
  gboolean ret;

  gst_init (&argc, &argv);

  xml = gst_xml_new ();

  ret = gst_xml_parse_file(xml, "xmlTest.gst", NULL);
  g_assert (ret == TRUE);

  pipeline = gst_xml_get_element (xml, "pipeline");
  g_assert (pipeline != NULL);
  
  gst_element_set_state (pipeline, GST_STATE_PLAYING);

  g_sleep (4);

  gst_element_set_state (pipeline, GST_STATE_NULL);

  exit (0);
}
    

gst_xml_get_element (xml, "name") を使うと、XML ファイルから特定のエレメントを取得できます。

gst_xml_get_topelements (xml) を使うと、XML ファイルに含まれるすべてのトップレベルエレメントのリストを取得できます。

ファイルのロードに加え、gst_xml_parse_docgst_xml_parse_memory を使えば、それぞれ xmlDocPtr およびインメモリバッファからもロードできます。これらのメソッドはいずれも要求された処理の成功または失敗を示す gboolean を返します。