// Generated by generate_plugin_gmmproc_file. Don't edit this file.


_PINCLUDE(gstreamermm/private/pipeline_p.h)

extern "C"
{

static GType gst_play_flags_get_type()
{
  static GType const type = g_type_from_name("GstPlayFlags");
  return type;
}

GType gst_play_bin2_gstreamermm_get_type()
{
  static GType type = 0;
  GstElementFactory* factory = 0;
  GstPluginFeature* feature = 0;

  if(!type)
  {
    factory = gst_element_factory_find("playbin2");
    // Make sure that the feature is actually loaded:
    if(factory)
    {
      feature =
        gst_plugin_feature_load(GST_PLUGIN_FEATURE(factory));

      g_object_unref(factory);
      factory = GST_ELEMENT_FACTORY(feature);
      type = gst_element_factory_get_element_type(factory);
      g_object_unref(factory);
    }
  }

  return type;
}

} // extern "C"

namespace Gst
{

PlayBin2::PlayBin2()
: _CONSTRUCT("name", static_cast<char*>(0))
{}

PlayBin2::PlayBin2(const Glib::ustring& name)
: _CONSTRUCT("name", name.c_str())
{}

Gst::TagList PlayBin2::get_video_tags(int arg0)
{
  GstTagList* result;
  g_signal_emit_by_name(gobj(), "get-video-tags", _CONVERT(`int', `gint', `arg0'), &result, static_cast<void*>(0));
  return _CONVERT(`GstTagList*', `Gst::TagList', `result');
}

Gst::TagList PlayBin2::get_audio_tags(int arg0)
{
  GstTagList* result;
  g_signal_emit_by_name(gobj(), "get-audio-tags", _CONVERT(`int', `gint', `arg0'), &result, static_cast<void*>(0));
  return _CONVERT(`GstTagList*', `Gst::TagList', `result');
}

Gst::TagList PlayBin2::get_text_tags(int arg0)
{
  GstTagList* result;
  g_signal_emit_by_name(gobj(), "get-text-tags", _CONVERT(`int', `gint', `arg0'), &result, static_cast<void*>(0));
  return _CONVERT(`GstTagList*', `Gst::TagList', `result');
}

Glib::RefPtr<Gst::Buffer> PlayBin2::convert_frame(const Glib::RefPtr<Gst::Caps>& arg0)
{
  GstBuffer* result;
  g_signal_emit_by_name(gobj(), "convert-frame", _CONVERT(`const Glib::RefPtr<Gst::Caps>&', `GstCaps*', `arg0'), &result, static_cast<void*>(0));
  return _CONVERT(`GstBuffer*', `Glib::RefPtr<Gst::Buffer>', `result');
}

Glib::RefPtr<Gst::Pad> PlayBin2::get_video_pad(int arg0)
{
  GstPad* result;
  g_signal_emit_by_name(gobj(), "get-video-pad", _CONVERT(`int', `gint', `arg0'), &result, static_cast<void*>(0));
  return _CONVERT(`GstPad*', `Glib::RefPtr<Gst::Pad>', `result');
}

Glib::RefPtr<Gst::Pad> PlayBin2::get_audio_pad(int arg0)
{
  GstPad* result;
  g_signal_emit_by_name(gobj(), "get-audio-pad", _CONVERT(`int', `gint', `arg0'), &result, static_cast<void*>(0));
  return _CONVERT(`GstPad*', `Glib::RefPtr<Gst::Pad>', `result');
}

Glib::RefPtr<Gst::Pad> PlayBin2::get_text_pad(int arg0)
{
  GstPad* result;
  g_signal_emit_by_name(gobj(), "get-text-pad", _CONVERT(`int', `gint', `arg0'), &result, static_cast<void*>(0));
  return _CONVERT(`GstPad*', `Glib::RefPtr<Gst::Pad>', `result');
}

}
