static void
ges_multi_file_source_class_init (GESMultiFileSourceClass * klass)
{
  GObjectClass *object_class = G_OBJECT_CLASS (klass);
  GESVideoSourceClass *source_class = GES_VIDEO_SOURCE_CLASS (klass);

  g_type_class_add_private (klass, sizeof (GESMultiFileSourcePrivate));

  object_class->get_property = ges_multi_file_source_get_property;
  object_class->set_property = ges_multi_file_source_set_property;
  object_class->dispose = ges_multi_file_source_dispose;

  /**
   * GESMultiFileSource:uri:
   *
   * The uri of the file/resource to use. You can set a start index,
   * a stop index and a sequence pattern.
   * The format is <multifile://start:stop\@location-pattern>.
   * The pattern uses printf string formating.
   *
   * Example uris:
   *
   * multifile:///home/you/image\%03d.jpg
   *
   * multifile://20:50@/home/you/sequence/\%04d.png
   *
   */
  g_object_class_install_property (object_class, PROP_URI,
      g_param_spec_string ("uri", "URI", "multifile uri",
          NULL, G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY));
  source_class->create_source = ges_multi_file_source_create_source;
}
static void
ges_video_test_source_class_init (GESVideoTestSourceClass * klass)
{
  GESVideoSourceClass *source_class = GES_VIDEO_SOURCE_CLASS (klass);

  g_type_class_add_private (klass, sizeof (GESVideoTestSourcePrivate));

  source_class->create_source = ges_video_test_source_create_source;
}
static void
ges_title_source_class_init (GESTitleSourceClass * klass)
{
  GObjectClass *object_class = G_OBJECT_CLASS (klass);
  GESVideoSourceClass *source_class = GES_VIDEO_SOURCE_CLASS (klass);
  GESTrackElementClass *track_element_class = GES_TRACK_ELEMENT_CLASS (klass);

  g_type_class_add_private (klass, sizeof (GESTitleSourcePrivate));

  object_class->get_property = ges_title_source_get_property;
  object_class->set_property = ges_title_source_set_property;
  object_class->dispose = ges_title_source_dispose;
  track_element_class->lookup_child = _lookup_child;

  source_class->create_source = ges_title_source_create_source;
}
static void
ges_image_source_class_init (GESImageSourceClass * klass)
{
    GObjectClass *object_class = G_OBJECT_CLASS (klass);
    GESVideoSourceClass *source_class = GES_VIDEO_SOURCE_CLASS (klass);

    g_type_class_add_private (klass, sizeof (GESImageSourcePrivate));

    object_class->get_property = ges_image_source_get_property;
    object_class->set_property = ges_image_source_set_property;
    object_class->dispose = ges_image_source_dispose;

    /**
     * GESImageSource:uri:
     *
     * The location of the file/resource to use.
     */
    g_object_class_install_property (object_class, PROP_URI,
                                     g_param_spec_string ("uri", "URI", "uri of the resource",
                                             NULL, G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY));
    source_class->create_source = ges_image_source_create_source;
}