GESTrackObject: Hide more variables and provide accessors for them
authorEdward Hervey <edward.hervey@collabora.co.uk>
Thu, 16 Dec 2010 14:00:46 +0000 (15:00 +0100)
committerEdward Hervey <edward.hervey@collabora.co.uk>
Thu, 16 Dec 2010 14:00:46 +0000 (15:00 +0100)
31 files changed:
docs/libs/#ges-sections.txt# [new file with mode: 0644]
docs/libs/.#ges-sections.txt [new symlink]
docs/libs/ges-decl-list.txt.bak [new file with mode: 0644]
docs/libs/ges-decl.txt.bak [new file with mode: 0644]
docs/libs/ges-sections.txt
ges/ges-timeline-file-source.c
ges/ges-timeline-object.c
ges/ges-timeline-test-source.c
ges/ges-timeline-text-overlay.c
ges/ges-timeline-title-source.c
ges/ges-timeline.c
ges/ges-track-audio-test-source.c
ges/ges-track-audio-transition.c
ges/ges-track-filesource.c
ges/ges-track-object.c
ges/ges-track-object.h
ges/ges-track-video-test-source.c
ges/ges-track-video-transition.c
ges/ges-track.c
tests/check/ges/backgroundsource.c
tests/check/ges/filesource.c
tests/check/ges/layer.c
tests/check/ges/overlays.c
tests/check/ges/timelineobject.c
tests/check/ges/titles.c
tests/check/ges/transition.c
tests/examples/overlays.c
tests/examples/test1.c
tests/examples/text_properties.c
tests/examples/transition.c
tools/ges-launch.c

diff --git a/docs/libs/#ges-sections.txt# b/docs/libs/#ges-sections.txt#
new file mode 100644 (file)
index 0000000..dd3a395
--- /dev/null
@@ -0,0 +1,646 @@
+<INCLUDE>ges/ges.h</INCLUDE>
+
+<SECTION>
+<FILE>ges-common</FILE>
+<TITLE>Initialization</TITLE>
+ges_init
+<SUBSECTION Standard>
+GES_PADDING
+</SECTION>
+
+<SECTION>
+<FILE>ges-utils</FILE>
+<TITLE>Utilities</TITLE>
+
+</SECTION>
+
+<SECTION>
+<FILE>ges-enums</FILE>
+<TITLE>GES Enums</TITLE>
+GESVideoStandardTransitionType
+GESTrackType
+GESTextHAlign
+DEFAULT_HALIGNMENT
+GESTextVAlign
+DEFAULT_VALIGNMENT
+GESVideoTestPattern
+<SUBSECTION Standard>
+GES_TYPE_TRACK_TYPE
+ges_track_type_get_type
+GES_TEXT_HALIGN_TYPE
+ges_text_halign_get_type
+GES_TEXT_VALIGN_TYPE
+ges_text_valign_get_type
+GES_VIDEO_TEST_PATTERN_TYPE
+ges_video_test_pattern_get_type
+GES_VIDEO_STANDARD_TRANSITION_TYPE_TYPE
+ges_video_standard_transition_type_get_type
+</SECTION>
+
+<SECTION>
+<FILE>ges-track</FILE>
+<TITLE>GESTrack</TITLE>
+GESTrack
+ges_track_audio_raw_new
+ges_track_video_raw_new
+ges_track_new
+ges_track_add_object
+ges_track_remove_object
+ges_track_set_caps
+ges_track_get_caps
+<SUBSECTION Standard>
+GESTrackClass
+GESTrackPrivate
+ges_track_set_timeline
+ges_track_get_timeline
+ges_track_get_type
+GES_IS_TRACK
+GES_IS_TRACK_CLASS
+GES_TRACK
+GES_TRACK_CLASS
+GES_TRACK_GET_CLASS
+GES_TYPE_TRACK
+</SECTION>
+
+<SECTION>
+<FILE>ges-track-object</FILE>
+<TITLE>GESTrackObject</TITLE>
+GESTrackObject
+GESTrackObjectClass
+ges_track_object_set_active
+ges_track_object_get_track
+ges_track_object_get_timeline_object
+ges_track_object_get_gnlobject
+ges_track_object_get_element
+<SUBSECTION Standard>
+GES_TRACK_OBJECT_DURATION
+GES_TRACK_OBJECT_INPOINT
+GES_TRACK_OBJECT_START
+ges_track_object_get_priority_offset
+GESTrackObjectPrivate
+ges_track_object_set_timeline_object
+ges_track_object_set_track
+ges_track_object_set_duration_internal
+ges_track_object_set_inpoint_internal
+fges_track_object_set_priority_internal
+ges_track_object_set_priority_offset_internal
+ges_track_object_set_start_internal
+ges_track_object_get_type
+GES_IS_TRACK_OBJECT
+GES_IS_TRACK_OBJECT_CLASS
+GES_TRACK_OBJECT
+GES_TRACK_OBJECT_CLASS
+GES_TRACK_OBJECT_GET_CLASS
+GES_TYPE_TRACK_OBJECT
+</SECTION>
+
+<SECTION>
+<FILE>ges-track-source</FILE>
+<TITLE>GESTrackSource</TITLE>
+GESTrackSource
+GESTrackSourceClass
+<SUBSECTION Standard>
+GESTrackSourcePrivate
+GES_TRACK_SOURCE
+GES_TRACK_SOURCE_CLASS
+GES_TRACK_SOURCE_GET_CLASS
+GES_TYPE_TRACK_SOURCE
+GES_IS_TRACK_SOURCE
+GES_IS_TRACK_SOURCE_CLASS
+ges_track_source_get_type
+</SECTION>
+
+<SECTION>
+<FILE>ges-track-operation</FILE>
+<TITLE>GESTrackOperation</TITLE>
+GESTrackOperation
+GESTrackOperationClass
+<SUBSECTION Standard>
+GESTrackOperationPrivate
+ges_track_operation_get_type
+GES_IS_TRACK_OPERATION
+GES_IS_TRACK_OPERATION_CLASS
+GES_TRACK_OPERATION
+GES_TRACK_OPERATION_CLASS
+GES_TRACK_OPERATION_GET_CLASS
+GES_TYPE_TRACK_OPERATION
+</SECTION>
+
+<SECTION>
+<FILE>ges-track-filesource</FILE>
+<TITLE>GESTrackFileSource</TITLE>
+GESTrackFileSource
+ges_track_filesource_new
+<SUBSECTION Standard>
+GESTrackFileSourceClass
+GESTrackFileSourcePrivate
+GES_TRACK_FILESOURCE
+GES_TRACK_FILESOURCE_CLASS
+GES_TRACK_FILESOURCE_GET_CLASS
+GES_TYPE_TRACK_FILESOURCE
+GES_IS_TRACK_FILESOURCE
+GES_IS_TRACK_FILESOURCE_CLASS
+ges_track_filesource_get_type
+</SECTION>
+
+<SECTION>
+<FILE>ges-track-image-source</FILE>
+<TITLE>GESTrackImageSource</TITLE>
+GESTrackImageSource
+ges_track_image_source_new
+<SUBSECTION Standard>
+GESTrackImageSourcePrivate
+GES_IS_TRACK_IMAGE_SOURCE
+GES_IS_TRACK_IMAGE_SOURCE_CLASS
+GES_TRACK_IMAGE_SOURCE
+GES_TRACK_IMAGE_SOURCE_CLASS
+GES_TRACK_IMAGE_SOURCE_GET_CLASS
+GES_TYPE_TRACK_IMAGE_SOURCE
+GESTrackImageSourceClass
+ges_track_image_source_get_type
+</SECTION>
+
+<SECTION>
+<FILE>ges-track-transition</FILE>
+<TITLE>GESTrackTransition</TITLE>
+GESTrackTransition
+GESTrackTransitionClass
+<SUBSECTION Standard>
+GESTrackTransitionPrivate
+GES_IS_TRACK_TRANSITION
+GES_IS_TRACK_TRANSITION_CLASS
+GES_TRACK_TRANSITION
+GES_TRACK_TRANSITION_CLASS
+GES_TRACK_TRANSITION_GET_CLASS
+GES_TYPE_TRACK_TRANSITION
+ges_track_transition_get_type
+</SECTION>
+
+<SECTION>
+<FILE>ges-track-audio-transition</FILE>
+<TITLE>GESTrackAudioTransition</TITLE>
+GESTrackAudioTransition
+ges_track_audio_transition_new
+<SUBSECTION Standard>
+GESTrackAudioTransitionClass
+GESTrackAudioTransitionPrivate
+GES_IS_TRACK_AUDIO_TRANSITION
+ges_track_audio_transition_get_type
+GES_IS_TRACK_AUDIO_TRANSITION_CLASS
+GES_TRACK_AUDIO_TRANSITION
+GES_TRACK_AUDIO_TRANSITION_CLASS
+GES_TRACK_AUDIO_TRANSITION_GET_CLASS
+GES_TYPE_TRACK_AUDIO_TRANSITION
+</SECTION>
+
+<SECTION>
+<FILE>ges-track-video-transition</FILE>
+<TITLE>GESTrackVideoTransition</TITLE>
+GESTrackVideoTransition
+ges_track_video_transition_new
+ges_track_video_transition_set_type
+<SUBSECTION Standard>
+GESTrackVideoTransitionClass
+GESTrackVideoTransitionPrivate
+ges_track_video_transition_get_type
+GES_IS_TRACK_VIDEO_TRANSITION
+GES_IS_TRACK_VIDEO_TRANSITION_CLASS
+GES_TRACK_VIDEO_TRANSITION
+GES_TRACK_VIDEO_TRANSITION_CLASS
+GES_TRACK_VIDEO_TRANSITION_GET_CLASS
+GES_TYPE_TRACK_VIDEO_TRANSITION
+</SECTION>
+
+<SECTION>
+<FILE>ges-timeline</FILE>
+<TITLE>GESTimeline</TITLE>
+GESTimeline
+ges_timeline_new
+ges_timeline_new_audio_video
+ges_timeline_new_from_uri
+ges_timeline_add_layer
+ges_timeline_remove_layer
+ges_timeline_add_track
+ges_timeline_remove_track
+ges_timeline_load_from_uri
+ges_timeline_save_to_uri
+<SUBSECTION usage>
+ges_timeline_get_tracks
+ges_timeline_get_track_for_pad
+<SUBSECTION Standard>
+GESTimelineClass
+ges_timeline_get_type
+GES_IS_TIMELINE
+GES_IS_TIMELINE_CLASS
+GES_TIMELINE
+GES_TIMELINE_CLASS
+GES_TIMELINE_GET_CLASS
+GES_TYPE_TIMELINE
+</SECTION>
+
+
+<SECTION>
+<FILE>ges-timeline-layer</FILE>
+<TITLE>GESTimelineLayer</TITLE>
+GESTimelineLayer
+GESTimelineLayerClass
+ges_timeline_layer_add_object
+ges_timeline_layer_new
+ges_timeline_layer_remove_object
+ges_timeline_layer_set_priority
+ges_timeline_layer_get_priority
+ges_timeline_layer_get_objects
+<SUBSECTION Standard>
+GESTimelineLayerPrivate
+ges_timeline_layer_set_timeline
+ges_timeline_layer_get_type
+GES_IS_TIMELINE_LAYER
+GES_IS_TIMELINE_LAYER_CLASS
+GES_TIMELINE_LAYER
+GES_TIMELINE_LAYER_CLASS
+GES_TIMELINE_LAYER_GET_CLASS
+GES_TYPE_TIMELINE_LAYER
+</SECTION>
+
+
+<SECTION>
+<FILE>ges-timeline-object</FILE>
+<TITLE>GESTimelineObject</TITLE>
+GESTimelineObject
+GESTimelineObjectClass
+GESCreateTrackObjectFunc
+GESCreateTrackObjectsFunc
+GESFillTrackObjectFunc
+ges_timeline_object_set_inpoint
+ges_timeline_object_set_start
+ges_timeline_object_set_duration
+ges_timeline_object_get_layer
+ges_timeline_object_find_track_object
+ges_timeline_object_add_track_object
+<SUBSECTION Standard>
+GES_TIMELINE_OBJECT_DURATION
+GES_TIMELINE_OBJECT_INPOINT
+GES_TIMELINE_OBJECT_PRIORITY
+GES_TIMELINE_OBJECT_START
+GES_TIMELINE_OBJECT_HEIGHT
+ges_timeline_object_create_track_objects
+ges_timeline_object_create_track_object
+ges_timeline_object_fill_track_object
+ges_timeline_object_release_track_object
+ges_timeline_object_get_track_objects
+ges_timeline_object_set_layer
+ges_timeline_object_set_priority
+GESTimelineObjectPrivate
+GES_IS_TIMELINE_OBJECT
+GES_IS_TIMELINE_OBJECT_CLASS
+GES_TIMELINE_OBJECT
+GES_TIMELINE_OBJECT_CLASS
+GES_TIMELINE_OBJECT_GET_CLASS
+GES_TYPE_TIMELINE_OBJECT
+ges_timeline_object_get_type
+</SECTION>
+
+
+<SECTION>
+<FILE>ges-timeline-pipeline</FILE>
+<TITLE>GESTimelinePipeline</TITLE>
+GESTimelinePipeline
+GESPipelineFlags
+ges_timeline_pipeline_new
+ges_timeline_pipeline_add_timeline
+ges_timeline_pipeline_set_mode
+ges_timeline_pipeline_set_render_settings
+ges_timeline_pipeline_get_thumbnail_buffer
+ges_timeline_pipeline_get_thumbnail_rgb24
+ges_timeline_pipeline_save_thumbnail
+<SUBSECTION Standard>
+GESTimelinePipelineClass
+GESTimelinePipelinePrivate
+ges_play_sink_convert_frame
+ges_timeline_pipeline_get_type
+GES_TIMELINE_PIPELINE
+GES_TIMELINE_PIPELINE_CLASS
+GES_TIMELINE_PIPELINE_GET_CLASS
+GES_IS_TIMELINE_PIPELINE
+GES_IS_TIMELINE_PIPELINE_CLASS
+GES_TYPE_TIMELINE_PIPELINE
+</SECTION>
+
+
+<SECTION>
+<FILE>ges-timeline-source</FILE>
+<TITLE>GESTimelineSource</TITLE>
+GESTimelineSource
+GESTimelineSourceClass
+<SUBSECTION Standard>
+GESTimelineSourcePrivate
+ges_timeline_source_get_type
+GES_IS_TIMELINE_SOURCE
+GES_IS_TIMELINE_SOURCE_CLASS
+GES_TIMELINE_SOURCE
+GES_TIMELINE_SOURCE_CLASS
+GES_TIMELINE_SOURCE_GET_CLASS
+GES_TYPE_TIMELINE_SOURCE
+</SECTION>
+
+<SECTION>
+<FILE>ges-timeline-filesource</FILE>
+<TITLE>GESTimelineFileSource</TITLE>
+GESTimelineFileSource
+ges_timeline_filesource_new
+<SUBSECTION Standard>
+GESTimelineFileSourceClass
+ges_timeline_filesource_get_type
+GES_IS_TIMELINE_FILE_SOURCE
+GES_IS_TIMELINE_FILE_SOURCE_CLASS
+GES_TIMELINE_FILE_SOURCE
+GES_TIMELINE_FILE_SOURCE_CLASS
+GES_TIMELINE_FILE_SOURCE_GET_CLASS
+GES_TYPE_TIMELINE_FILE_SOURCE
+</SECTION>
+
+<SECTION>
+<FILE>ges-timeline-operation</FILE>
+<TITLE>GESTimelineOperation</TITLE>
+GESTimelineOperation
+<SUBSECTION Standard>
+GESTimelineOperationClass
+GESTimelineOperationPrivate
+GES_TIMELINE_OPERATION
+GES_IS_TIMELINE_OPERATION
+GES_TYPE_TIMELINE_OPERATION
+ges_timeline_operation_get_type
+GES_TIMELINE_OPERATION_CLASS
+GES_IS_TIMELINE_OPERATION_CLASS
+GES_TIMELINE_OPERATION_GET_CLASS
+</SECTION>
+
+<SECTION>
+<FILE>ges-timeline-overlay</FILE>
+<TITLE>GESTimelineOverlay</TITLE>
+GESTimelineOverlay
+GESTimelineOverlayClass
+<SUBSECTION Standard>
+GESTimelineOverlayPrivate
+ges_timeline_overlay_get_type
+GES_IS_TIMELINE_OVERLAY
+GES_IS_TIMELINE_OVERLAY_CLASS
+GES_TIMELINE_OVERLAY
+GES_TIMELINE_OVERLAY_CLASS
+GES_TIMELINE_OVERLAY_GET_CLASS
+GES_TYPE_TIMELINE_OVERLAY
+</SECTION>
+
+<SECTION>
+<FILE>ges-timeline-transition</FILE>
+<TITLE>GESTimelineTransition</TITLE>
+GESTimelineTransition
+<SUBSECTION Standard>
+GESTimelineTransitionClass
+GESTimelineTransitionPrivate
+GES_TIMELINE_TRANSITION
+GES_IS_TIMELINE_TRANSITION
+GES_TYPE_TIMELINE_TRANSITION
+ges_timeline_transition_get_type
+GES_TIMELINE_TRANSITION_CLASS
+GES_IS_TIMELINE_TRANSITION_CLASS
+GES_TIMELINE_TRANSITION_GET_CLASS
+</SECTION>
+
+<SECTION>
+<FILE>ges-timeline-standard-transition</FILE>
+<TITLE>GESTimelineStandardTransition</TITLE>
+GESTimelineStandardTransition
+ges_timeline_standard_transition_new
+ges_timeline_standard_transition_new_for_nick
+<SUBSECTION Standard>
+GESTimelineStandardTransitionClass
+GESTimelineStandardTransitionPrivate
+GES_IS_TIMELINE_STANDARD_TRANSITION
+GES_IS_TIMELINE_STANDARD_TRANSITION_CLASS
+GES_TIMELINE_STANDARD_TRANSITION
+GES_TIMELINE_STANDARD_TRANSITION_CLASS
+GES_TIMELINE_STANDARD_TRANSITION_GET_CLASS
+GES_TYPE_TIMELINE_STANDARD_TRANSITION
+ges_timeline_standard_transition_get_type
+</SECTION>
+
+
+<SECTION>
+<FILE>ges-custom-timeline-source</FILE>
+<TITLE>GESCustomTimelineSource</TITLE>
+GESCustomTimelineSource
+GESFillTrackObjectUserFunc
+ges_custom_timeline_source_new
+<SUBSECTION Standard>
+GESCustomTimelineSourceClass
+ges_custom_timeline_source_get_type
+GESCustomTimelineSourcePrivate
+GES_CUSTOM_TIMELINE_SOURCE
+GES_CUSTOM_TIMELINE_SOURCE_CLASS
+GES_CUSTOM_TIMELINE_SOURCE_GET_CLASS
+GES_IS_CUSTOM_TIMELINE_SOURCE
+GES_IS_CUSTOM_TIMELINE_SOURCE_CLASS
+GES_TYPE_CUSTOM_TIMELINE_SOURCE
+</SECTION>
+
+<SECTION>
+<FILE>ges-simple-timeline-layer</FILE>
+<TITLE>GESSimpleTimelineLayer</TITLE>
+GESSimpleTimelineLayer
+ges_simple_timeline_layer_new
+ges_simple_timeline_layer_add_object
+ges_simple_timeline_layer_move_object
+ges_simple_timeline_layer_nth
+ges_simple_timeline_layer_is_valid
+<SUBSECTION Standard>
+GESSimpleTimelineLayerClass
+ges_simple_timeline_layer_get_type
+GESSimpleTimelineLayerPrivate
+GES_IS_SIMPLE_TIMELINE_LAYER
+GES_IS_SIMPLE_TIMELINE_LAYER_CLASS
+GES_SIMPLE_TIMELINE_LAYER
+GES_SIMPLE_TIMELINE_LAYER_CLASS
+GES_SIMPLE_TIMELINE_LAYER_GET_CLASS
+GES_TYPE_SIMPLE_TIMELINE_LAYER
+</SECTION>
+
+<SECTION>
+<FILE>ges-timeline-test-source</FILE>
+<TITLE>GESTimelineTestSource</TITLE>
+GESTimelineTestSource
+GESTimelineTestSourceClass
+ges_timeline_test_source_new
+ges_timeline_test_source_new_for_nick
+<SUBSECTION Standard>
+GESTimelineTestSourcePrivate
+ges_timeline_test_source_get_type
+GES_TYPE_TIMELINE_TEST_SOURCE
+GES_IS_TIMELINE_TEST_SOURCE
+GES_IS_TIMELINE_TEST_SOURCE_CLASS
+GES_TIMELINE_TEST_SOURCE
+GES_TIMELINE_TEST_SOURCE_CLASS
+GES_TIMELINE_TEST_SOURCE_GET_CLASS
+</SECTION>
+
+<SECTION>
+<FILE>ges-timeline-title-source</FILE>
+<TITLE>GESTimelineTitleSource</TITLE>
+GESTimelineTitleSource
+ges_timeline_title_source_new
+<SUBSECTION Standard>
+GESTimelineTitleSourceClass
+GESTimelineTitleSourcePrivate
+ges_timeline_title_source_get_type
+GES_IS_TIMELINE_TITLE_SOURCE
+GES_IS_TIMELINE_TITLE_SOURCE_CLASS
+GES_TIMELINE_TITLE_SOURCE
+GES_TIMELINE_TITLE_SOURCE_CLASS
+GES_TIMELINE_TITLE_SOURCE_GET_CLASS
+</SECTION>
+
+<SECTION>
+<FILE>ges-timeline-text-overlay</FILE>
+<TITLE>GESTimelineTextOverlay</TITLE>
+GESTimelineTextOverlay
+ges_timeline_text_overlay_new
+<SUBSECTION Standard>
+GESTimelineTextOverlayClass
+GESTimelineTextOverlayPrivate
+ges_timeline_text_overlay_get_type
+GES_IS_TIMELINE_TEXT_OVERLAY
+GES_IS_TIMELINE_TEXT_OVERLAY_CLASS
+GES_TIMELINE_TEXT_OVERLAY
+GES_TIMELINE_TEXT_OVERLAY_CLASS
+GES_TIMELINE_TEXT_OVERLAY_GET_CLASS
+GES_TYPE_TIMELINE_TEXT_OVERLAY
+</SECTION>
+
+<SECTION>
+<FILE>ges-track-video-test-source</FILE>
+<TITLE>GESTrackVideoTestSource</TITLE>
+GESTrackVideoTestSource
+ges_track_video_test_source_new
+ges_track_video_test_source_set_pattern
+<SUBSECTION Standard>
+GESTrackVideoTestSourceClass
+GESTrackVideoTestSourcePrivate
+ges_track_video_test_source_get_type
+GES_IS_TRACK_VIDEO_TEST_SOURCE
+GES_IS_TRACK_VIDEO_TEST_SOURCE_CLASS
+GES_TRACK_VIDEO_TEST_SOURCE
+GES_TRACK_VIDEO_TEST_SOURCE_CLASS
+GES_TRACK_VIDEO_TEST_SOURCE_GET_CLASS
+GES_TYPE_TRACK_VIDEO_TEST_SOURCE
+</SECTION>
+
+<SECTION>
+<FILE>ges-track-audio-test-source</FILE>
+<TITLE>GESTrackAudioTestSource</TITLE>
+GESTrackAudioTestSource
+ges_track_audio_test_source_new
+ges_track_audio_test_source_set_freq
+ges_track_audio_test_source_set_volume
+<SUBSECTION Standard>
+GESTrackAudioTestSourceClass
+GESTrackAudioTestSourcePrivate
+ges_track_audio_test_source_get_type
+GES_TRACK_AUDIO_TEST_SOURCE
+GES_TRACK_AUDIO_TEST_SOURCE_CLASS
+GES_TRACK_AUDIO_TEST_SOURCE_GET_CLASS
+GES_TYPE_TRACK_AUDIO_TEST_SOURCE
+GES_IS_TRACK_AUDIO_TEST_SOURCE
+GES_IS_TRACK_AUDIO_TEST_SOURCE_CLASS
+</SECTION>
+
+<SECTION>
+<FILE>ges-track-title-source</FILE>
+<TITLE>GESTrackTitleSource</TITLE>
+GESTrackTitleSource
+ges_track_title_source_set_text
+ges_track_title_source_set_font_desc
+ges_track_title_source_set_halignment
+ges_track_title_source_set_valignment
+ges_track_title_source_new
+<SUBSECTION Standard>
+GESTrackTitleSourceClass
+GESTrackTitleSourcePrivate
+ges_track_title_source_get_type
+GES_TRACK_TITLE_SOURCE
+GES_TRACK_TITLE_SOURCE_CLASS
+GES_TRACK_TITLE_SOURCE_GET_CLASS
+GES_TYPE_TIMELINE_TITLE_SOURCE
+GES_TYPE_TRACK_TITLE_SOURCE
+GES_IS_TRACK_TITLE_SOURCE
+GES_IS_TRACK_TITLE_SOURCE_CLASS
+</SECTION>
+
+<SECTION>
+<FILE>ges-track-text-overlay</FILE>
+<TITLE>GESTrackTextOverlay</TITLE>
+GESTrackTextOverlay
+ges_track_text_overlay_new
+ges_track_text_overlay_set_font_desc
+ges_track_text_overlay_set_halignment
+ges_track_text_overlay_set_text
+ges_track_text_overlay_set_valignment
+<SUBSECTION Standard>
+GESTrackTextOverlayClass
+GESTrackTextOverlayPrivate
+ges_track_text_overlay_get_type
+GES_IS_TRACK_TEXT_OVERLAY
+GES_IS_TRACK_TEXT_OVERLAY_CLASS
+GES_TRACK_TEXT_OVERLAY
+GES_TRACK_TEXT_OVERLAY_CLASS
+GES_TRACK_TEXT_OVERLAY_GET_CLASS
+GES_TYPE_TRACK_TEXT_OVERLAY
+</SECTION>
+
+<SECTION>
+<FILE>ges-formatter</FILE>
+<TITLE>GESFormatter</TITLE>
+GESFormatter
+GESFormatterClass
+GESFormatterLoadFromURIMethod
+GESFormatterSaveToURIMethod
+ges_default_formatter_new
+ges_formatter_load_from_uri
+ges_formatter_save_to_uri
+ges_formatter_new_for_uri
+ges_formatter_can_load_uri
+ges_formatter_can_save_uri
+<SUBSECTION Standard>
+ges_formatter_get_type
+GES_FORMATTER
+GES_FORMATTER_CLASS
+GES_FORMATTER_GET_CLASS
+GES_IS_FORMATTER
+GES_IS_FORMATTER_CLASS
+GES_TYPE_FORMATTER
+<SUBSECTION Private>
+ges_formatter_load
+ges_formatter_save
+ges_formatter_set_data
+ges_formatter_clear_data
+ges_formatter_get_data
+GESFormatterCanLoadURIMethod
+GESFormatterCanSaveURIMethod
+GESFormatterLoadMethod
+GESFormatterSaveMethod
+</SECTION>
+
+<SECTION>
+<FILE>ges-keyfile-formatter</FILE>
+<TITLE>GESKeyFileFormatter</TITLE>
+GESKeyfileFormatter
+ges_keyfile_formatter_new
+<SUBSECTION Standard>
+GESKeyfileFormatterClass
+GES_IS_KEYFILE_FORMATTER
+GES_IS_KEYFILE_FORMATTER_CLASS
+GES_KEYFILE_FORMATTER
+GES_KEYFILE_FORMATTER_CLASS
+GES_KEYFILE_FORMATTER_GET_CLASS
+GES_TYPE_KEYFILE_FORMATTER
+ges_keyfile_formatter_get_type
+</SECTION>
diff --git a/docs/libs/.#ges-sections.txt b/docs/libs/.#ges-sections.txt
new file mode 120000 (symlink)
index 0000000..fef8ca2
--- /dev/null
@@ -0,0 +1 @@
+bilboed@hostia.28194:1287103486
\ No newline at end of file
diff --git a/docs/libs/ges-decl-list.txt.bak b/docs/libs/ges-decl-list.txt.bak
new file mode 100644 (file)
index 0000000..9b0cbe3
--- /dev/null
@@ -0,0 +1,690 @@
+<SECTION>
+<FILE>ges-track-transition</FILE>
+<TITLE>GESTrackTransition</TITLE>
+GESTrackTransitionPrivate
+GESTrackTransition
+GESTrackTransitionClass
+<SUBSECTION Standard>
+GES_TRACK_TRANSITION
+GES_IS_TRACK_TRANSITION
+GES_TYPE_TRACK_TRANSITION
+ges_track_transition_get_type
+GES_TRACK_TRANSITION_CLASS
+GES_IS_TRACK_TRANSITION_CLASS
+GES_TRACK_TRANSITION_GET_CLASS
+</SECTION>
+
+<SECTION>
+<FILE>ges-timeline-source</FILE>
+<TITLE>GESTimelineSource</TITLE>
+GESTimelineSourcePrivate
+GESTimelineSource
+GESTimelineSourceClass
+<SUBSECTION Standard>
+GES_TIMELINE_SOURCE
+GES_IS_TIMELINE_SOURCE
+GES_TYPE_TIMELINE_SOURCE
+ges_timeline_source_get_type
+GES_TIMELINE_SOURCE_CLASS
+GES_IS_TIMELINE_SOURCE_CLASS
+GES_TIMELINE_SOURCE_GET_CLASS
+</SECTION>
+
+<SECTION>
+<FILE>ges-formatter</FILE>
+<TITLE>GESFormatter</TITLE>
+GESFormatter
+GESFormatterCanLoadURIMethod
+GESFormatterCanSaveURIMethod
+GESFormatterLoadFromURIMethod
+GESFormatterSaveToURIMethod
+GESFormatterSaveMethod
+GESFormatterLoadMethod
+GESFormatterClass
+ges_formatter_new_for_uri
+ges_default_formatter_new
+ges_formatter_can_load_uri
+ges_formatter_can_save_uri
+ges_formatter_load_from_uri
+ges_formatter_save_to_uri
+ges_formatter_load
+ges_formatter_save
+ges_formatter_set_data
+ges_formatter_get_data
+ges_formatter_clear_data
+<SUBSECTION Standard>
+GES_FORMATTER
+GES_IS_FORMATTER
+GES_TYPE_FORMATTER
+ges_formatter_get_type
+GES_FORMATTER_CLASS
+GES_IS_FORMATTER_CLASS
+GES_FORMATTER_GET_CLASS
+</SECTION>
+
+<SECTION>
+<FILE>ges-track-operation</FILE>
+<TITLE>GESTrackOperation</TITLE>
+GESTrackOperationPrivate
+GESTrackOperation
+GESTrackOperationClass
+<SUBSECTION Standard>
+GES_TRACK_OPERATION
+GES_IS_TRACK_OPERATION
+GES_TYPE_TRACK_OPERATION
+ges_track_operation_get_type
+GES_TRACK_OPERATION_CLASS
+GES_IS_TRACK_OPERATION_CLASS
+GES_TRACK_OPERATION_GET_CLASS
+</SECTION>
+
+<SECTION>
+<FILE>ges-timeline-text-overlay</FILE>
+<TITLE>GESTimelineTextOverlay</TITLE>
+GESTimelineTextOverlayPrivate
+GESTimelineTextOverlay
+GESTimelineTextOverlayClass
+ges_timeline_text_overlay_new
+<SUBSECTION Standard>
+GES_TIMELINE_TEXT_OVERLAY
+GES_IS_TIMELINE_TEXT_OVERLAY
+GES_TYPE_TIMELINE_TEXT_OVERLAY
+ges_timeline_text_overlay_get_type
+GES_TIMELINE_TEXT_OVERLAY_CLASS
+GES_IS_TIMELINE_TEXT_OVERLAY_CLASS
+GES_TIMELINE_TEXT_OVERLAY_GET_CLASS
+</SECTION>
+
+<SECTION>
+<FILE>ges-timeline-transition</FILE>
+<TITLE>GESTimelineTransition</TITLE>
+GESTimelineTransitionPrivate
+GESTimelineTransition
+GESTimelineTransitionClass
+<SUBSECTION Standard>
+GES_TIMELINE_TRANSITION
+GES_IS_TIMELINE_TRANSITION
+GES_TYPE_TIMELINE_TRANSITION
+ges_timeline_transition_get_type
+GES_TIMELINE_TRANSITION_CLASS
+GES_IS_TIMELINE_TRANSITION_CLASS
+GES_TIMELINE_TRANSITION_GET_CLASS
+</SECTION>
+
+<SECTION>
+<FILE>ges-track-audio-test-source</FILE>
+<TITLE>GESTrackAudioTestSource</TITLE>
+GESTrackAudioTestSourcePrivate
+GESTrackAudioTestSource
+GESTrackAudioTestSourceClass
+ges_track_audio_test_source_new
+ges_track_audio_test_source_set_freq
+ges_track_audio_test_source_set_volume
+<SUBSECTION Standard>
+GES_TRACK_AUDIO_TEST_SOURCE
+GES_IS_TRACK_AUDIO_TEST_SOURCE
+GES_TYPE_TRACK_AUDIO_TEST_SOURCE
+ges_track_audio_test_source_get_type
+GES_TRACK_AUDIO_TEST_SOURCE_CLASS
+GES_IS_TRACK_AUDIO_TEST_SOURCE_CLASS
+GES_TRACK_AUDIO_TEST_SOURCE_GET_CLASS
+</SECTION>
+
+<SECTION>
+<FILE>ges-timeline-standard-transition</FILE>
+<TITLE>GESTimelineStandardTransition</TITLE>
+GESTimelineStandardTransitionPrivate
+GESTimelineStandardTransition
+GESTimelineStandardTransitionClass
+ges_timeline_standard_transition_new
+ges_timeline_standard_transition_new_for_nick
+<SUBSECTION Standard>
+GES_TIMELINE_STANDARD_TRANSITION
+GES_IS_TIMELINE_STANDARD_TRANSITION
+GES_TYPE_TIMELINE_STANDARD_TRANSITION
+ges_timeline_standard_transition_get_type
+GES_TIMELINE_STANDARD_TRANSITION_CLASS
+GES_IS_TIMELINE_STANDARD_TRANSITION_CLASS
+GES_TIMELINE_STANDARD_TRANSITION_GET_CLASS
+</SECTION>
+
+<SECTION>
+<FILE>ges-track-source</FILE>
+<TITLE>GESTrackSource</TITLE>
+GESTrackSourcePrivate
+GESTrackSource
+GESTrackSourceClass
+<SUBSECTION Standard>
+GES_TRACK_SOURCE
+GES_IS_TRACK_SOURCE
+GES_TYPE_TRACK_SOURCE
+ges_track_source_get_type
+GES_TRACK_SOURCE_CLASS
+GES_IS_TRACK_SOURCE_CLASS
+GES_TRACK_SOURCE_GET_CLASS
+</SECTION>
+
+<SECTION>
+<FILE>ges-track</FILE>
+<TITLE>GESTrack</TITLE>
+GESTrackPrivate
+GESTrack
+GESTrackClass
+ges_track_new
+ges_track_set_timeline
+ges_track_set_caps
+ges_track_get_caps
+ges_track_get_timeline
+ges_track_add_object
+ges_track_remove_object
+ges_track_video_raw_new
+ges_track_audio_raw_new
+<SUBSECTION Standard>
+GES_TRACK
+GES_IS_TRACK
+GES_TYPE_TRACK
+ges_track_get_type
+GES_TRACK_CLASS
+GES_IS_TRACK_CLASS
+GES_TRACK_GET_CLASS
+</SECTION>
+
+<SECTION>
+<FILE>ges-track-video-test-source</FILE>
+<TITLE>GESTrackVideoTestSource</TITLE>
+GESTrackVideoTestSourcePrivate
+GESTrackVideoTestSource
+GESTrackVideoTestSourceClass
+ges_track_video_test_source_new
+ges_track_video_test_source_set_pattern
+<SUBSECTION Standard>
+GES_TRACK_VIDEO_TEST_SOURCE
+GES_IS_TRACK_VIDEO_TEST_SOURCE
+GES_TYPE_TRACK_VIDEO_TEST_SOURCE
+ges_track_video_test_source_get_type
+GES_TRACK_VIDEO_TEST_SOURCE_CLASS
+GES_IS_TRACK_VIDEO_TEST_SOURCE_CLASS
+GES_TRACK_VIDEO_TEST_SOURCE_GET_CLASS
+</SECTION>
+
+<SECTION>
+<FILE>ges-timeline</FILE>
+<TITLE>GESTimeline</TITLE>
+GESTimeline
+GESTimelineClass
+ges_timeline_new
+ges_timeline_new_from_uri
+ges_timeline_load_from_uri
+ges_timeline_save_to_uri
+ges_timeline_add_layer
+ges_timeline_remove_layer
+ges_timeline_add_track
+ges_timeline_remove_track
+ges_timeline_get_track_for_pad
+ges_timeline_get_tracks
+<SUBSECTION Standard>
+GES_TIMELINE
+GES_IS_TIMELINE
+GES_TYPE_TIMELINE
+ges_timeline_get_type
+GES_TIMELINE_CLASS
+GES_IS_TIMELINE_CLASS
+GES_TIMELINE_GET_CLASS
+</SECTION>
+
+<SECTION>
+<FILE>ges-timeline-test-source</FILE>
+<TITLE>GESTimelineTestSource</TITLE>
+GESTimelineTestSourcePrivate
+GESTimelineTestSource
+GESTimelineTestSourceClass
+ges_timeline_test_source_new
+ges_timeline_test_source_new_for_nick
+<SUBSECTION Standard>
+GES_TIMELINE_TEST_SOURCE
+GES_IS_TIMELINE_TEST_SOURCE
+GES_TYPE_TIMELINE_TEST_SOURCE
+ges_timeline_test_source_get_type
+GES_TIMELINE_TEST_SOURCE_CLASS
+GES_IS_TIMELINE_TEST_SOURCE_CLASS
+GES_TIMELINE_TEST_SOURCE_GET_CLASS
+</SECTION>
+
+<SECTION>
+<FILE>ges-timeline-object</FILE>
+<TITLE>GESTimelineObject</TITLE>
+GESTimelineObjectPrivate
+GESFillTrackObjectFunc
+GESCreateTrackObjectFunc
+GESCreateTrackObjectsFunc
+GES_TIMELINE_OBJECT_START
+GES_TIMELINE_OBJECT_INPOINT
+GES_TIMELINE_OBJECT_DURATION
+GES_TIMELINE_OBJECT_PRIORITY
+GES_TIMELINE_OBJECT_HEIGHT
+GESTimelineObject
+GESTimelineObjectClass
+ges_timeline_object_set_start
+ges_timeline_object_set_inpoint
+ges_timeline_object_set_duration
+ges_timeline_object_set_priority
+ges_timeline_object_set_layer
+ges_timeline_object_create_track_object
+ges_timeline_object_create_track_objects
+ges_timeline_object_release_track_object
+ges_timeline_object_fill_track_object
+ges_timeline_object_find_track_object
+ges_timeline_object_get_track_objects
+ges_timeline_object_get_layer
+ges_timeline_object_add_track_object
+<SUBSECTION Standard>
+GES_TIMELINE_OBJECT
+GES_IS_TIMELINE_OBJECT
+GES_TYPE_TIMELINE_OBJECT
+ges_timeline_object_get_type
+GES_TIMELINE_OBJECT_CLASS
+GES_IS_TIMELINE_OBJECT_CLASS
+GES_TIMELINE_OBJECT_GET_CLASS
+</SECTION>
+
+<SECTION>
+<FILE>ges-simple-timeline-layer</FILE>
+<TITLE>GESSimpleTimelineLayer</TITLE>
+GESSimpleTimelineLayerPrivate
+GESSimpleTimelineLayer
+GESSimpleTimelineLayerClass
+ges_simple_timeline_layer_new
+ges_simple_timeline_layer_add_object
+ges_simple_timeline_layer_move_object
+ges_simple_timeline_layer_is_valid
+ges_simple_timeline_layer_nth
+<SUBSECTION Standard>
+GES_SIMPLE_TIMELINE_LAYER
+GES_IS_SIMPLE_TIMELINE_LAYER
+GES_TYPE_SIMPLE_TIMELINE_LAYER
+ges_simple_timeline_layer_get_type
+GES_SIMPLE_TIMELINE_LAYER_CLASS
+GES_IS_SIMPLE_TIMELINE_LAYER_CLASS
+GES_SIMPLE_TIMELINE_LAYER_GET_CLASS
+</SECTION>
+
+<SECTION>
+<FILE>ges-track-image-source</FILE>
+<TITLE>GESTrackImageSource</TITLE>
+GESTrackImageSourcePrivate
+GESTrackImageSource
+GESTrackImageSourceClass
+ges_track_image_source_new
+<SUBSECTION Standard>
+GES_TRACK_IMAGE_SOURCE
+GES_IS_TRACK_IMAGE_SOURCE
+GES_TYPE_TRACK_IMAGE_SOURCE
+ges_track_image_source_get_type
+GES_TRACK_IMAGE_SOURCE_CLASS
+GES_IS_TRACK_IMAGE_SOURCE_CLASS
+GES_TRACK_IMAGE_SOURCE_GET_CLASS
+</SECTION>
+
+<SECTION>
+<FILE>ges-timeline-layer</FILE>
+<TITLE>GESTimelineLayer</TITLE>
+GESTimelineLayerPrivate
+GESTimelineLayer
+GESTimelineLayerClass
+ges_timeline_layer_new
+ges_timeline_layer_set_timeline
+ges_timeline_layer_add_object
+ges_timeline_layer_remove_object
+ges_timeline_layer_set_priority
+ges_timeline_layer_get_priority
+ges_timeline_layer_get_objects
+<SUBSECTION Standard>
+GES_TIMELINE_LAYER
+GES_IS_TIMELINE_LAYER
+GES_TYPE_TIMELINE_LAYER
+ges_timeline_layer_get_type
+GES_TIMELINE_LAYER_CLASS
+GES_IS_TIMELINE_LAYER_CLASS
+GES_TIMELINE_LAYER_GET_CLASS
+</SECTION>
+
+<SECTION>
+<FILE>ges-track-video-transition</FILE>
+<TITLE>GESTrackVideoTransition</TITLE>
+GESTrackVideoTransitionPrivate
+GESTrackVideoTransition
+GESTrackVideoTransitionClass
+ges_track_video_transition_set_type
+ges_track_video_transition_new
+<SUBSECTION Standard>
+GES_TRACK_VIDEO_TRANSITION
+GES_IS_TRACK_VIDEO_TRANSITION
+GES_TYPE_TRACK_VIDEO_TRANSITION
+ges_track_video_transition_get_type
+GES_TRACK_VIDEO_TRANSITION_CLASS
+GES_IS_TRACK_VIDEO_TRANSITION_CLASS
+GES_TRACK_VIDEO_TRANSITION_GET_CLASS
+</SECTION>
+
+<SECTION>
+<FILE>ges-timeline-file-source</FILE>
+<TITLE>GESTimelineFileSource</TITLE>
+GESTimelineFileSource
+GESTimelineFileSourceClass
+ges_timeline_filesource_new
+<SUBSECTION Standard>
+GES_TIMELINE_FILE_SOURCE
+GES_IS_TIMELINE_FILE_SOURCE
+GES_TYPE_TIMELINE_FILE_SOURCE
+ges_timeline_filesource_get_type
+GES_TIMELINE_FILE_SOURCE_CLASS
+GES_IS_TIMELINE_FILE_SOURCE_CLASS
+GES_TIMELINE_FILE_SOURCE_GET_CLASS
+</SECTION>
+
+<SECTION>
+<FILE>ges-track-object</FILE>
+<TITLE>GESTrackObject</TITLE>
+GES_TRACK_OBJECT_START
+GES_TRACK_OBJECT_INPOINT
+GES_TRACK_OBJECT_DURATION
+GESTrackObjectPrivate
+GESTrackObject
+GESTrackObjectClass
+ges_track_object_set_track
+ges_track_object_set_timeline_object
+ges_track_object_set_start_internal
+ges_track_object_set_inpoint_internal
+ges_track_object_set_duration_internal
+ges_track_object_set_priority_internal
+ges_track_object_set_priority_offset_internal
+ges_track_object_get_priority_offset
+ges_track_object_set_active
+<SUBSECTION Standard>
+GES_TRACK_OBJECT
+GES_IS_TRACK_OBJECT
+GES_TYPE_TRACK_OBJECT
+ges_track_object_get_type
+GES_TRACK_OBJECT_CLASS
+GES_IS_TRACK_OBJECT_CLASS
+GES_TRACK_OBJECT_GET_CLASS
+</SECTION>
+
+<SECTION>
+<FILE>ges-timeline-pipeline</FILE>
+<TITLE>GESTimelinePipeline</TITLE>
+GESTimelinePipelinePrivate
+GESPipelineFlags
+GESTimelinePipeline
+GESTimelinePipelineClass
+ges_timeline_pipeline_new
+ges_timeline_pipeline_add_timeline
+ges_timeline_pipeline_set_render_settings
+ges_timeline_pipeline_set_mode
+ges_timeline_pipeline_get_thumbnail_buffer
+ges_timeline_pipeline_get_thumbnail_rgb24
+ges_timeline_pipeline_save_thumbnail
+<SUBSECTION Standard>
+GES_TIMELINE_PIPELINE
+GES_IS_TIMELINE_PIPELINE
+GES_TYPE_TIMELINE_PIPELINE
+ges_timeline_pipeline_get_type
+GES_TIMELINE_PIPELINE_CLASS
+GES_IS_TIMELINE_PIPELINE_CLASS
+GES_TIMELINE_PIPELINE_GET_CLASS
+</SECTION>
+
+<SECTION>
+<FILE>ges-timeline-operation</FILE>
+<TITLE>GESTimelineOperation</TITLE>
+GESTimelineOperationPrivate
+GESTimelineOperation
+GESTimelineOperationClass
+<SUBSECTION Standard>
+GES_TIMELINE_OPERATION
+GES_IS_TIMELINE_OPERATION
+GES_TYPE_TIMELINE_OPERATION
+ges_timeline_operation_get_type
+GES_TIMELINE_OPERATION_CLASS
+GES_IS_TIMELINE_OPERATION_CLASS
+GES_TIMELINE_OPERATION_GET_CLASS
+</SECTION>
+
+<SECTION>
+<FILE>ges-timeline-overlay</FILE>
+<TITLE>GESTimelineOverlay</TITLE>
+GESTimelineOverlayPrivate
+GESTimelineOverlay
+GESTimelineOverlayClass
+<SUBSECTION Standard>
+GES_TIMELINE_OVERLAY
+GES_IS_TIMELINE_OVERLAY
+GES_TYPE_TIMELINE_OVERLAY
+ges_timeline_overlay_get_type
+GES_TIMELINE_OVERLAY_CLASS
+GES_IS_TIMELINE_OVERLAY_CLASS
+GES_TIMELINE_OVERLAY_GET_CLASS
+</SECTION>
+
+<SECTION>
+<FILE>ges-custom-timeline-source</FILE>
+<TITLE>GESCustomTimelineSource</TITLE>
+GESCustomTimelineSourcePrivate
+GESFillTrackObjectUserFunc
+GESCustomTimelineSource
+GESCustomTimelineSourceClass
+ges_custom_timeline_source_new
+<SUBSECTION Standard>
+GES_CUSTOM_TIMELINE_SOURCE
+GES_IS_CUSTOM_TIMELINE_SOURCE
+GES_TYPE_CUSTOM_TIMELINE_SOURCE
+ges_custom_timeline_source_get_type
+GES_CUSTOM_TIMELINE_SOURCE_CLASS
+GES_IS_CUSTOM_TIMELINE_SOURCE_CLASS
+GES_CUSTOM_TIMELINE_SOURCE_GET_CLASS
+</SECTION>
+
+<SECTION>
+<FILE>ges-track-title-source</FILE>
+<TITLE>GESTrackTitleSource</TITLE>
+GESTrackTitleSourcePrivate
+GESTrackTitleSource
+GESTrackTitleSourceClass
+ges_track_title_source_set_text
+ges_track_title_source_set_font_desc
+ges_track_title_source_set_halignment
+ges_track_title_source_set_valignment
+ges_track_title_source_new
+<SUBSECTION Standard>
+GES_TRACK_TITLE_SOURCE
+GES_IS_TRACK_TITLE_SOURCE
+GES_TYPE_TRACK_TITLE_SOURCE
+ges_track_title_source_get_type
+GES_TRACK_TITLE_SOURCE_CLASS
+GES_IS_TRACK_TITLE_SOURCE_CLASS
+GES_TRACK_TITLE_SOURCE_GET_CLASS
+</SECTION>
+
+<SECTION>
+<FILE>ges-track-audio-transition</FILE>
+<TITLE>GESTrackAudioTransition</TITLE>
+GESTrackAudioTransitionPrivate
+GESTrackAudioTransition
+GESTrackAudioTransitionClass
+ges_track_audio_transition_new
+<SUBSECTION Standard>
+GES_TRACK_AUDIO_TRANSITION
+GES_IS_TRACK_AUDIO_TRANSITION
+GES_TYPE_TRACK_AUDIO_TRANSITION
+ges_track_audio_transition_get_type
+GES_TRACK_AUDIO_TRANSITION_CLASS
+GES_IS_TRACK_AUDIO_TRANSITION_CLASS
+GES_TRACK_AUDIO_TRANSITION_GET_CLASS
+</SECTION>
+
+<SECTION>
+<FILE>ges-timeline-title-source</FILE>
+<TITLE>GESTimelineTitleSource</TITLE>
+GESTimelineTitleSourcePrivate
+GESTimelineTitleSource
+GESTimelineTitleSourceClass
+ges_timeline_title_source_new
+<SUBSECTION Standard>
+GES_TIMELINE_TITLE_SOURCE
+GES_IS_TIMELINE_TITLE_SOURCE
+GES_TYPE_TIMELINE_TITLE_SOURCE
+ges_timeline_title_source_get_type
+GES_TIMELINE_TITLE_SOURCE_CLASS
+GES_IS_TIMELINE_TITLE_SOURCE_CLASS
+GES_TIMELINE_TITLE_SOURCE_GET_CLASS
+</SECTION>
+
+<SECTION>
+<FILE>ges-keyfile-formatter</FILE>
+<TITLE>GESKeyfileFormatter</TITLE>
+GESKeyfileFormatter
+GESKeyfileFormatterClass
+ges_keyfile_formatter_new
+<SUBSECTION Standard>
+GES_KEYFILE_FORMATTER
+GES_IS_KEYFILE_FORMATTER
+GES_TYPE_KEYFILE_FORMATTER
+ges_keyfile_formatter_get_type
+GES_KEYFILE_FORMATTER_CLASS
+GES_IS_KEYFILE_FORMATTER_CLASS
+GES_KEYFILE_FORMATTER_GET_CLASS
+</SECTION>
+
+<SECTION>
+<FILE>ges-track-filesource</FILE>
+<TITLE>GESTrackFileSource</TITLE>
+GESTrackFileSourcePrivate
+GESTrackFileSource
+GESTrackFileSourceClass
+ges_track_filesource_new
+<SUBSECTION Standard>
+GES_TRACK_FILESOURCE
+GES_IS_TRACK_FILESOURCE
+GES_TYPE_TRACK_FILESOURCE
+ges_track_filesource_get_type
+GES_TRACK_FILESOURCE_CLASS
+GES_IS_TRACK_FILESOURCE_CLASS
+GES_TRACK_FILESOURCE_GET_CLASS
+</SECTION>
+
+<SECTION>
+<FILE>ges-track-text-overlay</FILE>
+<TITLE>GESTrackTextOverlay</TITLE>
+GESTrackTextOverlayPrivate
+GESTrackTextOverlay
+GESTrackTextOverlayClass
+ges_track_text_overlay_set_text
+ges_track_text_overlay_set_font_desc
+ges_track_text_overlay_set_halignment
+ges_track_text_overlay_set_valignment
+ges_track_text_overlay_new
+<SUBSECTION Standard>
+GES_TRACK_TEXT_OVERLAY
+GES_IS_TRACK_TEXT_OVERLAY
+GES_TYPE_TRACK_TEXT_OVERLAY
+ges_track_text_overlay_get_type
+GES_TRACK_TEXT_OVERLAY_CLASS
+GES_IS_TRACK_TEXT_OVERLAY_CLASS
+GES_TRACK_TEXT_OVERLAY_GET_CLASS
+</SECTION>
+
+<SECTION>
+<FILE>ges-types</FILE>
+GES_PADDING
+GESCustomTimelineSource
+GESCustomTimelineSourceClass
+GESSimpleTimelineLayer
+GESSimpleTimelineLayerClass
+GESTimeline
+GESTimelineClass
+GESTimelineLayer
+GESTimelineLayerClass
+GESTimelineObject
+GESTimelineObjectClass
+GESTimelineOperation
+GESTimelineOperationClass
+GESTimelinePipeline
+GESTimelinePipelineClass
+GESTimelineSource
+GESTimelineSourceClass
+GESTimelineFileSource
+GESTimelineFileSourceClass
+GESTimelineTransition
+GESTimelineTransitionClass
+GESTimelineStandardTransition
+GESTimelineStandardTransitionClass
+GESTimelineTestSource
+GESTimelineTestSourceClass
+GESTimelineTitleSource
+GESTimelineTitleSourceClass
+GESTimelineOverlay
+GESTimelineOverlayClass
+GESTimelineTextOverlay
+GESTimelineTextOverlayClass
+GESTrack
+GESTrackClass
+GESTrackObject
+GESTrackObjectClass
+GESTrackSource
+GESTrackSourceClass
+GESTrackOperation
+GESTrackOperationClass
+GESTrackFileSource
+GESTrackFileSourceClass
+GESTrackImageSource
+GESTrackImageSourceClass
+GESTrackTransition
+GESTrackTransitionClass
+GESTrackAudioTransition
+GESTrackVideoTransition
+GESTrackVideoTestSource
+GESTrackAudioTestSource
+GESTrackTitleSource
+GESTrackTextOverlay
+GESFormatter
+GESFormatterClass
+GESKeyfileFormatter
+GESKeyfileFormatterClass
+</SECTION>
+
+<SECTION>
+<FILE>ges</FILE>
+ges_init
+</SECTION>
+
+<SECTION>
+<FILE>ges-enums</FILE>
+GES_TYPE_TRACK_TYPE
+ges_track_type_get_type
+GESTrackType
+GESVideoStandardTransitionType
+GES_VIDEO_STANDARD_TRANSITION_TYPE_TYPE
+ges_video_standard_transition_type_get_type
+GESTextVAlign
+DEFAULT_VALIGNMENT
+GES_TEXT_VALIGN_TYPE
+ges_text_valign_get_type
+GESTextHAlign
+DEFAULT_HALIGNMENT
+GES_TEXT_HALIGN_TYPE
+ges_text_halign_get_type
+GESVideoTestPattern
+GES_VIDEO_TEST_PATTERN_TYPE
+ges_video_test_pattern_get_type
+</SECTION>
+
+<SECTION>
+<FILE>ges-screenshot</FILE>
+ges_play_sink_convert_frame
+</SECTION>
+
+<SECTION>
+<FILE>ges-utils</FILE>
+ges_timeline_new_audio_video
+</SECTION>
+
diff --git a/docs/libs/ges-decl.txt.bak b/docs/libs/ges-decl.txt.bak
new file mode 100644 (file)
index 0000000..2e1eb75
--- /dev/null
@@ -0,0 +1,2919 @@
+<MACRO>
+<NAME>GES_PADDING</NAME>
+#define GES_PADDING            4
+</MACRO>
+<STRUCT>
+<NAME>GESCustomTimelineSource</NAME>
+</STRUCT>
+<STRUCT>
+<NAME>GESCustomTimelineSourceClass</NAME>
+</STRUCT>
+<STRUCT>
+<NAME>GESSimpleTimelineLayer</NAME>
+</STRUCT>
+<STRUCT>
+<NAME>GESSimpleTimelineLayerClass</NAME>
+</STRUCT>
+<STRUCT>
+<NAME>GESTimeline</NAME>
+</STRUCT>
+<STRUCT>
+<NAME>GESTimelineClass</NAME>
+</STRUCT>
+<STRUCT>
+<NAME>GESTimelineLayer</NAME>
+</STRUCT>
+<STRUCT>
+<NAME>GESTimelineLayerClass</NAME>
+</STRUCT>
+<STRUCT>
+<NAME>GESTimelineObject</NAME>
+</STRUCT>
+<STRUCT>
+<NAME>GESTimelineObjectClass</NAME>
+</STRUCT>
+<STRUCT>
+<NAME>GESTimelineOperation</NAME>
+</STRUCT>
+<STRUCT>
+<NAME>GESTimelineOperationClass</NAME>
+</STRUCT>
+<STRUCT>
+<NAME>GESTimelinePipeline</NAME>
+</STRUCT>
+<STRUCT>
+<NAME>GESTimelinePipelineClass</NAME>
+</STRUCT>
+<STRUCT>
+<NAME>GESTimelineSource</NAME>
+</STRUCT>
+<STRUCT>
+<NAME>GESTimelineSourceClass</NAME>
+</STRUCT>
+<STRUCT>
+<NAME>GESTimelineFileSource</NAME>
+</STRUCT>
+<STRUCT>
+<NAME>GESTimelineFileSourceClass</NAME>
+</STRUCT>
+<STRUCT>
+<NAME>GESTimelineTransition</NAME>
+</STRUCT>
+<STRUCT>
+<NAME>GESTimelineTransitionClass</NAME>
+</STRUCT>
+<STRUCT>
+<NAME>GESTimelineStandardTransition</NAME>
+</STRUCT>
+<STRUCT>
+<NAME>GESTimelineStandardTransitionClass</NAME>
+</STRUCT>
+<STRUCT>
+<NAME>GESTimelineTestSource</NAME>
+</STRUCT>
+<STRUCT>
+<NAME>GESTimelineTestSourceClass</NAME>
+</STRUCT>
+<STRUCT>
+<NAME>GESTimelineTitleSource</NAME>
+</STRUCT>
+<STRUCT>
+<NAME>GESTimelineTitleSourceClass</NAME>
+</STRUCT>
+<STRUCT>
+<NAME>GESTimelineOverlay</NAME>
+</STRUCT>
+<STRUCT>
+<NAME>GESTimelineOverlayClass</NAME>
+</STRUCT>
+<STRUCT>
+<NAME>GESTimelineTextOverlay</NAME>
+</STRUCT>
+<STRUCT>
+<NAME>GESTimelineTextOverlayClass</NAME>
+</STRUCT>
+<STRUCT>
+<NAME>GESTrack</NAME>
+</STRUCT>
+<STRUCT>
+<NAME>GESTrackClass</NAME>
+</STRUCT>
+<STRUCT>
+<NAME>GESTrackObject</NAME>
+</STRUCT>
+<STRUCT>
+<NAME>GESTrackObjectClass</NAME>
+</STRUCT>
+<STRUCT>
+<NAME>GESTrackSource</NAME>
+</STRUCT>
+<STRUCT>
+<NAME>GESTrackSourceClass</NAME>
+</STRUCT>
+<STRUCT>
+<NAME>GESTrackOperation</NAME>
+</STRUCT>
+<STRUCT>
+<NAME>GESTrackOperationClass</NAME>
+</STRUCT>
+<STRUCT>
+<NAME>GESTrackFileSource</NAME>
+</STRUCT>
+<STRUCT>
+<NAME>GESTrackFileSourceClass</NAME>
+</STRUCT>
+<STRUCT>
+<NAME>GESTrackImageSource</NAME>
+</STRUCT>
+<STRUCT>
+<NAME>GESTrackImageSourceClass</NAME>
+</STRUCT>
+<STRUCT>
+<NAME>GESTrackTransition</NAME>
+</STRUCT>
+<STRUCT>
+<NAME>GESTrackTransitionClass</NAME>
+</STRUCT>
+<STRUCT>
+<NAME>GESTrackAudioTransition</NAME>
+</STRUCT>
+<STRUCT>
+<NAME>GESTrackVideoTransition</NAME>
+</STRUCT>
+<STRUCT>
+<NAME>GESTrackVideoTestSource</NAME>
+</STRUCT>
+<STRUCT>
+<NAME>GESTrackAudioTestSource</NAME>
+</STRUCT>
+<STRUCT>
+<NAME>GESTrackTitleSource</NAME>
+</STRUCT>
+<STRUCT>
+<NAME>GESTrackTextOverlay</NAME>
+</STRUCT>
+<STRUCT>
+<NAME>GESFormatter</NAME>
+</STRUCT>
+<STRUCT>
+<NAME>GESFormatterClass</NAME>
+</STRUCT>
+<STRUCT>
+<NAME>GESKeyfileFormatter</NAME>
+</STRUCT>
+<STRUCT>
+<NAME>GESKeyfileFormatterClass</NAME>
+</STRUCT>
+<MACRO>
+<NAME>GES_TYPE_TRACK_TRANSITION</NAME>
+#define GES_TYPE_TRACK_TRANSITION ges_track_transition_get_type()
+</MACRO>
+<MACRO>
+<NAME>GES_TRACK_TRANSITION</NAME>
+#define GES_TRACK_TRANSITION(obj) \
+    (G_TYPE_CHECK_INSTANCE_CAST ((obj), GES_TYPE_TRACK_TRANSITION,\
+        GESTrackTransition))
+</MACRO>
+<MACRO>
+<NAME>GES_TRACK_TRANSITION_CLASS</NAME>
+#define GES_TRACK_TRANSITION_CLASS(klass) \
+    (G_TYPE_CHECK_CLASS_CAST ((klass), GES_TYPE_TRACK_TRANSITION,\
+        GESTrackTransitionClass))
+</MACRO>
+<MACRO>
+<NAME>GES_IS_TRACK_TRANSITION</NAME>
+#define GES_IS_TRACK_TRANSITION(obj) \
+    (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GES_TYPE_TRACK_TRANSITION))
+</MACRO>
+<MACRO>
+<NAME>GES_IS_TRACK_TRANSITION_CLASS</NAME>
+#define GES_IS_TRACK_TRANSITION_CLASS(klass) \
+    (G_TYPE_CHECK_CLASS_TYPE ((klass), GES_TYPE_TRACK_TRANSITION))
+</MACRO>
+<MACRO>
+<NAME>GES_TRACK_TRANSITION_GET_CLASS</NAME>
+#define GES_TRACK_TRANSITION_GET_CLASS(obj) \
+    (G_TYPE_INSTANCE_GET_CLASS ((obj), GES_TYPE_TRACK_TRANSITION,\
+        GESTrackTransitionClass))
+</MACRO>
+<STRUCT>
+<NAME>GESTrackTransitionPrivate</NAME>
+</STRUCT>
+<STRUCT>
+<NAME>GESTrackTransition</NAME>
+struct _GESTrackTransition
+{
+  /*< private >*/
+  GESTrackOperation parent;
+
+  GESTrackTransitionPrivate *priv;
+
+  /* Padding for API extension */
+  gpointer _ges_reserved[GES_PADDING];
+};
+</STRUCT>
+<STRUCT>
+<NAME>GESTrackTransitionClass</NAME>
+struct _GESTrackTransitionClass {
+  /*< private >*/
+  GESTrackOperationClass parent_class;
+  
+  /*< private >*/
+  /* Padding for API extension */
+  gpointer _ges_reserved[GES_PADDING];
+};
+</STRUCT>
+<FUNCTION>
+<NAME>ges_track_transition_get_type</NAME>
+<RETURNS>GType </RETURNS>
+void 
+</FUNCTION>
+<MACRO>
+<NAME>GES_TYPE_TIMELINE_SOURCE</NAME>
+#define GES_TYPE_TIMELINE_SOURCE ges_timeline_source_get_type()
+</MACRO>
+<MACRO>
+<NAME>GES_TIMELINE_SOURCE</NAME>
+#define GES_TIMELINE_SOURCE(obj) \
+  (G_TYPE_CHECK_INSTANCE_CAST ((obj), GES_TYPE_TIMELINE_SOURCE, GESTimelineSource))
+</MACRO>
+<MACRO>
+<NAME>GES_TIMELINE_SOURCE_CLASS</NAME>
+#define GES_TIMELINE_SOURCE_CLASS(klass) \
+  (G_TYPE_CHECK_CLASS_CAST ((klass), GES_TYPE_TIMELINE_SOURCE, GESTimelineSourceClass))
+</MACRO>
+<MACRO>
+<NAME>GES_IS_TIMELINE_SOURCE</NAME>
+#define GES_IS_TIMELINE_SOURCE(obj) \
+  (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GES_TYPE_TIMELINE_SOURCE))
+</MACRO>
+<MACRO>
+<NAME>GES_IS_TIMELINE_SOURCE_CLASS</NAME>
+#define GES_IS_TIMELINE_SOURCE_CLASS(klass) \
+  (G_TYPE_CHECK_CLASS_TYPE ((klass), GES_TYPE_TIMELINE_SOURCE))
+</MACRO>
+<MACRO>
+<NAME>GES_TIMELINE_SOURCE_GET_CLASS</NAME>
+#define GES_TIMELINE_SOURCE_GET_CLASS(obj) \
+  (G_TYPE_INSTANCE_GET_CLASS ((obj), GES_TYPE_TIMELINE_SOURCE, GESTimelineSourceClass))
+</MACRO>
+<STRUCT>
+<NAME>GESTimelineSourcePrivate</NAME>
+</STRUCT>
+<STRUCT>
+<NAME>GESTimelineSource</NAME>
+struct _GESTimelineSource {
+  GESTimelineObject parent;
+
+  /*< private >*/
+  GESTimelineSourcePrivate *priv;
+
+  /* Padding for API extension */
+  gpointer _ges_reserved[GES_PADDING];
+};
+</STRUCT>
+<STRUCT>
+<NAME>GESTimelineSourceClass</NAME>
+struct _GESTimelineSourceClass {
+  /*< private >*/
+  GESTimelineObjectClass parent_class;
+
+  /* Padding for API extension */
+  gpointer _ges_reserved[GES_PADDING];
+};
+</STRUCT>
+<FUNCTION>
+<NAME>ges_timeline_source_get_type</NAME>
+<RETURNS>GType </RETURNS>
+void 
+</FUNCTION>
+<MACRO>
+<NAME>GES_TYPE_FORMATTER</NAME>
+#define GES_TYPE_FORMATTER ges_formatter_get_type()
+</MACRO>
+<MACRO>
+<NAME>GES_FORMATTER</NAME>
+#define GES_FORMATTER(obj) \
+  (G_TYPE_CHECK_INSTANCE_CAST ((obj), GES_TYPE_FORMATTER, GESFormatter))
+</MACRO>
+<MACRO>
+<NAME>GES_FORMATTER_CLASS</NAME>
+#define GES_FORMATTER_CLASS(klass) \
+  (G_TYPE_CHECK_CLASS_CAST ((klass), GES_TYPE_FORMATTER, GESFormatterClass))
+</MACRO>
+<MACRO>
+<NAME>GES_IS_FORMATTER</NAME>
+#define GES_IS_FORMATTER(obj) \
+  (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GES_TYPE_FORMATTER))
+</MACRO>
+<MACRO>
+<NAME>GES_IS_FORMATTER_CLASS</NAME>
+#define GES_IS_FORMATTER_CLASS(klass) \
+  (G_TYPE_CHECK_CLASS_TYPE ((klass), GES_TYPE_FORMATTER))
+</MACRO>
+<MACRO>
+<NAME>GES_FORMATTER_GET_CLASS</NAME>
+#define GES_FORMATTER_GET_CLASS(obj) \
+  (G_TYPE_INSTANCE_GET_CLASS ((obj), GES_TYPE_FORMATTER, GESFormatterClass))
+</MACRO>
+<STRUCT>
+<NAME>GESFormatter</NAME>
+struct _GESFormatter {
+  GObject parent;
+
+  /*< private >*/
+  gchar    *data;
+  gsize    length;
+
+  /* Padding for API extension */
+  gpointer _ges_reserved[GES_PADDING];
+};
+</STRUCT>
+<USER_FUNCTION>
+<NAME>GESFormatterCanLoadURIMethod</NAME>
+<RETURNS>gboolean </RETURNS>
+gchar * uri
+</USER_FUNCTION>
+<USER_FUNCTION>
+<NAME>GESFormatterCanSaveURIMethod</NAME>
+<RETURNS>gboolean </RETURNS>
+gchar * uri
+</USER_FUNCTION>
+<USER_FUNCTION>
+<NAME>GESFormatterLoadFromURIMethod</NAME>
+<RETURNS>gboolean </RETURNS>
+GESFormatter *formatter,
+                                                    GESTimeline *timeline,
+                                                    gchar * uri
+</USER_FUNCTION>
+<USER_FUNCTION>
+<NAME>GESFormatterSaveToURIMethod</NAME>
+<RETURNS>gboolean </RETURNS>
+GESFormatter *formatter,
+                                                  GESTimeline *timeline,
+                                                  gchar * uri
+</USER_FUNCTION>
+<USER_FUNCTION>
+<NAME>GESFormatterSaveMethod</NAME>
+<RETURNS>gboolean </RETURNS>
+GESFormatter * formatter,
+                                             GESTimeline * timeline
+</USER_FUNCTION>
+<USER_FUNCTION>
+<NAME>GESFormatterLoadMethod</NAME>
+<RETURNS>gboolean </RETURNS>
+GESFormatter * formatter,
+                                             GESTimeline * timeline
+</USER_FUNCTION>
+<STRUCT>
+<NAME>GESFormatterClass</NAME>
+struct _GESFormatterClass {
+  GObjectClass parent_class;
+
+  /* FIXME : formatter name */
+  /* FIXME : formatter description */
+  /* FIXME : format name/mime-type */
+
+  GESFormatterCanLoadURIMethod can_load_uri;
+  GESFormatterCanSaveURIMethod can_save_uri;
+  GESFormatterLoadFromURIMethod load_from_uri;
+  GESFormatterSaveToURIMethod save_to_uri;
+
+  /*< private >*/
+  GESFormatterSaveMethod save;
+  GESFormatterLoadMethod load;
+
+  /* Padding for API extension */
+  gpointer _ges_reserved[GES_PADDING];
+};
+</STRUCT>
+<FUNCTION>
+<NAME>ges_formatter_get_type</NAME>
+<RETURNS>GType </RETURNS>
+void 
+</FUNCTION>
+<FUNCTION>
+<NAME>ges_formatter_new_for_uri</NAME>
+<RETURNS>GESFormatter *</RETURNS>
+gchar *uri 
+</FUNCTION>
+<FUNCTION>
+<NAME>ges_default_formatter_new</NAME>
+<RETURNS>GESFormatter *</RETURNS>
+void 
+</FUNCTION>
+<FUNCTION>
+<NAME>ges_formatter_can_load_uri</NAME>
+<RETURNS>gboolean </RETURNS>
+gchar * uri 
+</FUNCTION>
+<FUNCTION>
+<NAME>ges_formatter_can_save_uri</NAME>
+<RETURNS>gboolean </RETURNS>
+gchar * uri 
+</FUNCTION>
+<FUNCTION>
+<NAME>ges_formatter_load_from_uri</NAME>
+<RETURNS>gboolean </RETURNS>
+GESFormatter * formatter, GESTimeline  *timeline, gchar *uri 
+</FUNCTION>
+<FUNCTION>
+<NAME>ges_formatter_save_to_uri</NAME>
+<RETURNS>gboolean </RETURNS>
+GESFormatter * formatter, GESTimeline *timeline, gchar *uri 
+</FUNCTION>
+<FUNCTION>
+<NAME>ges_formatter_load</NAME>
+<RETURNS>gboolean </RETURNS>
+GESFormatter * formatter, GESTimeline * timeline 
+</FUNCTION>
+<FUNCTION>
+<NAME>ges_formatter_save</NAME>
+<RETURNS>gboolean </RETURNS>
+GESFormatter * formatter, GESTimeline * timeline 
+</FUNCTION>
+<FUNCTION>
+<NAME>ges_formatter_set_data</NAME>
+<RETURNS>void </RETURNS>
+GESFormatter * formatter, void *data, gsize length 
+</FUNCTION>
+<FUNCTION>
+<NAME>ges_formatter_get_data</NAME>
+<RETURNS>void *</RETURNS>
+GESFormatter *formatter, gsize *length 
+</FUNCTION>
+<FUNCTION>
+<NAME>ges_formatter_clear_data</NAME>
+<RETURNS>void </RETURNS>
+GESFormatter *formatter 
+</FUNCTION>
+<MACRO>
+<NAME>GES_TYPE_TRACK_OPERATION</NAME>
+#define GES_TYPE_TRACK_OPERATION ges_track_operation_get_type()
+</MACRO>
+<MACRO>
+<NAME>GES_TRACK_OPERATION</NAME>
+#define GES_TRACK_OPERATION(obj) \
+  (G_TYPE_CHECK_INSTANCE_CAST ((obj), GES_TYPE_TRACK_OPERATION, GESTrackOperation))
+</MACRO>
+<MACRO>
+<NAME>GES_TRACK_OPERATION_CLASS</NAME>
+#define GES_TRACK_OPERATION_CLASS(klass) \
+  (G_TYPE_CHECK_CLASS_CAST ((klass), GES_TYPE_TRACK_OPERATION, GESTrackOperationClass))
+</MACRO>
+<MACRO>
+<NAME>GES_IS_TRACK_OPERATION</NAME>
+#define GES_IS_TRACK_OPERATION(obj) \
+  (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GES_TYPE_TRACK_OPERATION))
+</MACRO>
+<MACRO>
+<NAME>GES_IS_TRACK_OPERATION_CLASS</NAME>
+#define GES_IS_TRACK_OPERATION_CLASS(klass) \
+  (G_TYPE_CHECK_CLASS_TYPE ((klass), GES_TYPE_TRACK_OPERATION))
+</MACRO>
+<MACRO>
+<NAME>GES_TRACK_OPERATION_GET_CLASS</NAME>
+#define GES_TRACK_OPERATION_GET_CLASS(obj) \
+  (G_TYPE_INSTANCE_GET_CLASS ((obj), GES_TYPE_TRACK_OPERATION, GESTrackOperationClass))
+</MACRO>
+<STRUCT>
+<NAME>GESTrackOperationPrivate</NAME>
+</STRUCT>
+<STRUCT>
+<NAME>GESTrackOperation</NAME>
+struct _GESTrackOperation {
+  /*< private >*/
+  GESTrackObject parent;
+
+  GESTrackOperationPrivate *priv;
+
+  /* Padding for API extension */
+  gpointer _ges_reserved[GES_PADDING];
+};
+</STRUCT>
+<STRUCT>
+<NAME>GESTrackOperationClass</NAME>
+struct _GESTrackOperationClass {
+  /*< private >*/
+  GESTrackObjectClass parent_class;
+
+  /*< private >*/
+  /* Padding for API extension */
+  gpointer _ges_reserved[GES_PADDING];
+};
+</STRUCT>
+<FUNCTION>
+<NAME>ges_track_operation_get_type</NAME>
+<RETURNS>GType </RETURNS>
+void 
+</FUNCTION>
+<MACRO>
+<NAME>GES_TYPE_TIMELINE_TEXT_OVERLAY</NAME>
+#define GES_TYPE_TIMELINE_TEXT_OVERLAY ges_timeline_text_overlay_get_type()
+</MACRO>
+<MACRO>
+<NAME>GES_TIMELINE_TEXT_OVERLAY</NAME>
+#define GES_TIMELINE_TEXT_OVERLAY(obj) \
+  (G_TYPE_CHECK_INSTANCE_CAST ((obj), GES_TYPE_TIMELINE_TEXT_OVERLAY, GESTimelineTextOverlay))
+</MACRO>
+<MACRO>
+<NAME>GES_TIMELINE_TEXT_OVERLAY_CLASS</NAME>
+#define GES_TIMELINE_TEXT_OVERLAY_CLASS(klass) \
+  (G_TYPE_CHECK_CLASS_CAST ((klass), GES_TYPE_TIMELINE_TEXT_OVERLAY, GESTimelineTextOverlayClass))
+</MACRO>
+<MACRO>
+<NAME>GES_IS_TIMELINE_TEXT_OVERLAY</NAME>
+#define GES_IS_TIMELINE_TEXT_OVERLAY(obj) \
+  (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GES_TYPE_TIMELINE_TEXT_OVERLAY))
+</MACRO>
+<MACRO>
+<NAME>GES_IS_TIMELINE_TEXT_OVERLAY_CLASS</NAME>
+#define GES_IS_TIMELINE_TEXT_OVERLAY_CLASS(klass) \
+  (G_TYPE_CHECK_CLASS_TYPE ((klass), GES_TYPE_TIMELINE_TEXT_OVERLAY))
+</MACRO>
+<MACRO>
+<NAME>GES_TIMELINE_TEXT_OVERLAY_GET_CLASS</NAME>
+#define GES_TIMELINE_TEXT_OVERLAY_GET_CLASS(obj) \
+  (G_TYPE_INSTANCE_GET_CLASS ((obj), GES_TYPE_TIMELINE_TEXT_OVERLAY, GESTimelineTextOverlayClass))
+</MACRO>
+<STRUCT>
+<NAME>GESTimelineTextOverlayPrivate</NAME>
+</STRUCT>
+<STRUCT>
+<NAME>GESTimelineTextOverlay</NAME>
+struct _GESTimelineTextOverlay {
+  /*< private >*/
+  GESTimelineOverlay parent;
+
+  gboolean mute;
+  gchar *text;
+  gchar *font_desc;
+  GESTextHAlign halign;
+  GESTextVAlign valign;
+
+  GESTimelineTextOverlayPrivate *priv;
+
+  /* Padding for API extension */
+  gpointer _ges_reserved[GES_PADDING];
+};
+</STRUCT>
+<STRUCT>
+<NAME>GESTimelineTextOverlayClass</NAME>
+struct _GESTimelineTextOverlayClass {
+  /*< private >*/
+
+  GESTimelineOverlayClass parent_class;
+
+  /* Padding for API extension */
+  gpointer _ges_reserved[GES_PADDING];
+};
+</STRUCT>
+<FUNCTION>
+<NAME>ges_timeline_text_overlay_get_type</NAME>
+<RETURNS>GType </RETURNS>
+void 
+</FUNCTION>
+<FUNCTION>
+<NAME>ges_timeline_text_overlay_new</NAME>
+<RETURNS>GESTimelineTextOverlay*</RETURNS>
+void 
+</FUNCTION>
+<MACRO>
+<NAME>GES_TYPE_TIMELINE_TRANSITION</NAME>
+#define GES_TYPE_TIMELINE_TRANSITION ges_timeline_transition_get_type()
+</MACRO>
+<MACRO>
+<NAME>GES_TIMELINE_TRANSITION</NAME>
+#define GES_TIMELINE_TRANSITION(obj) \
+  (G_TYPE_CHECK_INSTANCE_CAST ((obj), GES_TYPE_TIMELINE_TRANSITION, GESTimelineTransition))
+</MACRO>
+<MACRO>
+<NAME>GES_TIMELINE_TRANSITION_CLASS</NAME>
+#define GES_TIMELINE_TRANSITION_CLASS(klass) \
+  (G_TYPE_CHECK_CLASS_CAST ((klass), GES_TYPE_TIMELINE_TRANSITION, GESTimelineTransitionClass))
+</MACRO>
+<MACRO>
+<NAME>GES_IS_TIMELINE_TRANSITION</NAME>
+#define GES_IS_TIMELINE_TRANSITION(obj) \
+  (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GES_TYPE_TIMELINE_TRANSITION))
+</MACRO>
+<MACRO>
+<NAME>GES_IS_TIMELINE_TRANSITION_CLASS</NAME>
+#define GES_IS_TIMELINE_TRANSITION_CLASS(klass) \
+  (G_TYPE_CHECK_CLASS_TYPE ((klass), GES_TYPE_TIMELINE_TRANSITION))
+</MACRO>
+<MACRO>
+<NAME>GES_TIMELINE_TRANSITION_GET_CLASS</NAME>
+#define GES_TIMELINE_TRANSITION_GET_CLASS(obj) \
+  (G_TYPE_INSTANCE_GET_CLASS ((obj), GES_TYPE_TIMELINE_TRANSITION, GESTimelineTransitionClass))
+</MACRO>
+<STRUCT>
+<NAME>GESTimelineTransitionPrivate</NAME>
+</STRUCT>
+<STRUCT>
+<NAME>GESTimelineTransition</NAME>
+struct _GESTimelineTransition {
+  /*< private >*/
+  GESTimelineOperation parent;
+
+  /*< private >*/
+  GESTimelineTransitionPrivate *priv;
+
+  /* Padding for API extension */
+  gpointer _ges_reserved[GES_PADDING];
+};
+</STRUCT>
+<STRUCT>
+<NAME>GESTimelineTransitionClass</NAME>
+struct _GESTimelineTransitionClass {
+  /*< private >*/
+  GESTimelineOperationClass parent_class;
+
+  /* Padding for API extension */
+  gpointer _ges_reserved[GES_PADDING];
+};
+</STRUCT>
+<FUNCTION>
+<NAME>ges_timeline_transition_get_type</NAME>
+<RETURNS>GType </RETURNS>
+void 
+</FUNCTION>
+<FUNCTION>
+<NAME>ges_init</NAME>
+<RETURNS>void </RETURNS>
+void 
+</FUNCTION>
+<MACRO>
+<NAME>GES_TYPE_TRACK_TYPE</NAME>
+#define GES_TYPE_TRACK_TYPE (ges_track_type_get_type ())
+</MACRO>
+<FUNCTION>
+<NAME>ges_track_type_get_type</NAME>
+<RETURNS>GType </RETURNS>
+void 
+</FUNCTION>
+<ENUM>
+<NAME>GESTrackType</NAME>
+typedef enum {
+  GES_TRACK_TYPE_UNKNOWN = 1 << 0,
+  GES_TRACK_TYPE_AUDIO   = 1 << 1,
+  GES_TRACK_TYPE_VIDEO   = 1 << 2,
+  GES_TRACK_TYPE_TEXT    = 1 << 3,
+  GES_TRACK_TYPE_CUSTOM  = 1 << 4,
+} GESTrackType;
+</ENUM>
+<ENUM>
+<NAME>GESVideoStandardTransitionType</NAME>
+typedef enum {
+  GES_VIDEO_STANDARD_TRANSITION_TYPE_NONE = 0,
+  GES_VIDEO_STANDARD_TRANSITION_TYPE_BAR_WIPE_LR = 1,
+  GES_VIDEO_STANDARD_TRANSITION_TYPE_BAR_WIPE_TB = 2,
+  GES_VIDEO_STANDARD_TRANSITION_TYPE_BOX_WIPE_TL = 3,
+  GES_VIDEO_STANDARD_TRANSITION_TYPE_BOX_WIPE_TR = 4,
+  GES_VIDEO_STANDARD_TRANSITION_TYPE_BOX_WIPE_BR = 5,
+  GES_VIDEO_STANDARD_TRANSITION_TYPE_BOX_WIPE_BL = 6,
+  GES_VIDEO_STANDARD_TRANSITION_TYPE_FOUR_BOX_WIPE_CI = 7,
+  GES_VIDEO_STANDARD_TRANSITION_TYPE_FOUR_BOX_WIPE_CO = 8,
+  GES_VIDEO_STANDARD_TRANSITION_TYPE_BARNDOOR_V = 21,
+  GES_VIDEO_STANDARD_TRANSITION_TYPE_BARNDOOR_H = 22,
+  GES_VIDEO_STANDARD_TRANSITION_TYPE_BOX_WIPE_TC = 23,
+  GES_VIDEO_STANDARD_TRANSITION_TYPE_BOX_WIPE_RC = 24,
+  GES_VIDEO_STANDARD_TRANSITION_TYPE_BOX_WIPE_BC = 25,
+  GES_VIDEO_STANDARD_TRANSITION_TYPE_BOX_WIPE_LC = 26,
+  GES_VIDEO_STANDARD_TRANSITION_TYPE_DIAGONAL_TL = 41,
+  GES_VIDEO_STANDARD_TRANSITION_TYPE_DIAGONAL_TR = 42,
+  GES_VIDEO_STANDARD_TRANSITION_TYPE_BOWTIE_V = 43,
+  GES_VIDEO_STANDARD_TRANSITION_TYPE_BOWTIE_H = 44,
+  GES_VIDEO_STANDARD_TRANSITION_TYPE_BARNDOOR_DBL = 45,
+  GES_VIDEO_STANDARD_TRANSITION_TYPE_BARNDOOR_DTL = 46,
+  GES_VIDEO_STANDARD_TRANSITION_TYPE_MISC_DIAGONAL_DBD = 47,
+  GES_VIDEO_STANDARD_TRANSITION_TYPE_MISC_DIAGONAL_DD = 48,
+  GES_VIDEO_STANDARD_TRANSITION_TYPE_VEE_D = 61,
+  GES_VIDEO_STANDARD_TRANSITION_TYPE_VEE_L = 62,
+  GES_VIDEO_STANDARD_TRANSITION_TYPE_VEE_U = 63,
+  GES_VIDEO_STANDARD_TRANSITION_TYPE_VEE_R = 64,
+  GES_VIDEO_STANDARD_TRANSITION_TYPE_BARNVEE_D = 65,
+  GES_VIDEO_STANDARD_TRANSITION_TYPE_BARNVEE_L = 66,
+  GES_VIDEO_STANDARD_TRANSITION_TYPE_BARNVEE_U = 67,
+  GES_VIDEO_STANDARD_TRANSITION_TYPE_BARNVEE_R = 68,
+  GES_VIDEO_STANDARD_TRANSITION_TYPE_IRIS_RECT = 101,
+  GES_VIDEO_STANDARD_TRANSITION_TYPE_CLOCK_CW12 = 201,
+  GES_VIDEO_STANDARD_TRANSITION_TYPE_CLOCK_CW3 = 202,
+  GES_VIDEO_STANDARD_TRANSITION_TYPE_CLOCK_CW6 = 203,
+  GES_VIDEO_STANDARD_TRANSITION_TYPE_CLOCK_CW9 = 204,
+  GES_VIDEO_STANDARD_TRANSITION_TYPE_PINWHEEL_TBV = 205,
+  GES_VIDEO_STANDARD_TRANSITION_TYPE_PINWHEEL_TBH = 206,
+  GES_VIDEO_STANDARD_TRANSITION_TYPE_PINWHEEL_FB = 207,
+  GES_VIDEO_STANDARD_TRANSITION_TYPE_FAN_CT = 211,
+  GES_VIDEO_STANDARD_TRANSITION_TYPE_FAN_CR = 212,
+  GES_VIDEO_STANDARD_TRANSITION_TYPE_DOUBLEFAN_FOV = 213,
+  GES_VIDEO_STANDARD_TRANSITION_TYPE_DOUBLEFAN_FOH = 214,
+  GES_VIDEO_STANDARD_TRANSITION_TYPE_SINGLESWEEP_CWT = 221,
+  GES_VIDEO_STANDARD_TRANSITION_TYPE_SINGLESWEEP_CWR = 222,
+  GES_VIDEO_STANDARD_TRANSITION_TYPE_SINGLESWEEP_CWB = 223,
+  GES_VIDEO_STANDARD_TRANSITION_TYPE_SINGLESWEEP_CWL = 224,
+  GES_VIDEO_STANDARD_TRANSITION_TYPE_DOUBLESWEEP_PV = 225,
+  GES_VIDEO_STANDARD_TRANSITION_TYPE_DOUBLESWEEP_PD = 226,
+  GES_VIDEO_STANDARD_TRANSITION_TYPE_DOUBLESWEEP_OV = 227,
+  GES_VIDEO_STANDARD_TRANSITION_TYPE_DOUBLESWEEP_OH = 228,
+  GES_VIDEO_STANDARD_TRANSITION_TYPE_FAN_T = 231,
+  GES_VIDEO_STANDARD_TRANSITION_TYPE_FAN_R = 232,
+  GES_VIDEO_STANDARD_TRANSITION_TYPE_FAN_B = 233,
+  GES_VIDEO_STANDARD_TRANSITION_TYPE_FAN_L = 234,
+  GES_VIDEO_STANDARD_TRANSITION_TYPE_DOUBLEFAN_FIV = 235,
+  GES_VIDEO_STANDARD_TRANSITION_TYPE_DOUBLEFAN_FIH = 236,
+  GES_VIDEO_STANDARD_TRANSITION_TYPE_SINGLESWEEP_CWTL = 241,
+  GES_VIDEO_STANDARD_TRANSITION_TYPE_SINGLESWEEP_CWBL = 242,
+  GES_VIDEO_STANDARD_TRANSITION_TYPE_SINGLESWEEP_CWBR = 243,
+  GES_VIDEO_STANDARD_TRANSITION_TYPE_SINGLESWEEP_CWTR = 244,
+  GES_VIDEO_STANDARD_TRANSITION_TYPE_DOUBLESWEEP_PDTL = 245,
+  GES_VIDEO_STANDARD_TRANSITION_TYPE_DOUBLESWEEP_PDBL = 246,
+  GES_VIDEO_STANDARD_TRANSITION_TYPE_SALOONDOOR_T = 251,
+  GES_VIDEO_STANDARD_TRANSITION_TYPE_SALOONDOOR_L = 252,
+  GES_VIDEO_STANDARD_TRANSITION_TYPE_SALOONDOOR_B = 253,
+  GES_VIDEO_STANDARD_TRANSITION_TYPE_SALOONDOOR_R = 254,
+  GES_VIDEO_STANDARD_TRANSITION_TYPE_WINDSHIELD_R = 261,
+  GES_VIDEO_STANDARD_TRANSITION_TYPE_WINDSHIELD_U = 262,
+  GES_VIDEO_STANDARD_TRANSITION_TYPE_WINDSHIELD_V = 263,
+  GES_VIDEO_STANDARD_TRANSITION_TYPE_WINDSHIELD_H = 264,
+  GES_VIDEO_STANDARD_TRANSITION_TYPE_CROSSFADE = 512
+} GESVideoStandardTransitionType;
+</ENUM>
+<MACRO>
+<NAME>GES_VIDEO_STANDARD_TRANSITION_TYPE_TYPE</NAME>
+#define GES_VIDEO_STANDARD_TRANSITION_TYPE_TYPE \
+    (ges_video_standard_transition_type_get_type())
+</MACRO>
+<FUNCTION>
+<NAME>ges_video_standard_transition_type_get_type</NAME>
+<RETURNS>GType </RETURNS>
+void 
+</FUNCTION>
+<ENUM>
+<NAME>GESTextVAlign</NAME>
+typedef enum {
+    GES_TEXT_VALIGN_BASELINE,
+    GES_TEXT_VALIGN_BOTTOM,
+    GES_TEXT_VALIGN_TOP
+} GESTextVAlign;
+</ENUM>
+<MACRO>
+<NAME>DEFAULT_VALIGNMENT</NAME>
+#define DEFAULT_VALIGNMENT GES_TEXT_VALIGN_BASELINE
+</MACRO>
+<MACRO>
+<NAME>GES_TEXT_VALIGN_TYPE</NAME>
+#define GES_TEXT_VALIGN_TYPE\
+  (ges_text_valign_get_type ())
+</MACRO>
+<FUNCTION>
+<NAME>ges_text_valign_get_type</NAME>
+<RETURNS>GType </RETURNS>
+void 
+</FUNCTION>
+<ENUM>
+<NAME>GESTextHAlign</NAME>
+typedef enum {
+    GES_TEXT_HALIGN_LEFT,
+    GES_TEXT_HALIGN_CENTER,
+    GES_TEXT_HALIGN_RIGHT
+} GESTextHAlign;
+</ENUM>
+<MACRO>
+<NAME>DEFAULT_HALIGNMENT</NAME>
+#define DEFAULT_HALIGNMENT GES_TEXT_HALIGN_CENTER
+</MACRO>
+<MACRO>
+<NAME>GES_TEXT_HALIGN_TYPE</NAME>
+#define GES_TEXT_HALIGN_TYPE\
+  (ges_text_halign_get_type ())
+</MACRO>
+<FUNCTION>
+<NAME>ges_text_halign_get_type</NAME>
+<RETURNS>GType </RETURNS>
+void 
+</FUNCTION>
+<ENUM>
+<NAME>GESVideoTestPattern</NAME>
+typedef enum {
+  GES_VIDEO_TEST_PATTERN_SMPTE,
+  GES_VIDEO_TEST_PATTERN_SNOW,
+  GES_VIDEO_TEST_PATTERN_BLACK,
+  GES_VIDEO_TEST_PATTERN_WHITE,
+  GES_VIDEO_TEST_PATTERN_RED,
+  GES_VIDEO_TEST_PATTERN_GREEN,
+  GES_VIDEO_TEST_PATTERN_BLUE,
+  GES_VIDEO_TEST_PATTERN_CHECKERS1,
+  GES_VIDEO_TEST_PATTERN_CHECKERS2,
+  GES_VIDEO_TEST_PATTERN_CHECKERS4,
+  GES_VIDEO_TEST_PATTERN_CHECKERS8,
+  GES_VIDEO_TEST_PATTERN_CIRCULAR,
+  GES_VIDEO_TEST_PATTERN_BLINK,
+  GES_VIDEO_TEST_PATTERN_SMPTE75,
+} GESVideoTestPattern;
+</ENUM>
+<MACRO>
+<NAME>GES_VIDEO_TEST_PATTERN_TYPE</NAME>
+#define GES_VIDEO_TEST_PATTERN_TYPE\
+  ges_video_test_pattern_get_type()
+</MACRO>
+<FUNCTION>
+<NAME>ges_video_test_pattern_get_type</NAME>
+<RETURNS>GType </RETURNS>
+void 
+</FUNCTION>
+<MACRO>
+<NAME>GES_TYPE_TRACK_AUDIO_TEST_SOURCE</NAME>
+#define GES_TYPE_TRACK_AUDIO_TEST_SOURCE ges_track_audio_test_source_get_type()
+</MACRO>
+<MACRO>
+<NAME>GES_TRACK_AUDIO_TEST_SOURCE</NAME>
+#define GES_TRACK_AUDIO_TEST_SOURCE(obj) \
+  (G_TYPE_CHECK_INSTANCE_CAST ((obj), GES_TYPE_TRACK_AUDIO_TEST_SOURCE, GESTrackAudioTestSource))
+</MACRO>
+<MACRO>
+<NAME>GES_TRACK_AUDIO_TEST_SOURCE_CLASS</NAME>
+#define GES_TRACK_AUDIO_TEST_SOURCE_CLASS(klass) \
+  (G_TYPE_CHECK_CLASS_CAST ((klass), GES_TYPE_TRACK_AUDIO_TEST_SOURCE, GESTrackAudioTestSourceClass))
+</MACRO>
+<MACRO>
+<NAME>GES_IS_TRACK_AUDIO_TEST_SOURCE</NAME>
+#define GES_IS_TRACK_AUDIO_TEST_SOURCE(obj) \
+  (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GES_TYPE_TRACK_AUDIO_TEST_SOURCE))
+</MACRO>
+<MACRO>
+<NAME>GES_IS_TRACK_AUDIO_TEST_SOURCE_CLASS</NAME>
+#define GES_IS_TRACK_AUDIO_TEST_SOURCE_CLASS(klass) \
+  (G_TYPE_CHECK_CLASS_TYPE ((klass), GES_TYPE_TRACK_AUDIO_TEST_SOURCE))
+</MACRO>
+<MACRO>
+<NAME>GES_TRACK_AUDIO_TEST_SOURCE_GET_CLASS</NAME>
+#define GES_TRACK_AUDIO_TEST_SOURCE_GET_CLASS(obj) \
+  (G_TYPE_INSTANCE_GET_CLASS ((obj), GES_TYPE_TRACK_AUDIO_TEST_SOURCE, GESTrackAudioTestSourceClass))
+</MACRO>
+<STRUCT>
+<NAME>GESTrackAudioTestSourcePrivate</NAME>
+</STRUCT>
+<STRUCT>
+<NAME>GESTrackAudioTestSource</NAME>
+struct _GESTrackAudioTestSource {
+  /*< private >*/
+  GESTrackSource parent;
+
+  gdouble freq;
+  gdouble volume;
+
+  GESTrackAudioTestSourcePrivate *priv;
+
+  /* Padding for API extension */
+  gpointer _ges_reserved[GES_PADDING];
+};
+</STRUCT>
+<STRUCT>
+<NAME>GESTrackAudioTestSourceClass</NAME>
+struct _GESTrackAudioTestSourceClass {
+  /*< private >*/
+  GESTrackSourceClass parent_class;
+
+  /* Padding for API extension */
+  gpointer _ges_reserved[GES_PADDING];
+};
+</STRUCT>
+<FUNCTION>
+<NAME>ges_track_audio_test_source_get_type</NAME>
+<RETURNS>GType </RETURNS>
+void 
+</FUNCTION>
+<FUNCTION>
+<NAME>ges_track_audio_test_source_new</NAME>
+<RETURNS>GESTrackAudioTestSource*</RETURNS>
+void 
+</FUNCTION>
+<FUNCTION>
+<NAME>ges_track_audio_test_source_set_freq</NAME>
+<RETURNS>void </RETURNS>
+GESTrackAudioTestSource *self, gdouble freq 
+</FUNCTION>
+<FUNCTION>
+<NAME>ges_track_audio_test_source_set_volume</NAME>
+<RETURNS>void </RETURNS>
+GESTrackAudioTestSource *self, gdouble volume 
+</FUNCTION>
+<MACRO>
+<NAME>GES_TYPE_TIMELINE_STANDARD_TRANSITION</NAME>
+#define GES_TYPE_TIMELINE_STANDARD_TRANSITION ges_timeline_standard_transition_get_type()
+</MACRO>
+<MACRO>
+<NAME>GES_TIMELINE_STANDARD_TRANSITION</NAME>
+#define GES_TIMELINE_STANDARD_TRANSITION(obj) \
+  (G_TYPE_CHECK_INSTANCE_CAST ((obj), GES_TYPE_TIMELINE_STANDARD_TRANSITION, GESTimelineStandardTransition))
+</MACRO>
+<MACRO>
+<NAME>GES_TIMELINE_STANDARD_TRANSITION_CLASS</NAME>
+#define GES_TIMELINE_STANDARD_TRANSITION_CLASS(klass) \
+  (G_TYPE_CHECK_CLASS_CAST ((klass), GES_TYPE_TIMELINE_STANDARD_TRANSITION, GESTimelineStandardTransitionClass))
+</MACRO>
+<MACRO>
+<NAME>GES_IS_TIMELINE_STANDARD_TRANSITION</NAME>
+#define GES_IS_TIMELINE_STANDARD_TRANSITION(obj) \
+  (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GES_TYPE_TIMELINE_STANDARD_TRANSITION))
+</MACRO>
+<MACRO>
+<NAME>GES_IS_TIMELINE_STANDARD_TRANSITION_CLASS</NAME>
+#define GES_IS_TIMELINE_STANDARD_TRANSITION_CLASS(klass) \
+  (G_TYPE_CHECK_CLASS_TYPE ((klass), GES_TYPE_TIMELINE_STANDARD_TRANSITION))
+</MACRO>
+<MACRO>
+<NAME>GES_TIMELINE_STANDARD_TRANSITION_GET_CLASS</NAME>
+#define GES_TIMELINE_STANDARD_TRANSITION_GET_CLASS(obj) \
+  (G_TYPE_INSTANCE_GET_CLASS ((obj), GES_TYPE_TIMELINE_STANDARD_TRANSITION, GESTimelineStandardTransitionClass))
+</MACRO>
+<STRUCT>
+<NAME>GESTimelineStandardTransitionPrivate</NAME>
+</STRUCT>
+<STRUCT>
+<NAME>GESTimelineStandardTransition</NAME>
+struct _GESTimelineStandardTransition {
+  /*< private >*/
+  GESTimelineTransition parent;
+
+  /*< public >*/
+  GESVideoStandardTransitionType vtype;
+
+  /*< private >*/
+  GESTimelineStandardTransitionPrivate *priv;
+
+  /* Padding for API extension */
+  gpointer _ges_reserved[GES_PADDING];
+};
+</STRUCT>
+<STRUCT>
+<NAME>GESTimelineStandardTransitionClass</NAME>
+struct _GESTimelineStandardTransitionClass {
+  /*< private >*/
+  GESTimelineTransitionClass parent_class;
+
+  /* Padding for API extension */
+  gpointer _ges_reserved[GES_PADDING];
+};
+</STRUCT>
+<FUNCTION>
+<NAME>ges_timeline_standard_transition_get_type</NAME>
+<RETURNS>GType </RETURNS>
+void 
+</FUNCTION>
+<FUNCTION>
+<NAME>ges_timeline_standard_transition_new</NAME>
+<RETURNS>GESTimelineStandardTransition *</RETURNS>
+GESVideoStandardTransitionType vtype 
+</FUNCTION>
+<FUNCTION>
+<NAME>ges_timeline_standard_transition_new_for_nick</NAME>
+<RETURNS>GESTimelineStandardTransition *</RETURNS>
+char *nick 
+</FUNCTION>
+<MACRO>
+<NAME>GES_TYPE_TRACK_SOURCE</NAME>
+#define GES_TYPE_TRACK_SOURCE ges_track_source_get_type()
+</MACRO>
+<MACRO>
+<NAME>GES_TRACK_SOURCE</NAME>
+#define GES_TRACK_SOURCE(obj) \
+  (G_TYPE_CHECK_INSTANCE_CAST ((obj), GES_TYPE_TRACK_SOURCE, GESTrackSource))
+</MACRO>
+<MACRO>
+<NAME>GES_TRACK_SOURCE_CLASS</NAME>
+#define GES_TRACK_SOURCE_CLASS(klass) \
+  (G_TYPE_CHECK_CLASS_CAST ((klass), GES_TYPE_TRACK_SOURCE, GESTrackSourceClass))
+</MACRO>
+<MACRO>
+<NAME>GES_IS_TRACK_SOURCE</NAME>
+#define GES_IS_TRACK_SOURCE(obj) \
+  (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GES_TYPE_TRACK_SOURCE))
+</MACRO>
+<MACRO>
+<NAME>GES_IS_TRACK_SOURCE_CLASS</NAME>
+#define GES_IS_TRACK_SOURCE_CLASS(klass) \
+  (G_TYPE_CHECK_CLASS_TYPE ((klass), GES_TYPE_TRACK_SOURCE))
+</MACRO>
+<MACRO>
+<NAME>GES_TRACK_SOURCE_GET_CLASS</NAME>
+#define GES_TRACK_SOURCE_GET_CLASS(obj) \
+  (G_TYPE_INSTANCE_GET_CLASS ((obj), GES_TYPE_TRACK_SOURCE, GESTrackSourceClass))
+</MACRO>
+<STRUCT>
+<NAME>GESTrackSourcePrivate</NAME>
+</STRUCT>
+<STRUCT>
+<NAME>GESTrackSource</NAME>
+struct _GESTrackSource {
+  /*< private >*/
+  GESTrackObject parent;
+
+  GESTrackSourcePrivate *priv;
+
+  /* Padding for API extension */
+  gpointer _ges_reserved[GES_PADDING];
+};
+</STRUCT>
+<STRUCT>
+<NAME>GESTrackSourceClass</NAME>
+struct _GESTrackSourceClass {
+  /*< private >*/
+  GESTrackObjectClass parent_class;
+
+  /*< private >*/
+  /* Padding for API extension */
+  gpointer _ges_reserved[GES_PADDING];
+};
+</STRUCT>
+<FUNCTION>
+<NAME>ges_track_source_get_type</NAME>
+<RETURNS>GType </RETURNS>
+void 
+</FUNCTION>
+<FUNCTION>
+<NAME>ges_play_sink_convert_frame</NAME>
+<RETURNS>GstBuffer  *</RETURNS>
+GstElement * playsink, GstCaps * caps 
+</FUNCTION>
+<MACRO>
+<NAME>GES_TYPE_TRACK</NAME>
+#define GES_TYPE_TRACK ges_track_get_type()
+</MACRO>
+<MACRO>
+<NAME>GES_TRACK</NAME>
+#define GES_TRACK(obj) \
+  (G_TYPE_CHECK_INSTANCE_CAST ((obj), GES_TYPE_TRACK, GESTrack))
+</MACRO>
+<MACRO>
+<NAME>GES_TRACK_CLASS</NAME>
+#define GES_TRACK_CLASS(klass) \
+  (G_TYPE_CHECK_CLASS_CAST ((klass), GES_TYPE_TRACK, GESTrackClass))
+</MACRO>
+<MACRO>
+<NAME>GES_IS_TRACK</NAME>
+#define GES_IS_TRACK(obj) \
+  (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GES_TYPE_TRACK))
+</MACRO>
+<MACRO>
+<NAME>GES_IS_TRACK_CLASS</NAME>
+#define GES_IS_TRACK_CLASS(klass) \
+  (G_TYPE_CHECK_CLASS_TYPE ((klass), GES_TYPE_TRACK))
+</MACRO>
+<MACRO>
+<NAME>GES_TRACK_GET_CLASS</NAME>
+#define GES_TRACK_GET_CLASS(obj) \
+  (G_TYPE_INSTANCE_GET_CLASS ((obj), GES_TYPE_TRACK, GESTrackClass))
+</MACRO>
+<STRUCT>
+<NAME>GESTrackPrivate</NAME>
+</STRUCT>
+<STRUCT>
+<NAME>GESTrack</NAME>
+struct _GESTrack {
+  GstBin parent;
+
+  /*< public >*/
+  /* READ-ONLY */
+  GESTrackType type;
+
+  GESTrackPrivate * priv;
+
+  /* Padding for API extension */
+  gpointer _ges_reserved[GES_PADDING];
+};
+</STRUCT>
+<STRUCT>
+<NAME>GESTrackClass</NAME>
+struct _GESTrackClass {
+  /*< private >*/
+  GstBinClass parent_class;
+
+  /* Padding for API extension */
+  gpointer _ges_reserved[GES_PADDING];
+};
+</STRUCT>
+<FUNCTION>
+<NAME>ges_track_get_type</NAME>
+<RETURNS>GType </RETURNS>
+void 
+</FUNCTION>
+<FUNCTION>
+<NAME>ges_track_new</NAME>
+<RETURNS>GESTrack*</RETURNS>
+GESTrackType type, GstCaps * caps 
+</FUNCTION>
+<FUNCTION>
+<NAME>ges_track_set_timeline</NAME>
+<RETURNS>void          </RETURNS>
+GESTrack * track, GESTimeline *timeline 
+</FUNCTION>
+<FUNCTION>
+<NAME>ges_track_set_caps</NAME>
+<RETURNS>void          </RETURNS>
+GESTrack * track, const GstCaps * caps 
+</FUNCTION>
+<FUNCTION>
+<NAME>ges_track_get_caps</NAME>
+<RETURNS>const GstCaps *</RETURNS>
+GESTrack *track 
+</FUNCTION>
+<FUNCTION>
+<NAME>ges_track_get_timeline</NAME>
+<RETURNS>const GESTimeline *</RETURNS>
+GESTrack *track 
+</FUNCTION>
+<FUNCTION>
+<NAME>ges_track_add_object</NAME>
+<RETURNS>gboolean </RETURNS>
+GESTrack * track, GESTrackObject * object 
+</FUNCTION>
+<FUNCTION>
+<NAME>ges_track_remove_object</NAME>
+<RETURNS>gboolean </RETURNS>
+GESTrack * track, GESTrackObject * object 
+</FUNCTION>
+<FUNCTION>
+<NAME>ges_track_video_raw_new</NAME>
+<RETURNS>GESTrack *</RETURNS>
+void 
+</FUNCTION>
+<FUNCTION>
+<NAME>ges_track_audio_raw_new</NAME>
+<RETURNS>GESTrack *</RETURNS>
+void 
+</FUNCTION>
+<MACRO>
+<NAME>GES_TYPE_TRACK_VIDEO_TEST_SOURCE</NAME>
+#define GES_TYPE_TRACK_VIDEO_TEST_SOURCE ges_track_video_test_source_get_type()
+</MACRO>
+<MACRO>
+<NAME>GES_TRACK_VIDEO_TEST_SOURCE</NAME>
+#define GES_TRACK_VIDEO_TEST_SOURCE(obj) \
+  (G_TYPE_CHECK_INSTANCE_CAST ((obj), GES_TYPE_TRACK_VIDEO_TEST_SOURCE, GESTrackVideoTestSource))
+</MACRO>
+<MACRO>
+<NAME>GES_TRACK_VIDEO_TEST_SOURCE_CLASS</NAME>
+#define GES_TRACK_VIDEO_TEST_SOURCE_CLASS(klass) \
+  (G_TYPE_CHECK_CLASS_CAST ((klass), GES_TYPE_TRACK_VIDEO_TEST_SOURCE, GESTrackVideoTestSourceClass))
+</MACRO>
+<MACRO>
+<NAME>GES_IS_TRACK_VIDEO_TEST_SOURCE</NAME>
+#define GES_IS_TRACK_VIDEO_TEST_SOURCE(obj) \
+  (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GES_TYPE_TRACK_VIDEO_TEST_SOURCE))
+</MACRO>
+<MACRO>
+<NAME>GES_IS_TRACK_VIDEO_TEST_SOURCE_CLASS</NAME>
+#define GES_IS_TRACK_VIDEO_TEST_SOURCE_CLASS(klass) \
+  (G_TYPE_CHECK_CLASS_TYPE ((klass), GES_TYPE_TRACK_VIDEO_TEST_SOURCE))
+</MACRO>
+<MACRO>
+<NAME>GES_TRACK_VIDEO_TEST_SOURCE_GET_CLASS</NAME>
+#define GES_TRACK_VIDEO_TEST_SOURCE_GET_CLASS(obj) \
+  (G_TYPE_INSTANCE_GET_CLASS ((obj), GES_TYPE_TRACK_VIDEO_TEST_SOURCE, GESTrackVideoTestSourceClass))
+</MACRO>
+<STRUCT>
+<NAME>GESTrackVideoTestSourcePrivate</NAME>
+</STRUCT>
+<STRUCT>
+<NAME>GESTrackVideoTestSource</NAME>
+struct _GESTrackVideoTestSource {
+  /*< private >*/
+  GESTrackSource parent;
+
+  GESVideoTestPattern pattern;
+
+  GESTrackVideoTestSourcePrivate *priv;
+
+  /* Padding for API extension */
+  gpointer _ges_reserved[GES_PADDING];
+};
+</STRUCT>
+<STRUCT>
+<NAME>GESTrackVideoTestSourceClass</NAME>
+struct _GESTrackVideoTestSourceClass {
+  GESTrackSourceClass parent_class;
+
+  /* Padding for API extension */
+  gpointer _ges_reserved[GES_PADDING];
+};
+</STRUCT>
+<FUNCTION>
+<NAME>ges_track_video_test_source_get_type</NAME>
+<RETURNS>GType </RETURNS>
+void 
+</FUNCTION>
+<FUNCTION>
+<NAME>ges_track_video_test_source_new</NAME>
+<RETURNS>GESTrackVideoTestSource*</RETURNS>
+void 
+</FUNCTION>
+<FUNCTION>
+<NAME>ges_track_video_test_source_set_pattern</NAME>
+<RETURNS>void </RETURNS>
+GESTrackVideoTestSource *self, GESVideoTestPattern pattern 
+</FUNCTION>
+<MACRO>
+<NAME>GES_TYPE_TIMELINE</NAME>
+#define GES_TYPE_TIMELINE ges_timeline_get_type()
+</MACRO>
+<MACRO>
+<NAME>GES_TIMELINE</NAME>
+#define GES_TIMELINE(obj) \
+  (G_TYPE_CHECK_INSTANCE_CAST ((obj), GES_TYPE_TIMELINE, GESTimeline))
+</MACRO>
+<MACRO>
+<NAME>GES_TIMELINE_CLASS</NAME>
+#define GES_TIMELINE_CLASS(klass) \
+  (G_TYPE_CHECK_CLASS_CAST ((klass), GES_TYPE_TIMELINE, GESTimelineClass))
+</MACRO>
+<MACRO>
+<NAME>GES_IS_TIMELINE</NAME>
+#define GES_IS_TIMELINE(obj) \
+  (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GES_TYPE_TIMELINE))
+</MACRO>
+<MACRO>
+<NAME>GES_IS_TIMELINE_CLASS</NAME>
+#define GES_IS_TIMELINE_CLASS(klass) \
+  (G_TYPE_CHECK_CLASS_TYPE ((klass), GES_TYPE_TIMELINE))
+</MACRO>
+<MACRO>
+<NAME>GES_TIMELINE_GET_CLASS</NAME>
+#define GES_TIMELINE_GET_CLASS(obj) \
+  (G_TYPE_INSTANCE_GET_CLASS ((obj), GES_TYPE_TIMELINE, GESTimelineClass))
+</MACRO>
+<STRUCT>
+<NAME>GESTimeline</NAME>
+struct _GESTimeline {
+  GstBin parent;
+
+  /*< private >*/
+  GList *layers; /* A list of GESTimelineLayer sorted by priority */
+  GList *tracks; /* A list of private track data */
+
+  /* discoverer used for virgin sources */
+  GstDiscoverer *discoverer;
+  /* Objects that are being discovered FIXME : LOCK ! */
+  GList *pendingobjects;
+  /* Whether we are changing state asynchronously or not */
+  gboolean async_pending;
+
+  /* Padding for API extension */
+  gpointer _ges_reserved[GES_PADDING];
+};
+</STRUCT>
+<STRUCT>
+<NAME>GESTimelineClass</NAME>
+struct _GESTimelineClass {
+  GstBinClass parent_class;
+
+  /*< private >*/
+
+  void (*track_added)  (GESTimeline *timeline, GESTrack * track);
+  void (*track_removed)        (GESTimeline *timeline, GESTrack * track);
+  void (*layer_added)  (GESTimeline *timeline, GESTimelineLayer *layer);
+  void (*layer_removed)        (GESTimeline *timeline, GESTimelineLayer *layer);
+
+  /* Padding for API extension */
+  gpointer _ges_reserved[GES_PADDING];
+};
+</STRUCT>
+<FUNCTION>
+<NAME>ges_timeline_get_type</NAME>
+<RETURNS>GType </RETURNS>
+void 
+</FUNCTION>
+<FUNCTION>
+<NAME>ges_timeline_new</NAME>
+<RETURNS>GESTimeline*</RETURNS>
+void 
+</FUNCTION>
+<FUNCTION>
+<NAME>ges_timeline_new_from_uri</NAME>
+<RETURNS>GESTimeline*</RETURNS>
+gchar *uri 
+</FUNCTION>
+<FUNCTION>
+<NAME>ges_timeline_load_from_uri</NAME>
+<RETURNS>gboolean </RETURNS>
+GESTimeline *timeline, gchar *uri 
+</FUNCTION>
+<FUNCTION>
+<NAME>ges_timeline_save_to_uri</NAME>
+<RETURNS>gboolean </RETURNS>
+GESTimeline *timeline, gchar *uri 
+</FUNCTION>
+<FUNCTION>
+<NAME>ges_timeline_add_layer</NAME>
+<RETURNS>gboolean </RETURNS>
+GESTimeline *timeline, GESTimelineLayer *layer 
+</FUNCTION>
+<FUNCTION>
+<NAME>ges_timeline_remove_layer</NAME>
+<RETURNS>gboolean </RETURNS>
+GESTimeline *timeline, GESTimelineLayer *layer 
+</FUNCTION>
+<FUNCTION>
+<NAME>ges_timeline_add_track</NAME>
+<RETURNS>gboolean </RETURNS>
+GESTimeline *timeline, GESTrack *track 
+</FUNCTION>
+<FUNCTION>
+<NAME>ges_timeline_remove_track</NAME>
+<RETURNS>gboolean </RETURNS>
+GESTimeline *timeline, GESTrack *track 
+</FUNCTION>
+<FUNCTION>
+<NAME>ges_timeline_get_track_for_pad</NAME>
+<RETURNS>GESTrack *</RETURNS>
+GESTimeline *timeline, GstPad *pad 
+</FUNCTION>
+<FUNCTION>
+<NAME>ges_timeline_get_tracks</NAME>
+<RETURNS>GList *</RETURNS>
+GESTimeline *timeline 
+</FUNCTION>
+<MACRO>
+<NAME>GES_TYPE_TIMELINE_TEST_SOURCE</NAME>
+#define GES_TYPE_TIMELINE_TEST_SOURCE ges_timeline_test_source_get_type()
+</MACRO>
+<MACRO>
+<NAME>GES_TIMELINE_TEST_SOURCE</NAME>
+#define GES_TIMELINE_TEST_SOURCE(obj) \
+  (G_TYPE_CHECK_INSTANCE_CAST ((obj), GES_TYPE_TIMELINE_TEST_SOURCE, GESTimelineTestSource))
+</MACRO>
+<MACRO>
+<NAME>GES_TIMELINE_TEST_SOURCE_CLASS</NAME>
+#define GES_TIMELINE_TEST_SOURCE_CLASS(klass) \
+  (G_TYPE_CHECK_CLASS_CAST ((klass), GES_TYPE_TIMELINE_TEST_SOURCE, GESTimelineTestSourceClass))
+</MACRO>
+<MACRO>
+<NAME>GES_IS_TIMELINE_TEST_SOURCE</NAME>
+#define GES_IS_TIMELINE_TEST_SOURCE(obj) \
+  (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GES_TYPE_TIMELINE_TEST_SOURCE))
+</MACRO>
+<MACRO>
+<NAME>GES_IS_TIMELINE_TEST_SOURCE_CLASS</NAME>
+#define GES_IS_TIMELINE_TEST_SOURCE_CLASS(klass) \
+  (G_TYPE_CHECK_CLASS_TYPE ((klass), GES_TYPE_TIMELINE_TEST_SOURCE))
+</MACRO>
+<MACRO>
+<NAME>GES_TIMELINE_TEST_SOURCE_GET_CLASS</NAME>
+#define GES_TIMELINE_TEST_SOURCE_GET_CLASS(obj) \
+  (G_TYPE_INSTANCE_GET_CLASS ((obj), GES_TYPE_TIMELINE_TEST_SOURCE, GESTimelineTestSourceClass))
+</MACRO>
+<STRUCT>
+<NAME>GESTimelineTestSourcePrivate</NAME>
+</STRUCT>
+<STRUCT>
+<NAME>GESTimelineTestSource</NAME>
+struct _GESTimelineTestSource {
+  /*< private >*/
+  GESTimelineSource parent;
+
+  gboolean mute;
+  GESVideoTestPattern vpattern;
+  gdouble freq;
+  gdouble volume;
+  
+  GESTimelineTestSourcePrivate *priv;
+
+  /* Padding for API extension */
+  gpointer _ges_reserved[GES_PADDING];
+};
+</STRUCT>
+<STRUCT>
+<NAME>GESTimelineTestSourceClass</NAME>
+struct _GESTimelineTestSourceClass {
+  /*< private >*/
+  GESTimelineSourceClass parent_class;
+
+  /* Padding for API extension */
+  gpointer _ges_reserved[GES_PADDING];
+};
+</STRUCT>
+<FUNCTION>
+<NAME>ges_timeline_test_source_get_type</NAME>
+<RETURNS>GType </RETURNS>
+void 
+</FUNCTION>
+<FUNCTION>
+<NAME>ges_timeline_test_source_new</NAME>
+<RETURNS>GESTimelineTestSource*</RETURNS>
+void 
+</FUNCTION>
+<FUNCTION>
+<NAME>ges_timeline_test_source_new_for_nick</NAME>
+<RETURNS>GESTimelineTestSource*</RETURNS>
+gchar * nick 
+</FUNCTION>
+<MACRO>
+<NAME>GES_TYPE_TIMELINE_OBJECT</NAME>
+#define GES_TYPE_TIMELINE_OBJECT ges_timeline_object_get_type()
+</MACRO>
+<MACRO>
+<NAME>GES_TIMELINE_OBJECT</NAME>
+#define GES_TIMELINE_OBJECT(obj) \
+  (G_TYPE_CHECK_INSTANCE_CAST ((obj), GES_TYPE_TIMELINE_OBJECT, GESTimelineObject))
+</MACRO>
+<MACRO>
+<NAME>GES_TIMELINE_OBJECT_CLASS</NAME>
+#define GES_TIMELINE_OBJECT_CLASS(klass) \
+  (G_TYPE_CHECK_CLASS_CAST ((klass), GES_TYPE_TIMELINE_OBJECT, GESTimelineObjectClass))
+</MACRO>
+<MACRO>
+<NAME>GES_IS_TIMELINE_OBJECT</NAME>
+#define GES_IS_TIMELINE_OBJECT(obj) \
+  (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GES_TYPE_TIMELINE_OBJECT))
+</MACRO>
+<MACRO>
+<NAME>GES_IS_TIMELINE_OBJECT_CLASS</NAME>
+#define GES_IS_TIMELINE_OBJECT_CLASS(klass) \
+  (G_TYPE_CHECK_CLASS_TYPE ((klass), GES_TYPE_TIMELINE_OBJECT))
+</MACRO>
+<MACRO>
+<NAME>GES_TIMELINE_OBJECT_GET_CLASS</NAME>
+#define GES_TIMELINE_OBJECT_GET_CLASS(obj) \
+  (G_TYPE_INSTANCE_GET_CLASS ((obj), GES_TYPE_TIMELINE_OBJECT, GESTimelineObjectClass))
+</MACRO>
+<STRUCT>
+<NAME>GESTimelineObjectPrivate</NAME>
+</STRUCT>
+<USER_FUNCTION>
+<NAME>GESFillTrackObjectFunc</NAME>
+<RETURNS>gboolean </RETURNS>
+GESTimelineObject * object,
+                    GESTrackObject * trobject,
+                    GstElement * gnlobj
+</USER_FUNCTION>
+<USER_FUNCTION>
+<NAME>GESCreateTrackObjectFunc</NAME>
+<RETURNS>GESTrackObject *</RETURNS>
+GESTimelineObject * object,
+                         GESTrack * track
+</USER_FUNCTION>
+<USER_FUNCTION>
+<NAME>GESCreateTrackObjectsFunc</NAME>
+<RETURNS>gboolean </RETURNS>
+GESTimelineObject * object,
+                                            GESTrack *track
+</USER_FUNCTION>
+<MACRO>
+<NAME>GES_TIMELINE_OBJECT_START</NAME>
+#define GES_TIMELINE_OBJECT_START(obj) (((GESTimelineObject*)obj)->start)
+</MACRO>
+<MACRO>
+<NAME>GES_TIMELINE_OBJECT_INPOINT</NAME>
+#define GES_TIMELINE_OBJECT_INPOINT(obj) (((GESTimelineObject*)obj)->inpoint)
+</MACRO>
+<MACRO>
+<NAME>GES_TIMELINE_OBJECT_DURATION</NAME>
+#define GES_TIMELINE_OBJECT_DURATION(obj) (((GESTimelineObject*)obj)->duration)
+</MACRO>
+<MACRO>
+<NAME>GES_TIMELINE_OBJECT_PRIORITY</NAME>
+#define GES_TIMELINE_OBJECT_PRIORITY(obj) (((GESTimelineObject*)obj)->priority)
+</MACRO>
+<MACRO>
+<NAME>GES_TIMELINE_OBJECT_HEIGHT</NAME>
+#define GES_TIMELINE_OBJECT_HEIGHT(obj) (((GESTimelineObject*)obj)->height)
+</MACRO>
+<STRUCT>
+<NAME>GESTimelineObject</NAME>
+struct _GESTimelineObject {
+  /*< private >*/
+  GObject parent;
+
+  GESTimelineObjectPrivate *priv;
+  
+  /* We don't add those properties to the priv struct for optimization purposes
+   * start, inpoint, duration and fullduration are in nanoseconds */
+  guint64 start;    /* position (in time) of the object in the layer */
+  guint64 inpoint;  /* in-point */
+  guint64 duration; /* duration of the object used in the layer */
+  guint32 priority; /* priority of the object in the layer (0:top priority) */
+  guint32 height;       /* the span of priorities this object needs */
+
+  guint64 fullduration; /* Full usable duration of the object (-1: no duration) */
+
+  /* Padding for API extension */
+  gpointer _ges_reserved[GES_PADDING];
+};
+</STRUCT>
+<STRUCT>
+<NAME>GESTimelineObjectClass</NAME>
+struct _GESTimelineObjectClass {
+  /*< private >*/
+  GObjectClass parent_class;
+
+  /*< public >*/
+  GESCreateTrackObjectFunc create_track_object;
+  GESCreateTrackObjectsFunc create_track_objects;
+
+  /* FIXME : might need a release_track_object */
+  GESFillTrackObjectFunc  fill_track_object;
+  gboolean need_fill_track;
+
+  /*< private >*/
+  /* Padding for API extension */
+  gpointer _ges_reserved[GES_PADDING];
+};
+</STRUCT>
+<FUNCTION>
+<NAME>ges_timeline_object_get_type</NAME>
+<RETURNS>GType </RETURNS>
+void 
+</FUNCTION>
+<FUNCTION>
+<NAME>ges_timeline_object_set_start</NAME>
+<RETURNS>void </RETURNS>
+GESTimelineObject * object, guint64 start 
+</FUNCTION>
+<FUNCTION>
+<NAME>ges_timeline_object_set_inpoint</NAME>
+<RETURNS>void </RETURNS>
+GESTimelineObject * object, guint64 inpoint 
+</FUNCTION>
+<FUNCTION>
+<NAME>ges_timeline_object_set_duration</NAME>
+<RETURNS>void </RETURNS>
+GESTimelineObject * object, guint64 duration 
+</FUNCTION>
+<FUNCTION>
+<NAME>ges_timeline_object_set_priority</NAME>
+<RETURNS>void </RETURNS>
+GESTimelineObject * object, guint priority 
+</FUNCTION>
+<FUNCTION>
+<NAME>ges_timeline_object_set_layer</NAME>
+<RETURNS>void </RETURNS>
+GESTimelineObject * object, GESTimelineLayer * layer 
+</FUNCTION>
+<FUNCTION>
+<NAME>ges_timeline_object_create_track_object</NAME>
+<RETURNS>GESTrackObject  *</RETURNS>
+GESTimelineObject * object, GESTrack * track 
+</FUNCTION>
+<FUNCTION>
+<NAME>ges_timeline_object_create_track_objects</NAME>
+<RETURNS>gboolean </RETURNS>
+GESTimelineObject * object, GESTrack * track 
+</FUNCTION>
+<FUNCTION>
+<NAME>ges_timeline_object_release_track_object</NAME>
+<RETURNS>gboolean </RETURNS>
+GESTimelineObject * object, GESTrackObject * trackobject 
+</FUNCTION>
+<FUNCTION>
+<NAME>ges_timeline_object_fill_track_object</NAME>
+<RETURNS>gboolean </RETURNS>
+GESTimelineObject * object, GESTrackObject * trackobj, GstElement * gnlobj 
+</FUNCTION>
+<FUNCTION>
+<NAME>ges_timeline_object_find_track_object</NAME>
+<RETURNS>GESTrackObject  *</RETURNS>
+GESTimelineObject * object, GESTrack * track, GType type 
+</FUNCTION>
+<FUNCTION>
+<NAME>ges_timeline_object_get_track_objects</NAME>
+<RETURNS>GList  *</RETURNS>
+GESTimelineObject *object 
+</FUNCTION>
+<FUNCTION>
+<NAME>ges_timeline_object_get_layer</NAME>
+<RETURNS>GESTimelineLayer  *</RETURNS>
+GESTimelineObject *object 
+</FUNCTION>
+<FUNCTION>
+<NAME>ges_timeline_object_add_track_object</NAME>
+<RETURNS>gboolean </RETURNS>
+GESTimelineObject *object, GESTrackObject *trobj 
+</FUNCTION>
+<FUNCTION>
+<NAME>ges_timeline_new_audio_video</NAME>
+<RETURNS>GESTimeline *</RETURNS>
+void 
+</FUNCTION>
+<MACRO>
+<NAME>GES_TYPE_SIMPLE_TIMELINE_LAYER</NAME>
+#define GES_TYPE_SIMPLE_TIMELINE_LAYER ges_simple_timeline_layer_get_type()
+</MACRO>
+<MACRO>
+<NAME>GES_SIMPLE_TIMELINE_LAYER</NAME>
+#define GES_SIMPLE_TIMELINE_LAYER(obj) \
+  (G_TYPE_CHECK_INSTANCE_CAST ((obj), GES_TYPE_SIMPLE_TIMELINE_LAYER, GESSimpleTimelineLayer))
+</MACRO>
+<MACRO>
+<NAME>GES_SIMPLE_TIMELINE_LAYER_CLASS</NAME>
+#define GES_SIMPLE_TIMELINE_LAYER_CLASS(klass) \
+  (G_TYPE_CHECK_CLASS_CAST ((klass), GES_TYPE_SIMPLE_TIMELINE_LAYER, GESSimpleTimelineLayerClass))
+</MACRO>
+<MACRO>
+<NAME>GES_IS_SIMPLE_TIMELINE_LAYER</NAME>
+#define GES_IS_SIMPLE_TIMELINE_LAYER(obj) \
+  (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GES_TYPE_SIMPLE_TIMELINE_LAYER))
+</MACRO>
+<MACRO>
+<NAME>GES_IS_SIMPLE_TIMELINE_LAYER_CLASS</NAME>
+#define GES_IS_SIMPLE_TIMELINE_LAYER_CLASS(klass) \
+  (G_TYPE_CHECK_CLASS_TYPE ((klass), GES_TYPE_SIMPLE_TIMELINE_LAYER))
+</MACRO>
+<MACRO>
+<NAME>GES_SIMPLE_TIMELINE_LAYER_GET_CLASS</NAME>
+#define GES_SIMPLE_TIMELINE_LAYER_GET_CLASS(obj) \
+  (G_TYPE_INSTANCE_GET_CLASS ((obj), GES_TYPE_SIMPLE_TIMELINE_LAYER, GESSimpleTimelineLayerClass))
+</MACRO>
+<STRUCT>
+<NAME>GESSimpleTimelineLayerPrivate</NAME>
+</STRUCT>
+<STRUCT>
+<NAME>GESSimpleTimelineLayer</NAME>
+struct _GESSimpleTimelineLayer {
+  /*< private >*/
+  GESTimelineLayer parent;
+
+  GESSimpleTimelineLayerPrivate *priv;
+
+  /* Padding for API extension */
+  gpointer _ges_reserved[GES_PADDING];
+};
+</STRUCT>
+<STRUCT>
+<NAME>GESSimpleTimelineLayerClass</NAME>
+struct _GESSimpleTimelineLayerClass {
+  /*< private >*/
+  GESTimelineLayerClass parent_class;
+
+  /*< signals >*/
+  void (*object_moved) (GESTimelineLayer * layer, GESTimelineObject * object,
+      gint old_position, gint new_position);
+
+  /* Padding for API extension */
+  gpointer _ges_reserved[GES_PADDING];
+};
+</STRUCT>
+<FUNCTION>
+<NAME>ges_simple_timeline_layer_get_type</NAME>
+<RETURNS>GType </RETURNS>
+void 
+</FUNCTION>
+<FUNCTION>
+<NAME>ges_simple_timeline_layer_new</NAME>
+<RETURNS>GESSimpleTimelineLayer*</RETURNS>
+void 
+</FUNCTION>
+<FUNCTION>
+<NAME>ges_simple_timeline_layer_add_object</NAME>
+<RETURNS>gboolean </RETURNS>
+GESSimpleTimelineLayer *layer, GESTimelineObject *object, gint position 
+</FUNCTION>
+<FUNCTION>
+<NAME>ges_simple_timeline_layer_move_object</NAME>
+<RETURNS>gboolean </RETURNS>
+GESSimpleTimelineLayer *layer, GESTimelineObject *object, gint newposition 
+</FUNCTION>
+<FUNCTION>
+<NAME>ges_simple_timeline_layer_is_valid</NAME>
+<RETURNS>gboolean </RETURNS>
+GESSimpleTimelineLayer *layer 
+</FUNCTION>
+<FUNCTION>
+<NAME>ges_simple_timeline_layer_nth</NAME>
+<RETURNS>const GESTimelineObject  *</RETURNS>
+GESSimpleTimelineLayer *layer, gint position 
+</FUNCTION>
+<MACRO>
+<NAME>GES_TYPE_TRACK_IMAGE_SOURCE</NAME>
+#define GES_TYPE_TRACK_IMAGE_SOURCE ges_track_image_source_get_type()
+</MACRO>
+<MACRO>
+<NAME>GES_TRACK_IMAGE_SOURCE</NAME>
+#define GES_TRACK_IMAGE_SOURCE(obj) \
+  (G_TYPE_CHECK_INSTANCE_CAST ((obj), GES_TYPE_TRACK_IMAGE_SOURCE, GESTrackImageSource))
+</MACRO>
+<MACRO>
+<NAME>GES_TRACK_IMAGE_SOURCE_CLASS</NAME>
+#define GES_TRACK_IMAGE_SOURCE_CLASS(klass) \
+  (G_TYPE_CHECK_CLASS_CAST ((klass), GES_TYPE_TRACK_IMAGE_SOURCE, GESTrackImageSourceClass))
+</MACRO>
+<MACRO>
+<NAME>GES_IS_TRACK_IMAGE_SOURCE</NAME>
+#define GES_IS_TRACK_IMAGE_SOURCE(obj) \
+  (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GES_TYPE_TRACK_IMAGE_SOURCE))
+</MACRO>
+<MACRO>
+<NAME>GES_IS_TRACK_IMAGE_SOURCE_CLASS</NAME>
+#define GES_IS_TRACK_IMAGE_SOURCE_CLASS(klass) \
+  (G_TYPE_CHECK_CLASS_TYPE ((klass), GES_TYPE_TRACK_IMAGE_SOURCE))
+</MACRO>
+<MACRO>
+<NAME>GES_TRACK_IMAGE_SOURCE_GET_CLASS</NAME>
+#define GES_TRACK_IMAGE_SOURCE_GET_CLASS(obj) \
+  (G_TYPE_INSTANCE_GET_CLASS ((obj), GES_TYPE_TRACK_IMAGE_SOURCE, GESTrackImageSourceClass))
+</MACRO>
+<STRUCT>
+<NAME>GESTrackImageSourcePrivate</NAME>
+</STRUCT>
+<STRUCT>
+<NAME>GESTrackImageSource</NAME>
+struct _GESTrackImageSource {
+  /*< private >*/
+  GESTrackSource parent;
+
+  gchar *uri;
+
+  GESTrackImageSourcePrivate *priv;
+
+  /* Padding for API extension */
+  gpointer _ges_reserved[GES_PADDING];
+};
+</STRUCT>
+<STRUCT>
+<NAME>GESTrackImageSourceClass</NAME>
+struct _GESTrackImageSourceClass {
+  GESTrackSourceClass parent_class;
+
+  /* Padding for API extension */
+  gpointer _ges_reserved[GES_PADDING];
+};
+</STRUCT>
+<FUNCTION>
+<NAME>ges_track_image_source_get_type</NAME>
+<RETURNS>GType </RETURNS>
+void 
+</FUNCTION>
+<FUNCTION>
+<NAME>ges_track_image_source_new</NAME>
+<RETURNS>GESTrackImageSource*</RETURNS>
+gchar *uri 
+</FUNCTION>
+<MACRO>
+<NAME>GES_TYPE_TIMELINE_LAYER</NAME>
+#define GES_TYPE_TIMELINE_LAYER ges_timeline_layer_get_type()
+</MACRO>
+<MACRO>
+<NAME>GES_TIMELINE_LAYER</NAME>
+#define GES_TIMELINE_LAYER(obj) \
+  (G_TYPE_CHECK_INSTANCE_CAST ((obj), GES_TYPE_TIMELINE_LAYER, GESTimelineLayer))
+</MACRO>
+<MACRO>
+<NAME>GES_TIMELINE_LAYER_CLASS</NAME>
+#define GES_TIMELINE_LAYER_CLASS(klass) \
+  (G_TYPE_CHECK_CLASS_CAST ((klass), GES_TYPE_TIMELINE_LAYER, GESTimelineLayerClass))
+</MACRO>
+<MACRO>
+<NAME>GES_IS_TIMELINE_LAYER</NAME>
+#define GES_IS_TIMELINE_LAYER(obj) \
+  (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GES_TYPE_TIMELINE_LAYER))
+</MACRO>
+<MACRO>
+<NAME>GES_IS_TIMELINE_LAYER_CLASS</NAME>
+#define GES_IS_TIMELINE_LAYER_CLASS(klass) \
+  (G_TYPE_CHECK_CLASS_TYPE ((klass), GES_TYPE_TIMELINE_LAYER))
+</MACRO>
+<MACRO>
+<NAME>GES_TIMELINE_LAYER_GET_CLASS</NAME>
+#define GES_TIMELINE_LAYER_GET_CLASS(obj) \
+  (G_TYPE_INSTANCE_GET_CLASS ((obj), GES_TYPE_TIMELINE_LAYER, GESTimelineLayerClass))
+</MACRO>
+<STRUCT>
+<NAME>GESTimelineLayerPrivate</NAME>
+</STRUCT>
+<STRUCT>
+<NAME>GESTimelineLayer</NAME>
+struct _GESTimelineLayer {
+  GObject parent; 
+
+  /*< public >*/
+
+  GESTimeline *timeline;
+
+  /*< protected >*/
+  guint32 min_gnl_priority, max_gnl_priority;
+
+  GESTimelineLayerPrivate *priv;
+
+  /* Padding for API extension */
+  gpointer _ges_reserved[GES_PADDING];
+};
+</STRUCT>
+<STRUCT>
+<NAME>GESTimelineLayerClass</NAME>
+struct _GESTimelineLayerClass {
+  /*< private >*/
+  GObjectClass parent_class;
+
+  /*< public >*/
+  /* virtual methods for subclasses */
+  GList *(*get_objects) (GESTimelineLayer * layer);
+
+  /*< private >*/
+  /* Signals */
+  void (*object_added)         (GESTimelineLayer * layer, GESTimelineObject * object);
+  void (*object_removed)       (GESTimelineLayer * layer, GESTimelineObject * object);
+
+  /* Padding for API extension */
+  gpointer _ges_reserved[GES_PADDING];
+};
+</STRUCT>
+<FUNCTION>
+<NAME>ges_timeline_layer_get_type</NAME>
+<RETURNS>GType </RETURNS>
+void 
+</FUNCTION>
+<FUNCTION>
+<NAME>ges_timeline_layer_new</NAME>
+<RETURNS>GESTimelineLayer*</RETURNS>
+void 
+</FUNCTION>
+<FUNCTION>
+<NAME>ges_timeline_layer_set_timeline</NAME>
+<RETURNS>void     </RETURNS>
+GESTimelineLayer * layer, GESTimeline * timeline 
+</FUNCTION>
+<FUNCTION>
+<NAME>ges_timeline_layer_add_object</NAME>
+<RETURNS>gboolean </RETURNS>
+GESTimelineLayer * layer, GESTimelineObject * object 
+</FUNCTION>
+<FUNCTION>
+<NAME>ges_timeline_layer_remove_object</NAME>
+<RETURNS>gboolean </RETURNS>
+GESTimelineLayer * layer, GESTimelineObject * object 
+</FUNCTION>
+<FUNCTION>
+<NAME>ges_timeline_layer_set_priority</NAME>
+<RETURNS>void     </RETURNS>
+GESTimelineLayer * layer, guint priority 
+</FUNCTION>
+<FUNCTION>
+<NAME>ges_timeline_layer_get_priority</NAME>
+<RETURNS>guint    </RETURNS>
+GESTimelineLayer * layer 
+</FUNCTION>
+<FUNCTION>
+<NAME>ges_timeline_layer_get_objects</NAME>
+<RETURNS>GList*</RETURNS>
+GESTimelineLayer * layer 
+</FUNCTION>
+<MACRO>
+<NAME>GES_TYPE_TRACK_VIDEO_TRANSITION</NAME>
+#define GES_TYPE_TRACK_VIDEO_TRANSITION ges_track_video_transition_get_type()
+</MACRO>
+<MACRO>
+<NAME>GES_TRACK_VIDEO_TRANSITION</NAME>
+#define GES_TRACK_VIDEO_TRANSITION(obj) \
+  (G_TYPE_CHECK_INSTANCE_CAST ((obj), GES_TYPE_TRACK_VIDEO_TRANSITION, GESTrackVideoTransition))
+</MACRO>
+<MACRO>
+<NAME>GES_TRACK_VIDEO_TRANSITION_CLASS</NAME>
+#define GES_TRACK_VIDEO_TRANSITION_CLASS(klass) \
+  (G_TYPE_CHECK_CLASS_CAST ((klass), GES_TYPE_TRACK_VIDEO_TRANSITION, GESTrackVideoTransitionClass))
+</MACRO>
+<MACRO>
+<NAME>GES_IS_TRACK_VIDEO_TRANSITION</NAME>
+#define GES_IS_TRACK_VIDEO_TRANSITION(obj) \
+  (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GES_TYPE_TRACK_VIDEO_TRANSITION))
+</MACRO>
+<MACRO>
+<NAME>GES_IS_TRACK_VIDEO_TRANSITION_CLASS</NAME>
+#define GES_IS_TRACK_VIDEO_TRANSITION_CLASS(klass) \
+  (G_TYPE_CHECK_CLASS_TYPE ((klass), GES_TYPE_TRACK_VIDEO_TRANSITION))
+</MACRO>
+<MACRO>
+<NAME>GES_TRACK_VIDEO_TRANSITION_GET_CLASS</NAME>
+#define GES_TRACK_VIDEO_TRANSITION_GET_CLASS(obj) \
+  (G_TYPE_INSTANCE_GET_CLASS ((obj), GES_TYPE_TRACK_VIDEO_TRANSITION, GESTrackVideoTransitionClass))
+</MACRO>
+<STRUCT>
+<NAME>GESTrackVideoTransitionPrivate</NAME>
+</STRUCT>
+<STRUCT>
+<NAME>GESTrackVideoTransition</NAME>
+struct _GESTrackVideoTransition {
+  GESTrackTransition parent;
+  
+  /*< private >*/
+  GESVideoStandardTransitionType        type;
+  /* these enable video interpolation */
+  GstController                 *controller;
+  GstInterpolationControlSource *control_source;
+
+  /* so we can support changing between wipes */
+  GstElement                    *smpte;
+  GstElement                    *mixer;
+  GstPad                        *sinka;
+  GstPad                        *sinkb;
+  
+  /* these will be different depending on whether smptealpha or alpha element
+   * is used */
+  gdouble                       start_value;
+  gdouble                       end_value;
+
+  GESTrackVideoTransitionPrivate *priv;
+
+  /* Padding for API extension */
+  gpointer _ges_reserved[GES_PADDING];
+};
+</STRUCT>
+<STRUCT>
+<NAME>GESTrackVideoTransitionClass</NAME>
+struct _GESTrackVideoTransitionClass {
+  GESTrackTransitionClass parent_class;
+
+  /*< private >*/
+  /* Padding for API extension */
+  gpointer _ges_reserved[GES_PADDING];
+};
+</STRUCT>
+<FUNCTION>
+<NAME>ges_track_video_transition_get_type</NAME>
+<RETURNS>GType </RETURNS>
+void 
+</FUNCTION>
+<FUNCTION>
+<NAME>ges_track_video_transition_set_type</NAME>
+<RETURNS>gboolean </RETURNS>
+GESTrackVideoTransition * self, GESVideoStandardTransitionType type 
+</FUNCTION>
+<FUNCTION>
+<NAME>ges_track_video_transition_new</NAME>
+<RETURNS>GESTrackVideoTransition*</RETURNS>
+void 
+</FUNCTION>
+<MACRO>
+<NAME>GES_TYPE_TIMELINE_FILE_SOURCE</NAME>
+#define GES_TYPE_TIMELINE_FILE_SOURCE ges_timeline_filesource_get_type()
+</MACRO>
+<MACRO>
+<NAME>GES_TIMELINE_FILE_SOURCE</NAME>
+#define GES_TIMELINE_FILE_SOURCE(obj) \
+  (G_TYPE_CHECK_INSTANCE_CAST ((obj), GES_TYPE_TIMELINE_FILE_SOURCE, GESTimelineFileSource))
+</MACRO>
+<MACRO>
+<NAME>GES_TIMELINE_FILE_SOURCE_CLASS</NAME>
+#define GES_TIMELINE_FILE_SOURCE_CLASS(klass) \
+  (G_TYPE_CHECK_CLASS_CAST ((klass), GES_TYPE_TIMELINE_FILE_SOURCE, GESTimelineFileSourceClass))
+</MACRO>
+<MACRO>
+<NAME>GES_IS_TIMELINE_FILE_SOURCE</NAME>
+#define GES_IS_TIMELINE_FILE_SOURCE(obj) \
+  (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GES_TYPE_TIMELINE_FILE_SOURCE))
+</MACRO>
+<MACRO>
+<NAME>GES_IS_TIMELINE_FILE_SOURCE_CLASS</NAME>
+#define GES_IS_TIMELINE_FILE_SOURCE_CLASS(klass) \
+  (G_TYPE_CHECK_CLASS_TYPE ((klass), GES_TYPE_TIMELINE_FILE_SOURCE))
+</MACRO>
+<MACRO>
+<NAME>GES_TIMELINE_FILE_SOURCE_GET_CLASS</NAME>
+#define GES_TIMELINE_FILE_SOURCE_GET_CLASS(obj) \
+  (G_TYPE_INSTANCE_GET_CLASS ((obj), GES_TYPE_TIMELINE_FILE_SOURCE, GESTimelineFileSourceClass))
+</MACRO>
+<STRUCT>
+<NAME>GESTimelineFileSource</NAME>
+struct _GESTimelineFileSource {
+  /*< private >*/
+  GESTimelineSource parent;
+
+  gchar *uri;
+
+  gboolean mute;
+  gboolean is_image;
+
+  guint64 maxduration;
+
+  /* The formats supported by this filesource
+   * TODO : Could maybe be moved to a parent class */
+  GESTrackType supportedformats;
+
+  /* Padding for API extension */
+  gpointer _ges_reserved[GES_PADDING];
+};
+</STRUCT>
+<STRUCT>
+<NAME>GESTimelineFileSourceClass</NAME>
+struct _GESTimelineFileSourceClass {
+  /*< private >*/
+  GESTimelineSourceClass parent_class;
+
+  /* Padding for API extension */
+  gpointer _ges_reserved[GES_PADDING];
+};
+</STRUCT>
+<FUNCTION>
+<NAME>ges_timeline_filesource_get_type</NAME>
+<RETURNS>GType </RETURNS>
+void 
+</FUNCTION>
+<FUNCTION>
+<NAME>ges_timeline_filesource_new</NAME>
+<RETURNS>GESTimelineFileSource*</RETURNS>
+gchar *uri 
+</FUNCTION>
+<MACRO>
+<NAME>GES_TYPE_TRACK_OBJECT</NAME>
+#define GES_TYPE_TRACK_OBJECT ges_track_object_get_type()
+</MACRO>
+<MACRO>
+<NAME>GES_TRACK_OBJECT</NAME>
+#define GES_TRACK_OBJECT(obj) \
+  (G_TYPE_CHECK_INSTANCE_CAST ((obj), GES_TYPE_TRACK_OBJECT, GESTrackObject))
+</MACRO>
+<MACRO>
+<NAME>GES_TRACK_OBJECT_CLASS</NAME>
+#define GES_TRACK_OBJECT_CLASS(klass) \
+  (G_TYPE_CHECK_CLASS_CAST ((klass), GES_TYPE_TRACK_OBJECT, GESTrackObjectClass))
+</MACRO>
+<MACRO>
+<NAME>GES_IS_TRACK_OBJECT</NAME>
+#define GES_IS_TRACK_OBJECT(obj) \
+  (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GES_TYPE_TRACK_OBJECT))
+</MACRO>
+<MACRO>
+<NAME>GES_IS_TRACK_OBJECT_CLASS</NAME>
+#define GES_IS_TRACK_OBJECT_CLASS(klass) \
+  (G_TYPE_CHECK_CLASS_TYPE ((klass), GES_TYPE_TRACK_OBJECT))
+</MACRO>
+<MACRO>
+<NAME>GES_TRACK_OBJECT_GET_CLASS</NAME>
+#define GES_TRACK_OBJECT_GET_CLASS(obj) \
+  (G_TYPE_INSTANCE_GET_CLASS ((obj), GES_TYPE_TRACK_OBJECT, GESTrackObjectClass))
+</MACRO>
+<MACRO>
+<NAME>GES_TRACK_OBJECT_START</NAME>
+#define GES_TRACK_OBJECT_START(obj) (((GESTrackObject*)obj)->start)
+</MACRO>
+<MACRO>
+<NAME>GES_TRACK_OBJECT_INPOINT</NAME>
+#define GES_TRACK_OBJECT_INPOINT(obj) (((GESTrackObject*)obj)->inpoint)
+</MACRO>
+<MACRO>
+<NAME>GES_TRACK_OBJECT_DURATION</NAME>
+#define GES_TRACK_OBJECT_DURATION(obj) (((GESTrackObject*)obj)->duration)
+</MACRO>
+<STRUCT>
+<NAME>GESTrackObjectPrivate</NAME>
+</STRUCT>
+<STRUCT>
+<NAME>GESTrackObject</NAME>
+struct _GESTrackObject {
+  GObject parent;
+
+  /*< public >*/
+  /* Cached values of the gnlobject properties */
+  guint64 start;
+  guint64 inpoint;
+  guint64 duration;
+  guint32 gnl_priority;
+  gboolean active;
+
+  /*< private >*/
+  GESTrackObjectPrivate *priv;
+
+  /* Padding for API extension */
+  gpointer _ges_reserved[GES_PADDING];
+};
+</STRUCT>
+<STRUCT>
+<NAME>GESTrackObjectClass</NAME>
+struct _GESTrackObjectClass {
+  /*< private >*/
+  GObjectClass parent_class;
+
+  /*< public >*/
+  /* virtual methods for subclasses */
+  const gchar *gnlobject_factorytype;
+  GstElement* (*create_gnl_object) (GESTrackObject * object);
+  GstElement* (*create_element) (GESTrackObject * object);
+
+  void (*start_changed) (GESTrackObject *object, guint64 start);
+  void (*media_start_changed) (GESTrackObject *object, guint64 media_start);
+  void (*gnl_priority_changed) (GESTrackObject *object, guint priority);
+  void (*duration_changed) (GESTrackObject *object, guint64 duration);
+  void (*active_changed) (GESTrackObject *object, gboolean active);
+
+  /*< private >*/
+  /* signals (currently unused) */
+  void (*changed)      (GESTrackObject * object);
+
+  /* Padding for API extension */
+  gpointer _ges_reserved[GES_PADDING];
+};
+</STRUCT>
+<FUNCTION>
+<NAME>ges_track_object_get_type</NAME>
+<RETURNS>GType </RETURNS>
+void 
+</FUNCTION>
+<FUNCTION>
+<NAME>ges_track_object_set_track</NAME>
+<RETURNS>gboolean        </RETURNS>
+GESTrackObject * object, GESTrack * track 
+</FUNCTION>
+<FUNCTION>
+<NAME>ges_track_object_get_track</NAME>
+<RETURNS>const GESTrack*</RETURNS>
+GESTrackObject * object 
+</FUNCTION>
+<FUNCTION>
+<NAME>ges_track_object_set_timeline_object</NAME>
+<RETURNS>void </RETURNS>
+GESTrackObject * object, GESTimelineObject * tlobject 
+</FUNCTION>
+<FUNCTION>
+<NAME>ges_track_object_get_timeline_object</NAME>
+<RETURNS>const GESTimelineObject *</RETURNS>
+GESTrackObject* object 
+</FUNCTION>
+<FUNCTION>
+<NAME>ges_track_object_get_gnlobject</NAME>
+<RETURNS>GstElement *</RETURNS>
+GESTrackObject * object 
+</FUNCTION>
+<FUNCTION>
+<NAME>ges_track_object_get_element</NAME>
+<RETURNS>GstElement *</RETURNS>
+GESTrackObject * object 
+</FUNCTION>
+<FUNCTION>
+<NAME>ges_track_object_set_start_internal</NAME>
+<RETURNS>gboolean </RETURNS>
+GESTrackObject * object, guint64 start 
+</FUNCTION>
+<FUNCTION>
+<NAME>ges_track_object_set_inpoint_internal</NAME>
+<RETURNS>gboolean </RETURNS>
+GESTrackObject * object, guint64 inpoint 
+</FUNCTION>
+<FUNCTION>
+<NAME>ges_track_object_set_duration_internal</NAME>
+<RETURNS>gboolean </RETURNS>
+GESTrackObject * object, guint64 duration 
+</FUNCTION>
+<FUNCTION>
+<NAME>ges_track_object_set_priority_internal</NAME>
+<RETURNS>gboolean </RETURNS>
+GESTrackObject * object, guint32 priority 
+</FUNCTION>
+<FUNCTION>
+<NAME>ges_track_object_set_priority_offset_internal</NAME>
+<RETURNS>gboolean </RETURNS>
+GESTrackObject * object, guint32 priority_offset 
+</FUNCTION>
+<FUNCTION>
+<NAME>ges_track_object_get_priority_offset</NAME>
+<RETURNS>guint32 </RETURNS>
+GESTrackObject *object 
+</FUNCTION>
+<FUNCTION>
+<NAME>ges_track_object_set_active</NAME>
+<RETURNS>gboolean </RETURNS>
+GESTrackObject * object, gboolean active 
+</FUNCTION>
+<MACRO>
+<NAME>GES_TYPE_TIMELINE_PIPELINE</NAME>
+#define GES_TYPE_TIMELINE_PIPELINE ges_timeline_pipeline_get_type()
+</MACRO>
+<MACRO>
+<NAME>GES_TIMELINE_PIPELINE</NAME>
+#define GES_TIMELINE_PIPELINE(obj) \
+  (G_TYPE_CHECK_INSTANCE_CAST ((obj), GES_TYPE_TIMELINE_PIPELINE, GESTimelinePipeline))
+</MACRO>
+<MACRO>
+<NAME>GES_TIMELINE_PIPELINE_CLASS</NAME>
+#define GES_TIMELINE_PIPELINE_CLASS(klass) \
+  (G_TYPE_CHECK_CLASS_CAST ((klass), GES_TYPE_TIMELINE_PIPELINE, GESTimelinePipelineClass))
+</MACRO>
+<MACRO>
+<NAME>GES_IS_TIMELINE_PIPELINE</NAME>
+#define GES_IS_TIMELINE_PIPELINE(obj) \
+  (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GES_TYPE_TIMELINE_PIPELINE))
+</MACRO>
+<MACRO>
+<NAME>GES_IS_TIMELINE_PIPELINE_CLASS</NAME>
+#define GES_IS_TIMELINE_PIPELINE_CLASS(klass) \
+  (G_TYPE_CHECK_CLASS_TYPE ((klass), GES_TYPE_TIMELINE_PIPELINE))
+</MACRO>
+<MACRO>
+<NAME>GES_TIMELINE_PIPELINE_GET_CLASS</NAME>
+#define GES_TIMELINE_PIPELINE_GET_CLASS(obj) \
+  (G_TYPE_INSTANCE_GET_CLASS ((obj), GES_TYPE_TIMELINE_PIPELINE, GESTimelinePipelineClass))
+</MACRO>
+<STRUCT>
+<NAME>GESTimelinePipelinePrivate</NAME>
+</STRUCT>
+<ENUM>
+<NAME>GESPipelineFlags</NAME>
+typedef enum {
+  TIMELINE_MODE_PREVIEW_AUDIO  = 1 << 0,
+  TIMELINE_MODE_PREVIEW_VIDEO  = 1 << 1,
+  TIMELINE_MODE_PREVIEW                = TIMELINE_MODE_PREVIEW_AUDIO | TIMELINE_MODE_PREVIEW_VIDEO,
+  TIMELINE_MODE_RENDER         = 1 << 2,
+  TIMELINE_MODE_SMART_RENDER   = 1 << 3
+} GESPipelineFlags;
+</ENUM>
+<STRUCT>
+<NAME>GESTimelinePipeline</NAME>
+struct _GESTimelinePipeline {
+  /*< private >*/
+  GstPipeline parent;
+
+  GESTimelinePipelinePrivate *priv;
+
+  /* Padding for API extension */
+  gpointer _ges_reserved[GES_PADDING];
+};
+</STRUCT>
+<STRUCT>
+<NAME>GESTimelinePipelineClass</NAME>
+struct _GESTimelinePipelineClass {
+  /*< private >*/
+  GstPipelineClass parent_class;
+
+  /* Padding for API extension */
+  gpointer _ges_reserved[GES_PADDING];
+};
+</STRUCT>
+<FUNCTION>
+<NAME>ges_timeline_pipeline_get_type</NAME>
+<RETURNS>GType </RETURNS>
+void 
+</FUNCTION>
+<FUNCTION>
+<NAME>ges_timeline_pipeline_new</NAME>
+<RETURNS>GESTimelinePipeline*</RETURNS>
+void 
+</FUNCTION>
+<FUNCTION>
+<NAME>ges_timeline_pipeline_add_timeline</NAME>
+<RETURNS>gboolean </RETURNS>
+GESTimelinePipeline * pipeline, GESTimeline * timeline 
+</FUNCTION>
+<FUNCTION>
+<NAME>ges_timeline_pipeline_set_render_settings</NAME>
+<RETURNS>gboolean </RETURNS>
+GESTimelinePipeline *pipeline, gchar * output_uri, GstEncodingProfile *profile 
+</FUNCTION>
+<FUNCTION>
+<NAME>ges_timeline_pipeline_set_mode</NAME>
+<RETURNS>gboolean </RETURNS>
+GESTimelinePipeline *pipeline, GESPipelineFlags mode 
+</FUNCTION>
+<FUNCTION>
+<NAME>ges_timeline_pipeline_get_thumbnail_buffer</NAME>
+<RETURNS>GstBuffer  *</RETURNS>
+GESTimelinePipeline *self, GstCaps *caps 
+</FUNCTION>
+<FUNCTION>
+<NAME>ges_timeline_pipeline_get_thumbnail_rgb24</NAME>
+<RETURNS>GstBuffer  *</RETURNS>
+GESTimelinePipeline *self, gint width, gint height 
+</FUNCTION>
+<FUNCTION>
+<NAME>ges_timeline_pipeline_save_thumbnail</NAME>
+<RETURNS>gboolean </RETURNS>
+GESTimelinePipeline *self, int width, int height, gchar *format, gchar *location 
+</FUNCTION>
+<MACRO>
+<NAME>GES_TYPE_TIMELINE_OPERATION</NAME>
+#define GES_TYPE_TIMELINE_OPERATION ges_timeline_operation_get_type()
+</MACRO>
+<MACRO>
+<NAME>GES_TIMELINE_OPERATION</NAME>
+#define GES_TIMELINE_OPERATION(obj) \
+  (G_TYPE_CHECK_INSTANCE_CAST ((obj), GES_TYPE_TIMELINE_OPERATION, GESTimelineOperation))
+</MACRO>
+<MACRO>
+<NAME>GES_TIMELINE_OPERATION_CLASS</NAME>
+#define GES_TIMELINE_OPERATION_CLASS(klass) \
+  (G_TYPE_CHECK_CLASS_CAST ((klass), GES_TYPE_TIMELINE_OPERATION, GESTimelineOperationClass))
+</MACRO>
+<MACRO>
+<NAME>GES_IS_TIMELINE_OPERATION</NAME>
+#define GES_IS_TIMELINE_OPERATION(obj) \
+  (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GES_TYPE_TIMELINE_OPERATION))
+</MACRO>
+<MACRO>
+<NAME>GES_IS_TIMELINE_OPERATION_CLASS</NAME>
+#define GES_IS_TIMELINE_OPERATION_CLASS(klass) \
+  (G_TYPE_CHECK_CLASS_TYPE ((klass), GES_TYPE_TIMELINE_OPERATION))
+</MACRO>
+<MACRO>
+<NAME>GES_TIMELINE_OPERATION_GET_CLASS</NAME>
+#define GES_TIMELINE_OPERATION_GET_CLASS(obj) \
+  (G_TYPE_INSTANCE_GET_CLASS ((obj), GES_TYPE_TIMELINE_OPERATION, GESTimelineOperationClass))
+</MACRO>
+<STRUCT>
+<NAME>GESTimelineOperationPrivate</NAME>
+</STRUCT>
+<STRUCT>
+<NAME>GESTimelineOperation</NAME>
+struct _GESTimelineOperation {
+  /*< private >*/
+  GESTimelineObject parent;
+
+  GESTimelineOperationPrivate *priv;
+
+  /* Padding for API extension */
+  gpointer _ges_reserved[GES_PADDING];
+};
+</STRUCT>
+<STRUCT>
+<NAME>GESTimelineOperationClass</NAME>
+struct _GESTimelineOperationClass {
+  /*< private >*/
+  GESTimelineObjectClass parent_class;
+
+  /*< private >*/
+  /* Padding for API extension */
+  gpointer _ges_reserved[GES_PADDING];
+};
+</STRUCT>
+<FUNCTION>
+<NAME>ges_timeline_operation_get_type</NAME>
+<RETURNS>GType </RETURNS>
+void 
+</FUNCTION>
+<MACRO>
+<NAME>GES_TYPE_TIMELINE_OVERLAY</NAME>
+#define GES_TYPE_TIMELINE_OVERLAY ges_timeline_overlay_get_type()
+</MACRO>
+<MACRO>
+<NAME>GES_TIMELINE_OVERLAY</NAME>
+#define GES_TIMELINE_OVERLAY(obj) \
+  (G_TYPE_CHECK_INSTANCE_CAST ((obj), GES_TYPE_TIMELINE_OVERLAY, GESTimelineOverlay))
+</MACRO>
+<MACRO>
+<NAME>GES_TIMELINE_OVERLAY_CLASS</NAME>
+#define GES_TIMELINE_OVERLAY_CLASS(klass) \
+  (G_TYPE_CHECK_CLASS_CAST ((klass), GES_TYPE_TIMELINE_OVERLAY, GESTimelineOverlayClass))
+</MACRO>
+<MACRO>
+<NAME>GES_IS_TIMELINE_OVERLAY</NAME>
+#define GES_IS_TIMELINE_OVERLAY(obj) \
+  (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GES_TYPE_TIMELINE_OVERLAY))
+</MACRO>
+<MACRO>
+<NAME>GES_IS_TIMELINE_OVERLAY_CLASS</NAME>
+#define GES_IS_TIMELINE_OVERLAY_CLASS(klass) \
+  (G_TYPE_CHECK_CLASS_TYPE ((klass), GES_TYPE_TIMELINE_OVERLAY))
+</MACRO>
+<MACRO>
+<NAME>GES_TIMELINE_OVERLAY_GET_CLASS</NAME>
+#define GES_TIMELINE_OVERLAY_GET_CLASS(obj) \
+  (G_TYPE_INSTANCE_GET_CLASS ((obj), GES_TYPE_TIMELINE_OVERLAY, GESTimelineOverlayClass))
+</MACRO>
+<STRUCT>
+<NAME>GESTimelineOverlayPrivate</NAME>
+</STRUCT>
+<STRUCT>
+<NAME>GESTimelineOverlay</NAME>
+struct _GESTimelineOverlay {
+  /*< private >*/
+  GESTimelineOperation parent;
+
+  GESTimelineOverlayPrivate *priv;
+
+  /* Padding for API extension */
+  gpointer _ges_reserved[GES_PADDING];
+};
+</STRUCT>
+<STRUCT>
+<NAME>GESTimelineOverlayClass</NAME>
+struct _GESTimelineOverlayClass {
+  GESTimelineOperationClass parent_class;
+
+  /*< private >*/
+  /* Padding for API extension */
+  gpointer _ges_reserved[GES_PADDING];
+};
+</STRUCT>
+<FUNCTION>
+<NAME>ges_timeline_overlay_get_type</NAME>
+<RETURNS>GType </RETURNS>
+void 
+</FUNCTION>
+<MACRO>
+<NAME>GES_TYPE_CUSTOM_TIMELINE_SOURCE</NAME>
+#define GES_TYPE_CUSTOM_TIMELINE_SOURCE ges_custom_timeline_source_get_type()
+</MACRO>
+<MACRO>
+<NAME>GES_CUSTOM_TIMELINE_SOURCE</NAME>
+#define GES_CUSTOM_TIMELINE_SOURCE(obj) \
+  (G_TYPE_CHECK_INSTANCE_CAST ((obj), GES_TYPE_CUSTOM_TIMELINE_SOURCE, GESCustomTimelineSource))
+</MACRO>
+<MACRO>
+<NAME>GES_CUSTOM_TIMELINE_SOURCE_CLASS</NAME>
+#define GES_CUSTOM_TIMELINE_SOURCE_CLASS(klass) \
+  (G_TYPE_CHECK_CLASS_CAST ((klass), GES_TYPE_CUSTOM_TIMELINE_SOURCE, GESCustomTimelineSourceClass))
+</MACRO>
+<MACRO>
+<NAME>GES_IS_CUSTOM_TIMELINE_SOURCE</NAME>
+#define GES_IS_CUSTOM_TIMELINE_SOURCE(obj) \
+  (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GES_TYPE_CUSTOM_TIMELINE_SOURCE))
+</MACRO>
+<MACRO>
+<NAME>GES_IS_CUSTOM_TIMELINE_SOURCE_CLASS</NAME>
+#define GES_IS_CUSTOM_TIMELINE_SOURCE_CLASS(klass) \
+  (G_TYPE_CHECK_CLASS_TYPE ((klass), GES_TYPE_CUSTOM_TIMELINE_SOURCE))
+</MACRO>
+<MACRO>
+<NAME>GES_CUSTOM_TIMELINE_SOURCE_GET_CLASS</NAME>
+#define GES_CUSTOM_TIMELINE_SOURCE_GET_CLASS(obj) \
+  (G_TYPE_INSTANCE_GET_CLASS ((obj), GES_TYPE_CUSTOM_TIMELINE_SOURCE, GESCustomTimelineSourceClass))
+</MACRO>
+<STRUCT>
+<NAME>GESCustomTimelineSourcePrivate</NAME>
+</STRUCT>
+<USER_FUNCTION>
+<NAME>GESFillTrackObjectUserFunc</NAME>
+<RETURNS>gboolean </RETURNS>
+GESTimelineObject * object,
+                                            GESTrackObject * trobject,
+                                            GstElement * gnlobj,
+                                            gpointer user_data
+</USER_FUNCTION>
+<STRUCT>
+<NAME>GESCustomTimelineSource</NAME>
+struct _GESCustomTimelineSource {
+  GESTimelineSource parent;
+
+  /*< private >*/
+  GESCustomTimelineSourcePrivate *priv;
+
+  /* Padding for API extension */
+  gpointer _ges_reserved[GES_PADDING];
+};
+</STRUCT>
+<STRUCT>
+<NAME>GESCustomTimelineSourceClass</NAME>
+struct _GESCustomTimelineSourceClass {
+  GESTimelineSourceClass parent_class;
+
+  /*< private >*/
+  /* Padding for API extension */
+  gpointer _ges_reserved[GES_PADDING];
+};
+</STRUCT>
+<FUNCTION>
+<NAME>ges_custom_timeline_source_get_type</NAME>
+<RETURNS>GType </RETURNS>
+void 
+</FUNCTION>
+<FUNCTION>
+<NAME>ges_custom_timeline_source_new</NAME>
+<RETURNS>GESCustomTimelineSource *</RETURNS>
+GESFillTrackObjectUserFunc func, gpointer user_data 
+</FUNCTION>
+<MACRO>
+<NAME>GES_TYPE_TRACK_TITLE_SOURCE</NAME>
+#define GES_TYPE_TRACK_TITLE_SOURCE ges_track_title_source_get_type()
+</MACRO>
+<MACRO>
+<NAME>GES_TRACK_TITLE_SOURCE</NAME>
+#define GES_TRACK_TITLE_SOURCE(obj) \
+  (G_TYPE_CHECK_INSTANCE_CAST ((obj), GES_TYPE_TRACK_TITLE_SOURCE, GESTrackTitleSource))
+</MACRO>
+<MACRO>
+<NAME>GES_TRACK_TITLE_SOURCE_CLASS</NAME>
+#define GES_TRACK_TITLE_SOURCE_CLASS(klass) \
+  (G_TYPE_CHECK_CLASS_CAST ((klass), GES_TYPE_TRACK_TITLE_SOURCE, GESTrackTitleSourceClass))
+</MACRO>
+<MACRO>
+<NAME>GES_IS_TRACK_TITLE_SOURCE</NAME>
+#define GES_IS_TRACK_TITLE_SOURCE(obj) \
+  (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GES_TYPE_TRACK_TITLE_SOURCE))
+</MACRO>
+<MACRO>
+<NAME>GES_IS_TRACK_TITLE_SOURCE_CLASS</NAME>
+#define GES_IS_TRACK_TITLE_SOURCE_CLASS(klass) \
+  (G_TYPE_CHECK_CLASS_TYPE ((klass), GES_TYPE_TRACK_TITLE_SOURCE))
+</MACRO>
+<MACRO>
+<NAME>GES_TRACK_TITLE_SOURCE_GET_CLASS</NAME>
+#define GES_TRACK_TITLE_SOURCE_GET_CLASS(obj) \
+  (G_TYPE_INSTANCE_GET_CLASS ((obj), GES_TYPE_TRACK_TITLE_SOURCE, GESTrackTitleSourceClass))
+</MACRO>
+<STRUCT>
+<NAME>GESTrackTitleSourcePrivate</NAME>
+</STRUCT>
+<STRUCT>
+<NAME>GESTrackTitleSource</NAME>
+struct _GESTrackTitleSource {
+  GESTrackSource parent;
+
+  /*< private >*/
+  gchar         *text;
+  gchar         *font_desc;
+  GESTextHAlign halign;
+  GESTextVAlign valign;
+  GstElement    *text_el;
+  GstElement    *background_el;
+
+  GESTrackTitleSourcePrivate *priv;
+
+  /* Padding for API extension */
+  gpointer _ges_reserved[GES_PADDING];
+};
+</STRUCT>
+<STRUCT>
+<NAME>GESTrackTitleSourceClass</NAME>
+struct _GESTrackTitleSourceClass {
+  GESTrackSourceClass parent_class;
+
+  /*< private >*/
+
+  /* Padding for API extension */
+  gpointer _ges_reserved[GES_PADDING];
+};
+</STRUCT>
+<FUNCTION>
+<NAME>ges_track_title_source_get_type</NAME>
+<RETURNS>GType </RETURNS>
+void 
+</FUNCTION>
+<FUNCTION>
+<NAME>ges_track_title_source_set_text</NAME>
+<RETURNS>void </RETURNS>
+GESTrackTitleSource *self, const gchar *text 
+</FUNCTION>
+<FUNCTION>
+<NAME>ges_track_title_source_set_font_desc</NAME>
+<RETURNS>void </RETURNS>
+GESTrackTitleSource *self, const gchar *font_desc 
+</FUNCTION>
+<FUNCTION>
+<NAME>ges_track_title_source_set_halignment</NAME>
+<RETURNS>void </RETURNS>
+GESTrackTitleSource *self, GESTextHAlign halgn 
+</FUNCTION>
+<FUNCTION>
+<NAME>ges_track_title_source_set_valignment</NAME>
+<RETURNS>void </RETURNS>
+GESTrackTitleSource *self, GESTextVAlign valign 
+</FUNCTION>
+<FUNCTION>
+<NAME>ges_track_title_source_new</NAME>
+<RETURNS>GESTrackTitleSource*</RETURNS>
+void 
+</FUNCTION>
+<MACRO>
+<NAME>GES_TYPE_TRACK_AUDIO_TRANSITION</NAME>
+#define GES_TYPE_TRACK_AUDIO_TRANSITION ges_track_audio_transition_get_type()
+</MACRO>
+<MACRO>
+<NAME>GES_TRACK_AUDIO_TRANSITION</NAME>
+#define GES_TRACK_AUDIO_TRANSITION(obj) \
+  (G_TYPE_CHECK_INSTANCE_CAST ((obj), GES_TYPE_TRACK_AUDIO_TRANSITION, GESTrackAudioTransition))
+</MACRO>
+<MACRO>
+<NAME>GES_TRACK_AUDIO_TRANSITION_CLASS</NAME>
+#define GES_TRACK_AUDIO_TRANSITION_CLASS(klass) \
+  (G_TYPE_CHECK_CLASS_CAST ((klass), GES_TYPE_TRACK_AUDIO_TRANSITION, GESTrackAudioTransitionClass))
+</MACRO>
+<MACRO>
+<NAME>GES_IS_TRACK_AUDIO_TRANSITION</NAME>
+#define GES_IS_TRACK_AUDIO_TRANSITION(obj) \
+  (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GES_TYPE_TRACK_AUDIO_TRANSITION))
+</MACRO>
+<MACRO>
+<NAME>GES_IS_TRACK_AUDIO_TRANSITION_CLASS</NAME>
+#define GES_IS_TRACK_AUDIO_TRANSITION_CLASS(klass) \
+  (G_TYPE_CHECK_CLASS_TYPE ((klass), GES_TYPE_TRACK_AUDIO_TRANSITION))
+</MACRO>
+<MACRO>
+<NAME>GES_TRACK_AUDIO_TRANSITION_GET_CLASS</NAME>
+#define GES_TRACK_AUDIO_TRANSITION_GET_CLASS(obj) \
+  (G_TYPE_INSTANCE_GET_CLASS ((obj), GES_TYPE_TRACK_AUDIO_TRANSITION, GESTrackAudioTransitionClass))
+</MACRO>
+<STRUCT>
+<NAME>GESTrackAudioTransitionPrivate</NAME>
+</STRUCT>
+<STRUCT>
+<NAME>GESTrackAudioTransition</NAME>
+struct _GESTrackAudioTransition {
+  GESTrackTransition parent;
+
+  /*< private >*/
+  /* these enable volume interpolation. Unlike video, both inputs are adjusted
+   * simultaneously */
+  GstController                 *a_controller;
+  GstInterpolationControlSource *a_control_source;
+
+  GstController                 *b_controller;
+  GstInterpolationControlSource *b_control_source;
+
+  GESTrackAudioTransitionPrivate *priv;
+
+  /* Padding for API extension */
+  gpointer _ges_reserved[GES_PADDING];
+};
+</STRUCT>
+<STRUCT>
+<NAME>GESTrackAudioTransitionClass</NAME>
+struct _GESTrackAudioTransitionClass {
+  GESTrackTransitionClass parent_class;
+
+  /* Padding for API extension */
+  gpointer _ges_reserved[GES_PADDING];
+};
+</STRUCT>
+<FUNCTION>
+<NAME>ges_track_audio_transition_get_type</NAME>
+<RETURNS>GType </RETURNS>
+void 
+</FUNCTION>
+<FUNCTION>
+<NAME>ges_track_audio_transition_new</NAME>
+<RETURNS>GESTrackAudioTransition*</RETURNS>
+void 
+</FUNCTION>
+<MACRO>
+<NAME>GES_TYPE_TIMELINE_TITLE_SOURCE</NAME>
+#define GES_TYPE_TIMELINE_TITLE_SOURCE ges_timeline_title_source_get_type()
+</MACRO>
+<MACRO>
+<NAME>GES_TIMELINE_TITLE_SOURCE</NAME>
+#define GES_TIMELINE_TITLE_SOURCE(obj) \
+  (G_TYPE_CHECK_INSTANCE_CAST ((obj), GES_TYPE_TIMELINE_TITLE_SOURCE, GESTimelineTitleSource))
+</MACRO>
+<MACRO>
+<NAME>GES_TIMELINE_TITLE_SOURCE_CLASS</NAME>
+#define GES_TIMELINE_TITLE_SOURCE_CLASS(klass) \
+  (G_TYPE_CHECK_CLASS_CAST ((klass), GES_TYPE_TIMELINE_TITLE_SOURCE, GESTimelineTitleSourceClass))
+</MACRO>
+<MACRO>
+<NAME>GES_IS_TIMELINE_TITLE_SOURCE</NAME>
+#define GES_IS_TIMELINE_TITLE_SOURCE(obj) \
+  (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GES_TYPE_TIMELINE_TITLE_SOURCE))
+</MACRO>
+<MACRO>
+<NAME>GES_IS_TIMELINE_TITLE_SOURCE_CLASS</NAME>
+#define GES_IS_TIMELINE_TITLE_SOURCE_CLASS(klass) \
+  (G_TYPE_CHECK_CLASS_TYPE ((klass), GES_TYPE_TIMELINE_TITLE_SOURCE))
+</MACRO>
+<MACRO>
+<NAME>GES_TIMELINE_TITLE_SOURCE_GET_CLASS</NAME>
+#define GES_TIMELINE_TITLE_SOURCE_GET_CLASS(obj) \
+  (G_TYPE_INSTANCE_GET_CLASS ((obj), GES_TYPE_TIMELINE_TITLE_SOURCE, GESTimelineTitleSourceClass))
+</MACRO>
+<STRUCT>
+<NAME>GESTimelineTitleSourcePrivate</NAME>
+</STRUCT>
+<STRUCT>
+<NAME>GESTimelineTitleSource</NAME>
+struct _GESTimelineTitleSource {
+  /*< private >*/
+  GESTimelineSource parent;
+
+  gboolean mute;
+  gchar *text;
+  gchar *font_desc;
+  GESTextVAlign halign;
+  GESTextHAlign valign;
+
+  GESTimelineTitleSourcePrivate *priv;
+
+  /* Padding for API extension */
+  gpointer _ges_reserved[GES_PADDING];
+};
+</STRUCT>
+<STRUCT>
+<NAME>GESTimelineTitleSourceClass</NAME>
+struct _GESTimelineTitleSourceClass {
+  /*< private >*/
+  GESTimelineSourceClass parent_class;
+
+  /* Padding for API extension */
+  gpointer _ges_reserved[GES_PADDING];
+};
+</STRUCT>
+<FUNCTION>
+<NAME>ges_timeline_title_source_get_type</NAME>
+<RETURNS>GType </RETURNS>
+void 
+</FUNCTION>
+<FUNCTION>
+<NAME>ges_timeline_title_source_new</NAME>
+<RETURNS>GESTimelineTitleSource*</RETURNS>
+void 
+</FUNCTION>
+<MACRO>
+<NAME>GES_TYPE_KEYFILE_FORMATTER</NAME>
+#define GES_TYPE_KEYFILE_FORMATTER ges_keyfile_formatter_get_type()
+</MACRO>
+<MACRO>
+<NAME>GES_KEYFILE_FORMATTER</NAME>
+#define GES_KEYFILE_FORMATTER(obj) \
+  (G_TYPE_CHECK_INSTANCE_CAST ((obj), GES_TYPE_KEYFILE_FORMATTER, GESKeyfileFormatter))
+</MACRO>
+<MACRO>
+<NAME>GES_KEYFILE_FORMATTER_CLASS</NAME>
+#define GES_KEYFILE_FORMATTER_CLASS(klass) \
+  (G_TYPE_CHECK_CLASS_CAST ((klass), GES_TYPE_KEYFILE_FORMATTER, GESKeyfileFormatterClass))
+</MACRO>
+<MACRO>
+<NAME>GES_IS_KEYFILE_FORMATTER</NAME>
+#define GES_IS_KEYFILE_FORMATTER(obj) \
+  (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GES_TYPE_KEYFILE_FORMATTER))
+</MACRO>
+<MACRO>
+<NAME>GES_IS_KEYFILE_FORMATTER_CLASS</NAME>
+#define GES_IS_KEYFILE_FORMATTER_CLASS(klass) \
+  (G_TYPE_CHECK_CLASS_TYPE ((klass), GES_TYPE_KEYFILE_FORMATTER))
+</MACRO>
+<MACRO>
+<NAME>GES_KEYFILE_FORMATTER_GET_CLASS</NAME>
+#define GES_KEYFILE_FORMATTER_GET_CLASS(obj) \
+  (G_TYPE_INSTANCE_GET_CLASS ((obj), GES_TYPE_KEYFILE_FORMATTER, GESKeyfileFormatterClass))
+</MACRO>
+<STRUCT>
+<NAME>GESKeyfileFormatter</NAME>
+struct _GESKeyfileFormatter {
+  /*< private >*/
+  GESFormatter parent;
+
+  /* Padding for API extension */
+  gpointer _ges_reserved[GES_PADDING];
+};
+</STRUCT>
+<STRUCT>
+<NAME>GESKeyfileFormatterClass</NAME>
+struct _GESKeyfileFormatterClass {
+  /*< private >*/
+  GESFormatterClass parent_class;
+
+  /* Padding for API extension */
+  gpointer _ges_reserved[GES_PADDING];
+};
+</STRUCT>
+<FUNCTION>
+<NAME>ges_keyfile_formatter_get_type</NAME>
+<RETURNS>GType </RETURNS>
+void 
+</FUNCTION>
+<FUNCTION>
+<NAME>ges_keyfile_formatter_new</NAME>
+<RETURNS>GESKeyfileFormatter *</RETURNS>
+void 
+</FUNCTION>
+<MACRO>
+<NAME>GES_TYPE_TRACK_FILESOURCE</NAME>
+#define GES_TYPE_TRACK_FILESOURCE ges_track_filesource_get_type()
+</MACRO>
+<MACRO>
+<NAME>GES_TRACK_FILESOURCE</NAME>
+#define GES_TRACK_FILESOURCE(obj) \
+  (G_TYPE_CHECK_INSTANCE_CAST ((obj), GES_TYPE_TRACK_FILESOURCE, GESTrackFileSource))
+</MACRO>
+<MACRO>
+<NAME>GES_TRACK_FILESOURCE_CLASS</NAME>
+#define GES_TRACK_FILESOURCE_CLASS(klass) \
+  (G_TYPE_CHECK_CLASS_CAST ((klass), GES_TYPE_TRACK_FILESOURCE, GESTrackFileSourceClass))
+</MACRO>
+<MACRO>
+<NAME>GES_IS_TRACK_FILESOURCE</NAME>
+#define GES_IS_TRACK_FILESOURCE(obj) \
+  (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GES_TYPE_TRACK_FILESOURCE))
+</MACRO>
+<MACRO>
+<NAME>GES_IS_TRACK_FILESOURCE_CLASS</NAME>
+#define GES_IS_TRACK_FILESOURCE_CLASS(klass) \
+  (G_TYPE_CHECK_CLASS_TYPE ((klass), GES_TYPE_TRACK_FILESOURCE))
+</MACRO>
+<MACRO>
+<NAME>GES_TRACK_FILESOURCE_GET_CLASS</NAME>
+#define GES_TRACK_FILESOURCE_GET_CLASS(obj) \
+  (G_TYPE_INSTANCE_GET_CLASS ((obj), GES_TYPE_TRACK_FILESOURCE, GESTrackFileSourceClass))
+</MACRO>
+<STRUCT>
+<NAME>GESTrackFileSourcePrivate</NAME>
+</STRUCT>
+<STRUCT>
+<NAME>GESTrackFileSource</NAME>
+struct _GESTrackFileSource {
+  /*< private >*/
+  GESTrackSource parent;
+
+  gchar *uri;
+
+  GESTrackFileSourcePrivate *priv;
+
+  /* Padding for API extension */
+  gpointer _ges_reserved[GES_PADDING];
+};
+</STRUCT>
+<STRUCT>
+<NAME>GESTrackFileSourceClass</NAME>
+struct _GESTrackFileSourceClass {
+  /*< private >*/
+  GESTrackSourceClass parent_class;
+
+  /* Padding for API extension */
+  gpointer _ges_reserved[GES_PADDING];
+};
+</STRUCT>
+<FUNCTION>
+<NAME>ges_track_filesource_get_type</NAME>
+<RETURNS>GType </RETURNS>
+void 
+</FUNCTION>
+<FUNCTION>
+<NAME>ges_track_filesource_new</NAME>
+<RETURNS>GESTrackFileSource*</RETURNS>
+gchar *uri 
+</FUNCTION>
+<MACRO>
+<NAME>GES_TYPE_TRACK_TEXT_OVERLAY</NAME>
+#define GES_TYPE_TRACK_TEXT_OVERLAY ges_track_text_overlay_get_type()
+</MACRO>
+<MACRO>
+<NAME>GES_TRACK_TEXT_OVERLAY</NAME>
+#define GES_TRACK_TEXT_OVERLAY(obj) \
+  (G_TYPE_CHECK_INSTANCE_CAST ((obj), GES_TYPE_TRACK_TEXT_OVERLAY, GESTrackTextOverlay))
+</MACRO>
+<MACRO>
+<NAME>GES_TRACK_TEXT_OVERLAY_CLASS</NAME>
+#define GES_TRACK_TEXT_OVERLAY_CLASS(klass) \
+  (G_TYPE_CHECK_CLASS_CAST ((klass), GES_TYPE_TRACK_TEXT_OVERLAY, GESTrackTextOverlayClass))
+</MACRO>
+<MACRO>
+<NAME>GES_IS_TRACK_TEXT_OVERLAY</NAME>
+#define GES_IS_TRACK_TEXT_OVERLAY(obj) \
+  (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GES_TYPE_TRACK_TEXT_OVERLAY))
+</MACRO>
+<MACRO>
+<NAME>GES_IS_TRACK_TEXT_OVERLAY_CLASS</NAME>
+#define GES_IS_TRACK_TEXT_OVERLAY_CLASS(klass) \
+  (G_TYPE_CHECK_CLASS_TYPE ((klass), GES_TYPE_TRACK_TEXT_OVERLAY))
+</MACRO>
+<MACRO>
+<NAME>GES_TRACK_TEXT_OVERLAY_GET_CLASS</NAME>
+#define GES_TRACK_TEXT_OVERLAY_GET_CLASS(obj) \
+  (G_TYPE_INSTANCE_GET_CLASS ((obj), GES_TYPE_TRACK_TEXT_OVERLAY, GESTrackTextOverlayClass))
+</MACRO>
+<STRUCT>
+<NAME>GESTrackTextOverlayPrivate</NAME>
+</STRUCT>
+<STRUCT>
+<NAME>GESTrackTextOverlay</NAME>
+struct _GESTrackTextOverlay {
+  /*< private >*/
+  GESTrackOperation parent;
+
+  gchar         *text;
+  gchar         *font_desc;
+  GESTextHAlign halign;
+  GESTextVAlign valign;
+  GstElement    *text_el;
+
+  GESTrackTextOverlayPrivate *priv;
+
+  /* Padding for API extension */
+  gpointer _ges_reserved[GES_PADDING];
+};
+</STRUCT>
+<STRUCT>
+<NAME>GESTrackTextOverlayClass</NAME>
+struct _GESTrackTextOverlayClass {
+  GESTrackOperationClass parent_class;
+
+  /*< private >*/
+
+  /* Padding for API extension */
+  gpointer _ges_reserved[GES_PADDING];
+};
+</STRUCT>
+<FUNCTION>
+<NAME>ges_track_text_overlay_get_type</NAME>
+<RETURNS>GType </RETURNS>
+void 
+</FUNCTION>
+<FUNCTION>
+<NAME>ges_track_text_overlay_set_text</NAME>
+<RETURNS>void </RETURNS>
+GESTrackTextOverlay *self, const gchar *text 
+</FUNCTION>
+<FUNCTION>
+<NAME>ges_track_text_overlay_set_font_desc</NAME>
+<RETURNS>void </RETURNS>
+GESTrackTextOverlay *self, const gchar *font_desc 
+</FUNCTION>
+<FUNCTION>
+<NAME>ges_track_text_overlay_set_halignment</NAME>
+<RETURNS>void </RETURNS>
+GESTrackTextOverlay *self, GESTextHAlign halgn 
+</FUNCTION>
+<FUNCTION>
+<NAME>ges_track_text_overlay_set_valignment</NAME>
+<RETURNS>void </RETURNS>
+GESTrackTextOverlay *self, GESTextVAlign valign 
+</FUNCTION>
+<FUNCTION>
+<NAME>ges_track_text_overlay_new</NAME>
+<RETURNS>GESTrackTextOverlay*</RETURNS>
+void 
+</FUNCTION>
index 5560348e2c14f7bb03eb3f3b0c1b01d6a7de1aa3..e0181e958eb7e58e439e4f5aa45d261c67c46711 100644 (file)
@@ -68,6 +68,10 @@ GES_TYPE_TRACK
 GESTrackObject
 GESTrackObjectClass
 ges_track_object_set_active
+ges_track_object_get_track
+ges_track_object_get_timeline_object
+ges_track_object_get_gnlobject
+ges_track_object_get_element
 <SUBSECTION Standard>
 GES_TRACK_OBJECT_DURATION
 GES_TRACK_OBJECT_INPOINT
index 9c6361040594c17a3fcd0c052a9546cc33f53271..88e3bb7a1615ce2482f9de745a33a7a09d8a0208 100644 (file)
@@ -211,7 +211,7 @@ ges_timeline_filesource_set_mute (GESTimelineFileSource * self, gboolean mute)
   for (tmp = trackobjects; tmp; tmp = tmp->next) {
     GESTrackObject *trackobject = (GESTrackObject *) tmp->data;
 
-    if (trackobject->track->type == GES_TRACK_TYPE_AUDIO)
+    if (ges_track_object_get_track (trackobject)->type == GES_TRACK_TYPE_AUDIO)
       ges_track_object_set_active (trackobject, !mute);
 
     g_object_unref (GES_TRACK_OBJECT (tmp->data));
index d4167c22eb9db3830615623e717db6cd11310cf0..f35b01436c2bc2c337a721591fa669dae4b6c514 100644 (file)
@@ -540,9 +540,12 @@ ges_timeline_object_find_track_object (GESTimelineObject * object,
 
   if (G_LIKELY (object->priv->trackobjects)) {
     GList *tmp;
+    GESTrackObject *otmp;
 
-    for (tmp = object->priv->trackobjects; tmp; tmp = g_list_next (tmp))
-      if (GES_TRACK_OBJECT (tmp->data)->track == track) {
+    for (tmp = object->priv->trackobjects; tmp; tmp = g_list_next (tmp)) {
+      otmp = (GESTrackObject *) tmp->data;
+
+      if (ges_track_object_get_track (otmp) == track) {
         if ((type != G_TYPE_NONE) && !G_TYPE_CHECK_INSTANCE_TYPE (tmp->data,
                 type))
           continue;
@@ -551,6 +554,7 @@ ges_timeline_object_find_track_object (GESTimelineObject * object,
         g_object_ref (ret);
         break;
       }
+    }
   }
 
   return ret;
index 92e342694889d3eaca2517375b0cd4df50ae1bda..af2967f696246c5101b45a65870e24de7d38c244 100644 (file)
@@ -202,7 +202,7 @@ ges_timeline_test_source_set_mute (GESTimelineTestSource * self, gboolean mute)
   for (tmp = trackobjects; tmp; tmp = tmp->next) {
     GESTrackObject *trackobject = (GESTrackObject *) tmp->data;
 
-    if (trackobject->track->type == GES_TRACK_TYPE_AUDIO)
+    if (ges_track_object_get_track (trackobject)->type == GES_TRACK_TYPE_AUDIO)
       ges_track_object_set_active (trackobject, !mute);
 
     g_object_unref (GES_TRACK_OBJECT (tmp->data));
index 7e89ac8c2d6dbd615e2ce6f107ce38b928412e03..c7efd2bfdb7301bc4b673abc7c9b599e63152f12 100644 (file)
@@ -230,7 +230,7 @@ ges_timeline_text_overlay_set_text (GESTimelineTextOverlay * self,
   for (tmp = trackobjects; tmp; tmp = tmp->next) {
     GESTrackObject *trackobject = (GESTrackObject *) tmp->data;
 
-    if (trackobject->track->type == GES_TRACK_TYPE_VIDEO)
+    if (ges_track_object_get_track (trackobject)->type == GES_TRACK_TYPE_VIDEO)
       ges_track_text_overlay_set_text (GES_TRACK_TEXT_OVERLAY
           (trackobject), self->text);
 
@@ -257,7 +257,7 @@ ges_timeline_text_overlay_set_font_desc (GESTimelineTextOverlay * self,
   for (tmp = trackobjects; tmp; tmp = tmp->next) {
     GESTrackObject *trackobject = (GESTrackObject *) tmp->data;
 
-    if (trackobject->track->type == GES_TRACK_TYPE_VIDEO)
+    if (ges_track_object_get_track (trackobject)->type == GES_TRACK_TYPE_VIDEO)
       ges_track_text_overlay_set_font_desc (GES_TRACK_TEXT_OVERLAY
           (trackobject), self->font_desc);
 
@@ -282,7 +282,7 @@ ges_timeline_text_overlay_set_halign (GESTimelineTextOverlay * self,
   for (tmp = trackobjects; tmp; tmp = tmp->next) {
     GESTrackObject *trackobject = (GESTrackObject *) tmp->data;
 
-    if (trackobject->track->type == GES_TRACK_TYPE_VIDEO)
+    if (ges_track_object_get_track (trackobject)->type == GES_TRACK_TYPE_VIDEO)
       ges_track_text_overlay_set_halignment (GES_TRACK_TEXT_OVERLAY
           (trackobject), self->halign);
 
@@ -307,7 +307,7 @@ ges_timeline_text_overlay_set_valign (GESTimelineTextOverlay * self,
   for (tmp = trackobjects; tmp; tmp = tmp->next) {
     GESTrackObject *trackobject = (GESTrackObject *) tmp->data;
 
-    if (trackobject->track->type == GES_TRACK_TYPE_VIDEO)
+    if (ges_track_object_get_track (trackobject)->type == GES_TRACK_TYPE_VIDEO)
       ges_track_text_overlay_set_valignment (GES_TRACK_TEXT_OVERLAY
           (trackobject), self->valign);
 
index 7642ec58083e095f86cbfda68cc3796af5f1f744..de44c24b1cb3655e2a43014ef7724686732f18e7 100644 (file)
@@ -356,7 +356,7 @@ ges_timeline_title_source_set_mute (GESTimelineTitleSource * self,
   for (tmp = trackobjects; tmp; tmp = tmp->next) {
     GESTrackObject *trackobject = (GESTrackObject *) tmp->data;
 
-    if (trackobject->track->type == GES_TRACK_TYPE_AUDIO)
+    if (ges_track_object_get_track (trackobject)->type == GES_TRACK_TYPE_AUDIO)
       ges_track_object_set_active (trackobject, !mute);
 
     g_object_unref (GES_TRACK_OBJECT (tmp->data));
index 66383a63e412b71998a040b8e2e4aade0fe70e40..5bc037ed257c3dd59441d23afd62533bc227a425 100644 (file)
@@ -564,10 +564,10 @@ layer_object_removed_cb (GESTimelineLayer * layer, GESTimelineObject * object,
 
     GST_DEBUG ("Trying to remove TrackObject %p", trobj);
     if (G_LIKELY (g_list_find_custom (timeline->tracks,
-                (gconstpointer) trobj->track,
+                ges_track_object_get_track (trobj),
                 (GCompareFunc) custom_find_track))) {
       GST_DEBUG ("Belongs to one of the tracks we control");
-      ges_track_remove_object (trobj->track, trobj);
+      ges_track_remove_object (ges_track_object_get_track (trobj), trobj);
 
       ges_timeline_object_release_track_object (object, trobj);
     }
index 9383db4deca25c770f9f445da220ba8bb58096ab..9f06e227cf4f7ec8d65ac4bfea40338928870fa8 100644 (file)
@@ -116,10 +116,9 @@ void
 ges_track_audio_test_source_set_freq (GESTrackAudioTestSource * self,
     gdouble freq)
 {
-  GstElement *element;
+  GstElement *element = ges_track_object_get_element (GES_TRACK_OBJECT (self));
 
   self->freq = freq;
-  element = ((GESTrackObject *) self)->element;
   if (element)
     g_object_set (element, "freq", (gdouble) freq, NULL);
 }
@@ -128,10 +127,9 @@ void
 ges_track_audio_test_source_set_volume (GESTrackAudioTestSource * self,
     gdouble volume)
 {
-  GstElement *element;
+  GstElement *element = ges_track_object_get_element (GES_TRACK_OBJECT (self));
 
   self->volume = volume;
-  element = ((GESTrackObject *) self)->element;
   if (element)
     g_object_set (element, "volume", (gdouble) volume, NULL);
 }
index c3696fec0a08ec931a1e4e677ac92fd056d653eb..4a4ffdbd51878d2682a17f66bff94d11e5a0bbe4 100644 (file)
@@ -249,7 +249,7 @@ ges_track_audio_transition_duration_changed (GESTrackObject * object,
     guint64 duration)
 {
   GESTrackAudioTransition *self;
-  GstElement *gnlobj = object->gnlobject;
+  GstElement *gnlobj = ges_track_object_get_gnlobject (object);
 
   GValue zero = { 0, };
   GValue one = { 0, };
index 602e9431f7a30018ff3a2323852179c3007f3697..db810b508b532fca7e87402a03856dff0da19c87 100644 (file)
@@ -85,14 +85,15 @@ ges_track_filesource_dispose (GObject * object)
   G_OBJECT_CLASS (ges_track_filesource_parent_class)->dispose (object);
 }
 
-static gboolean
+static GstElement *
 ges_track_filesource_create_gnl_object (GESTrackObject * object)
 {
-  object->gnlobject = gst_element_factory_make ("gnlurisource", NULL);
-  g_object_set (object->gnlobject, "uri", ((GESTrackFileSource *) object)->uri,
-      NULL);
+  GstElement *gnlobject;
 
-  return TRUE;
+  gnlobject = gst_element_factory_make ("gnlurisource", NULL);
+  g_object_set (gnlobject, "uri", ((GESTrackFileSource *) object)->uri, NULL);
+
+  return gnlobject;
 }
 
 static void
index 820061694dbc6a6af7535ce864e10adb0e611fa8..0cf9181a30fbde8de4c66118effea5f57f57f69a 100644 (file)
@@ -55,6 +55,22 @@ struct _GESTrackObjectPrivate
   /* cache the base priority and offset */
   guint32 base_priority;
   guint32 priority_offset;
+
+  /* These fields are only used before the gnlobject is available */
+  guint64 pending_start;
+  guint64 pending_inpoint;
+  guint64 pending_duration;
+  guint32 pending_gnl_priority;
+  gboolean pending_active;
+
+  GstElement *gnlobject;        /* The GnlObject */
+  GstElement *element;          /* The element contained in the gnlobject (can be NULL) */
+
+  GESTimelineObject *timelineobj;
+  GESTrack *track;
+
+  gboolean valid;
+
 };
 
 enum
@@ -68,8 +84,8 @@ enum
   PROP_ACTIVE
 };
 
-static gboolean
-ges_track_object_create_gnl_object_func (GESTrackObject * object);
+static GstElement *ges_track_object_create_gnl_object_func (GESTrackObject *
+    object);
 
 void gnlobject_start_cb (GstElement * gnlobject, GParamSpec * arg
     G_GNUC_UNUSED, GESTrackObject * obj);
@@ -225,7 +241,7 @@ ges_track_object_class_init (GESTrackObjectClass * klass)
   /**
    * GESTrackObject:priority-offset
    *
-   * The priority of the object relative to its parent track object.
+   * The priority of the object relative to its parent #GESTimelineObject.
    */
   g_object_class_install_property (object_class, PROP_PRIORITY_OFFSET,
       g_param_spec_uint ("priority-offset", "Priority Offset",
@@ -252,11 +268,11 @@ ges_track_object_init (GESTrackObject * self)
       GES_TYPE_TRACK_OBJECT, GESTrackObjectPrivate);
 
   /* Sane default values */
-  self->pending_start = 0;
-  self->pending_inpoint = 0;
-  self->pending_duration = GST_SECOND;
-  self->pending_gnl_priority = 1;
-  self->pending_active = TRUE;
+  self->priv->pending_start = 0;
+  self->priv->pending_inpoint = 0;
+  self->priv->pending_duration = GST_SECOND;
+  self->priv->pending_gnl_priority = 1;
+  self->priv->pending_active = TRUE;
 }
 
 gboolean
@@ -265,13 +281,13 @@ ges_track_object_set_start_internal (GESTrackObject * object, guint64 start)
   GST_DEBUG ("object:%p, start:%" GST_TIME_FORMAT,
       object, GST_TIME_ARGS (start));
 
-  if (object->gnlobject != NULL) {
+  if (object->priv->gnlobject != NULL) {
     if (G_UNLIKELY (start == object->start))
       return FALSE;
 
-    g_object_set (object->gnlobject, "start", start, NULL);
+    g_object_set (object->priv->gnlobject, "start", start, NULL);
   } else
-    object->pending_start = start;
+    object->priv->pending_start = start;
   return TRUE;
 };
 
@@ -282,13 +298,13 @@ ges_track_object_set_inpoint_internal (GESTrackObject * object, guint64 inpoint)
   GST_DEBUG ("object:%p, inpoint:%" GST_TIME_FORMAT,
       object, GST_TIME_ARGS (inpoint));
 
-  if (object->gnlobject != NULL) {
+  if (object->priv->gnlobject != NULL) {
     if (G_UNLIKELY (inpoint == object->inpoint))
       return FALSE;
 
-    g_object_set (object->gnlobject, "media-start", inpoint, NULL);
+    g_object_set (object->priv->gnlobject, "media-start", inpoint, NULL);
   } else
-    object->pending_inpoint = inpoint;
+    object->priv->pending_inpoint = inpoint;
 
   return TRUE;
 }
@@ -300,14 +316,14 @@ ges_track_object_set_duration_internal (GESTrackObject * object,
   GST_DEBUG ("object:%p, duration:%" GST_TIME_FORMAT,
       object, GST_TIME_ARGS (duration));
 
-  if (object->gnlobject != NULL) {
+  if (object->priv->gnlobject != NULL) {
     if (G_UNLIKELY (duration == object->duration))
       return FALSE;
 
-    g_object_set (object->gnlobject, "duration", duration, "media-duration",
-        duration, NULL);
+    g_object_set (object->priv->gnlobject, "duration", duration,
+        "media-duration", duration, NULL);
   } else
-    object->pending_duration = duration;
+    object->priv->pending_duration = duration;
   return TRUE;
 }
 
@@ -360,28 +376,38 @@ ges_track_object_update_priority (GESTrackObject * object)
   GST_DEBUG ("object:%p, base:%d, offset:%d: gnl:%d", object, priority, offset,
       gnl);
 
-  if (object->gnlobject != NULL) {
+  if (object->priv->gnlobject != NULL) {
     if (G_UNLIKELY (gnl == object->gnl_priority))
       return FALSE;
 
-    g_object_set (object->gnlobject, "priority", gnl, NULL);
+    g_object_set (object->priv->gnlobject, "priority", gnl, NULL);
   } else
-    object->pending_gnl_priority = gnl;
+    object->priv->pending_gnl_priority = gnl;
   return TRUE;
 }
 
+/**
+ * ges_track_object_set_active:
+ * @object: a #GESTrackObject
+ * @active: visibility
+ *
+ * Sets the usage of the @object. If @active is %TRUE, the object will be used for
+ * playback and rendering, else it will be ignored.
+ *
+ * Returns: %TRUE if the property was toggled, else %FALSE
+ */
 gboolean
 ges_track_object_set_active (GESTrackObject * object, gboolean active)
 {
   GST_DEBUG ("object:%p, active:%d", object, active);
 
-  if (object->gnlobject != NULL) {
+  if (object->priv->gnlobject != NULL) {
     if (G_UNLIKELY (active == object->active))
       return FALSE;
 
-    g_object_set (object->gnlobject, "active", active, NULL);
+    g_object_set (object->priv->gnlobject, "active", active, NULL);
   } else
-    object->pending_active = active;
+    object->priv->pending_active = active;
   return TRUE;
 }
 
@@ -498,7 +524,7 @@ gnlobject_active_cb (GstElement * gnlobject, GParamSpec * arg G_GNUC_UNUSED,
 
 
 /* default 'create_gnl_object' virtual method implementation */
-static gboolean
+static GstElement *
 ges_track_object_create_gnl_object_func (GESTrackObject * self)
 {
   GESTrackObjectClass *klass = NULL;
@@ -507,7 +533,7 @@ ges_track_object_create_gnl_object_func (GESTrackObject * self)
 
   klass = GES_TRACK_OBJECT_GET_CLASS (self);
 
-  if (G_UNLIKELY (self->gnlobject != NULL))
+  if (G_UNLIKELY (self->priv->gnlobject != NULL))
     goto already_have_gnlobject;
 
   if (G_UNLIKELY (klass->gnlobject_factorytype == NULL))
@@ -532,13 +558,11 @@ ges_track_object_create_gnl_object_func (GESTrackObject * self)
       goto add_failure;
 
     GST_DEBUG ("Succesfully got the element to put in the gnlobject");
-    self->element = child;
+    self->priv->element = child;
   }
 
-  self->gnlobject = gnlobject;
-
   GST_DEBUG ("done");
-  return TRUE;
+  return gnlobject;
 
 
   /* ERROR CASES */
@@ -546,28 +570,28 @@ ges_track_object_create_gnl_object_func (GESTrackObject * self)
 already_have_gnlobject:
   {
     GST_ERROR ("Already controlling a GnlObject %s",
-        GST_ELEMENT_NAME (self->gnlobject));
-    return FALSE;
+        GST_ELEMENT_NAME (self->priv->gnlobject));
+    return NULL;
   }
 
 no_gnlfactory:
   {
     GST_ERROR ("No GESTrackObject::gnlobject_factorytype implementation!");
-    return FALSE;
+    return NULL;
   }
 
 no_gnlobject:
   {
     GST_ERROR ("Error creating a gnlobject of type '%s'",
         klass->gnlobject_factorytype);
-    return FALSE;
+    return NULL;
   }
 
 child_failure:
   {
     GST_ERROR ("create_element returned NULL");
     gst_object_unref (gnlobject);
-    return FALSE;
+    return NULL;
   }
 
 add_failure:
@@ -575,7 +599,7 @@ add_failure:
     GST_ERROR ("Error adding the contents to the gnlobject");
     gst_object_unref (child);
     gst_object_unref (gnlobject);
-    return FALSE;
+    return NULL;
   }
 }
 
@@ -583,10 +607,11 @@ static gboolean
 ensure_gnl_object (GESTrackObject * object)
 {
   GESTrackObjectClass *class;
-  gboolean res;
+  GstElement *gnlobject;
+  gboolean res = TRUE;
 
-  if (object->gnlobject && object->valid)
-    return TRUE;
+  if (object->priv->gnlobject && object->priv->valid)
+    return FALSE;
 
   /* 1. Create the GnlObject */
   GST_DEBUG ("Creating GnlObject");
@@ -601,74 +626,108 @@ ensure_gnl_object (GESTrackObject * object)
   GST_DEBUG ("Calling virtual method");
 
   /* call the create_gnl_object virtual method */
-  res = class->create_gnl_object (object);
+  gnlobject = class->create_gnl_object (object);
 
-  if (G_UNLIKELY (res && (object->gnlobject == NULL))) {
+  if (G_UNLIKELY (gnlobject == NULL)) {
     GST_ERROR
         ("'create_gnl_object' implementation returned TRUE but no GnlObject is available");
     return FALSE;
   }
 
+  object->priv->gnlobject = gnlobject;
+
   /* Connect to property notifications */
-  g_signal_connect (G_OBJECT (object->gnlobject), "notify::start",
+  g_signal_connect (G_OBJECT (object->priv->gnlobject), "notify::start",
       G_CALLBACK (gnlobject_start_cb), object);
-  g_signal_connect (G_OBJECT (object->gnlobject), "notify::media-start",
+  g_signal_connect (G_OBJECT (object->priv->gnlobject), "notify::media-start",
       G_CALLBACK (gnlobject_media_start_cb), object);
-  g_signal_connect (G_OBJECT (object->gnlobject), "notify::duration",
+  g_signal_connect (G_OBJECT (object->priv->gnlobject), "notify::duration",
       G_CALLBACK (gnlobject_duration_cb), object);
-  g_signal_connect (G_OBJECT (object->gnlobject), "notify::priority",
+  g_signal_connect (G_OBJECT (object->priv->gnlobject), "notify::priority",
       G_CALLBACK (gnlobject_priority_cb), object);
-  g_signal_connect (G_OBJECT (object->gnlobject), "notify::active",
+  g_signal_connect (G_OBJECT (object->priv->gnlobject), "notify::active",
       G_CALLBACK (gnlobject_active_cb), object);
 
   /* 2. Fill in the GnlObject */
-  if (res) {
+  if (gnlobject) {
     GST_DEBUG ("Got a valid GnlObject, now filling it in");
 
     res =
-        ges_timeline_object_fill_track_object (object->timelineobj, object,
-        object->gnlobject);
+        ges_timeline_object_fill_track_object (object->priv->timelineobj,
+        object, object->priv->gnlobject);
     if (res) {
       /* Set some properties on the GnlObject */
-      g_object_set (object->gnlobject,
-          "caps", ges_track_get_caps (object->track),
-          "duration", object->pending_duration,
-          "media-duration", object->pending_duration,
-          "start", object->pending_start,
-          "media-start", object->pending_inpoint,
-          "priority", object->pending_gnl_priority,
-          "active", object->pending_active, NULL);
+      g_object_set (object->priv->gnlobject,
+          "caps", ges_track_get_caps (object->priv->track),
+          "duration", object->priv->pending_duration,
+          "media-duration", object->priv->pending_duration,
+          "start", object->priv->pending_start,
+          "media-start", object->priv->pending_inpoint,
+          "priority", object->priv->pending_gnl_priority,
+          "active", object->priv->pending_active, NULL);
 
     }
   }
 
-  object->valid = res;
+  object->priv->valid = res;
 
   GST_DEBUG ("Returning res:%d", res);
 
   return res;
 }
 
+/* INTERNAL USAGE */
 gboolean
 ges_track_object_set_track (GESTrackObject * object, GESTrack * track)
 {
   GST_DEBUG ("object:%p, track:%p", object, track);
 
-  object->track = track;
+  object->priv->track = track;
 
-  if (object->track)
+  if (object->priv->track)
     return ensure_gnl_object (object);
 
   return TRUE;
 }
 
+/**
+ * ges_track_object_get_track:
+ * @object: a #GESTrackObject
+ *
+ * Returns: (transfer none): The #GESTrack to which this object belongs. Can be %NULL if it
+ * is not in any track
+ */
+GESTrack *
+ges_track_object_get_track (GESTrackObject * object)
+{
+  g_return_val_if_fail (GES_IS_TRACK_OBJECT (object), NULL);
+
+  return object->priv->track;
+}
+
+
 void
 ges_track_object_set_timeline_object (GESTrackObject * object,
     GESTimelineObject * tlobj)
 {
   GST_DEBUG ("object:%p, timeline-object:%p", object, tlobj);
 
-  object->timelineobj = tlobj;
+  object->priv->timelineobj = tlobj;
+}
+
+/**
+ * ges_track_object_get_timeline_object:
+ * @object: a #GESTrackObject
+ *
+ * Returns: (transfer none): the #GESTimelineObject which is controlling
+ * this track object
+ */
+GESTimelineObject *
+ges_track_object_get_timeline_object (GESTrackObject * object)
+{
+  g_return_val_if_fail (GES_IS_TRACK_OBJECT (object), NULL);
+
+  return object->priv->timelineobj;
 }
 
 guint32
@@ -676,3 +735,28 @@ ges_track_object_get_priority_offset (GESTrackObject * object)
 {
   return object->priv->priority_offset;
 }
+
+/**
+ * ges_track_object_get_gnlobject:
+ * @object: a #GESTrackObject
+ *
+ * Returns: (transfer none): the GNonLin object this object is controlling.
+ */
+GstElement *
+ges_track_object_get_gnlobject (GESTrackObject * object)
+{
+  return object->priv->gnlobject;
+}
+
+/**
+ * ges_track_object_get_element:
+ * @object: a #GESTrackObject
+ *
+ * Returns: (transfer none): the #GstElement this track object is controlling
+ * within GNonLin.
+ */
+GstElement *
+ges_track_object_get_element (GESTrackObject * object)
+{
+  return object->priv->element;
+}
index a996b8d337d96113525027bbab89c62d072223a2..c996c48708205f90b77b6d7eb7ac477cdb2acc9e 100644 (file)
@@ -74,9 +74,6 @@ typedef struct _GESTrackObjectPrivate GESTrackObjectPrivate;
 
 /**
  * GESTrackObject:
- * @timelineobj: The #GESTimelineObject to which this object belongs.
- * @track: The #GESTrack in which this object is.
- * @valid: #TRUE if the content of the @gnlobject is valid.
  * @start: Position (in nanoseconds) of the object the track.
  * @inpoint: in-point (in nanoseconds) of the object in the track.
  * @duration: Duration of the object.
@@ -89,11 +86,6 @@ struct _GESTrackObject {
   GObject parent;
 
   /*< public >*/
-  GESTimelineObject *timelineobj;
-  GESTrack *track;
-
-  gboolean valid;
-
   /* Cached values of the gnlobject properties */
   guint64 start;
   guint64 inpoint;
@@ -102,16 +94,6 @@ struct _GESTrackObject {
   gboolean active;
 
   /*< private >*/
-  /* These fields are only used before the gnlobject is available */
-  guint64 pending_start;
-  guint64 pending_inpoint;
-  guint64 pending_duration;
-  guint32 pending_gnl_priority;
-  gboolean pending_active;
-
-  GstElement *gnlobject;  /* The GnlObject */
-  GstElement *element;   /* The element contained in the gnlobject (can be NULL) */
-
   GESTrackObjectPrivate *priv;
 
   /* Padding for API extension */
@@ -122,7 +104,6 @@ struct _GESTrackObject {
  * GESTrackObjectClass:
  * @gnlobject_factorytype: name of the GNonLin GStElementFactory type to use.
  * @create_gnl_object: method to create the GNonLin container object.
- * Create and fill the gnlobject and set it to GESTrackObject->gnlobject.
  * The default implementation will create an object of type @gnlobject_factorytype
  * and call @create_element.
  * @create_element: method to return the GstElement to put in the gnlobject.
@@ -142,7 +123,7 @@ struct _GESTrackObjectClass {
   /*< public >*/
   /* virtual methods for subclasses */
   const gchar *gnlobject_factorytype;
-  gboolean (*create_gnl_object) (GESTrackObject * object);
+  GstElement* (*create_gnl_object) (GESTrackObject * object);
   GstElement* (*create_element) (GESTrackObject * object);
 
   void (*start_changed) (GESTrackObject *object, guint64 start);
@@ -161,8 +142,14 @@ struct _GESTrackObjectClass {
 
 GType ges_track_object_get_type (void);
 
-gboolean ges_track_object_set_track (GESTrackObject * object, GESTrack * track);
+gboolean        ges_track_object_set_track (GESTrackObject * object, GESTrack * track);
+GESTrack* ges_track_object_get_track (GESTrackObject * object);
+
 void ges_track_object_set_timeline_object (GESTrackObject * object, GESTimelineObject * tlobject);
+GESTimelineObject * ges_track_object_get_timeline_object (GESTrackObject* object);
+
+GstElement * ges_track_object_get_gnlobject (GESTrackObject * object);
+GstElement * ges_track_object_get_element (GESTrackObject * object);
 
 /* Private methods for GESTimelineObject's usage only */
 gboolean ges_track_object_set_start_internal (GESTrackObject * object, guint64 start);
index ffc11a10c66479e58e47541bfcc39daacc7f1c3c..94618e85d15c89fa8e24c92bb1d97256fa7cb1a2 100644 (file)
@@ -77,9 +77,8 @@ void
 ges_track_video_test_source_set_pattern (GESTrackVideoTestSource
     * self, GESVideoTestPattern pattern)
 {
-  GstElement *element;
+  GstElement *element = ges_track_object_get_element (GES_TRACK_OBJECT (self));
 
-  element = GES_TRACK_OBJECT (self)->element;
   self->pattern = pattern;
 
   if (element)
index e775949793ae4a1e14fa031b6d545acaab35477d..9a214bfbdc4e51c5fa1e02e7a971d03c82763b75 100644 (file)
@@ -296,7 +296,7 @@ ges_track_video_transition_duration_changed (GESTrackObject * object,
 {
   GValue start_value = { 0, };
   GValue end_value = { 0, };
-  GstElement *gnlobj = object->gnlobject;
+  GstElement *gnlobj = ges_track_object_get_gnlobject (object);
   GESTrackVideoTransition *self = GES_TRACK_VIDEO_TRANSITION (object);
 
   GST_LOG ("updating controller");
index ff353d88a05f7326a6947454f12eeffef17fadb1..474a465d84f41f5ae8d3dda14ba40cf38aa87e85 100644 (file)
@@ -104,7 +104,8 @@ ges_track_dispose (GObject * object)
   while (priv->trackobjects) {
     GESTrackObject *trobj = GES_TRACK_OBJECT (priv->trackobjects->data);
     ges_track_remove_object (track, trobj);
-    ges_timeline_object_release_track_object (trobj->timelineobj, trobj);
+    ges_timeline_object_release_track_object ((GESTimelineObject *)
+        ges_track_object_get_timeline_object (trobj), trobj);
   }
 
   if (priv->composition) {
@@ -306,13 +307,16 @@ ges_track_add_object (GESTrack * track, GESTrackObject * object)
 
   GST_DEBUG ("track:%p, object:%p", track, object);
 
-  if (G_UNLIKELY (object->track != NULL)) {
+  if (G_UNLIKELY (ges_track_object_get_track (object) != NULL)) {
     GST_WARNING ("Object already belongs to another track");
     return FALSE;
   }
 
-  if (G_UNLIKELY (object->gnlobject != NULL)) {
-    GST_ERROR ("TrackObject doesn't have a gnlobject !");
+  /* At this point, the track object shouldn't have any gnlobject since
+   * it hasn't been added to a track yet.
+   * FIXME : This check seems a bit obsolete */
+  if (G_UNLIKELY (ges_track_object_get_gnlobject (object) != NULL)) {
+    GST_ERROR ("TrackObject already controls a gnlobject !");
     return FALSE;
   }
 
@@ -323,9 +327,8 @@ ges_track_add_object (GESTrack * track, GESTrackObject * object)
 
   GST_DEBUG ("Adding object to ourself");
 
-  /* make sure the object has a valid gnlobject ! */
   if (G_UNLIKELY (!gst_bin_add (GST_BIN (track->priv->composition),
-              object->gnlobject))) {
+              ges_track_object_get_gnlobject (object)))) {
     GST_WARNING ("Couldn't add object to the GnlComposition");
     return FALSE;
   }
@@ -349,6 +352,7 @@ gboolean
 ges_track_remove_object (GESTrack * track, GESTrackObject * object)
 {
   GESTrackPrivate *priv;
+  GstElement *gnlobject;
 
   g_return_val_if_fail (GES_IS_TRACK (track), FALSE);
   g_return_val_if_fail (GES_IS_TRACK_OBJECT (object), FALSE);
@@ -357,14 +361,14 @@ ges_track_remove_object (GESTrack * track, GESTrackObject * object)
 
   priv = track->priv;
 
-  if (G_UNLIKELY (object->track != track)) {
+  if (G_UNLIKELY (ges_track_object_get_track (object) != track)) {
     GST_WARNING ("Object belongs to another track");
     return FALSE;
   }
 
-  if (G_LIKELY (object->gnlobject != NULL)) {
+  if ((gnlobject = ges_track_object_get_gnlobject (object))) {
     GST_DEBUG ("Removing GnlObject from composition");
-    if (!gst_bin_remove (GST_BIN (priv->composition), object->gnlobject)) {
+    if (!gst_bin_remove (GST_BIN (priv->composition), gnlobject)) {
       GST_WARNING ("Failed to remove gnlobject from composition");
       return FALSE;
     }
index 2af344d57c1ae5f901e2910fe9fca44bc3575a66..b953759820be9bc736dd71beb26e0e9a54b17899 100644 (file)
@@ -81,7 +81,8 @@ GST_START_TEST (test_test_source_properties)
   assert_equals_uint64 (GES_TRACK_OBJECT_INPOINT (trackobject), 12);
 
   /* And let's also check that it propagated correctly to GNonLin */
-  gnl_object_check (trackobject->gnlobject, 42, 51, 12, 51, 0, TRUE);
+  gnl_object_check (ges_track_object_get_gnlobject (trackobject), 42, 51, 12,
+      51, 0, TRUE);
 
   /* Change more properties, see if they propagate */
   g_object_set (object, "start", (guint64) 420, "duration", (guint64) 510,
@@ -94,13 +95,16 @@ GST_START_TEST (test_test_source_properties)
   assert_equals_uint64 (GES_TRACK_OBJECT_INPOINT (trackobject), 120);
 
   /* And let's also check that it propagated correctly to GNonLin */
-  gnl_object_check (trackobject->gnlobject, 420, 510, 120, 510, 0, TRUE);
+  gnl_object_check (ges_track_object_get_gnlobject (trackobject), 420, 510, 120,
+      510, 0, TRUE);
 
   /* Test mute support */
   g_object_set (object, "mute", TRUE, NULL);
-  gnl_object_check (trackobject->gnlobject, 420, 510, 120, 510, 0, FALSE);
+  gnl_object_check (ges_track_object_get_gnlobject (trackobject), 420, 510, 120,
+      510, 0, FALSE);
   g_object_set (object, "mute", FALSE, NULL);
-  gnl_object_check (trackobject->gnlobject, 420, 510, 120, 510, 0, TRUE);
+  gnl_object_check (ges_track_object_get_gnlobject (trackobject), 420, 510, 120,
+      510, 0, TRUE);
 
   ges_timeline_object_release_track_object (object, trackobject);
   g_object_unref (object);
index a33bf311391a4ee115d4be07e9f2870de55a20e7..5a7c0f3f0dfe1381e4c5cdaaa12106b2a2095fef 100644 (file)
@@ -118,7 +118,8 @@ GST_START_TEST (test_filesource_properties)
   assert_equals_uint64 (GES_TRACK_OBJECT_INPOINT (trackobject), 12);
 
   /* And let's also check that it propagated correctly to GNonLin */
-  gnl_object_check (trackobject->gnlobject, 42, 51, 12, 51, 0, TRUE);
+  gnl_object_check (ges_track_object_get_gnlobject (trackobject), 42, 51, 12,
+      51, 0, TRUE);
 
   /* Change more properties, see if they propagate */
   g_object_set (object, "start", (guint64) 420, "duration", (guint64) 510,
@@ -131,13 +132,16 @@ GST_START_TEST (test_filesource_properties)
   assert_equals_uint64 (GES_TRACK_OBJECT_INPOINT (trackobject), 120);
 
   /* And let's also check that it propagated correctly to GNonLin */
-  gnl_object_check (trackobject->gnlobject, 420, 510, 120, 510, 0, TRUE);
+  gnl_object_check (ges_track_object_get_gnlobject (trackobject), 420, 510, 120,
+      510, 0, TRUE);
 
   /* Test mute support */
   g_object_set (object, "mute", TRUE, NULL);
-  gnl_object_check (trackobject->gnlobject, 420, 510, 120, 510, 0, FALSE);
+  gnl_object_check (ges_track_object_get_gnlobject (trackobject), 420, 510, 120,
+      510, 0, FALSE);
   g_object_set (object, "mute", FALSE, NULL);
-  gnl_object_check (trackobject->gnlobject, 420, 510, 120, 510, 0, TRUE);
+  gnl_object_check (ges_track_object_get_gnlobject (trackobject), 420, 510, 120,
+      510, 0, TRUE);
 
   ges_timeline_object_release_track_object (object, trackobject);
 
index d025f963ab9b0db9f8f3b3ddaf49b9bffa4c7439..3fa40bf53c9beca2018e603ef40cf60b5c8d1d3a 100644 (file)
@@ -104,32 +104,38 @@ GST_START_TEST (test_layer_properties)
   assert_equals_uint64 (GES_TIMELINE_OBJECT_DURATION (object), 51);
   assert_equals_uint64 (GES_TIMELINE_OBJECT_INPOINT (object), 12);
   assert_equals_uint64 (GES_TIMELINE_OBJECT_PRIORITY (object), 0);
-  gnl_object_check (trackobject->gnlobject, 42, 51, 12, 51, 0, TRUE);
+  gnl_object_check (ges_track_object_get_gnlobject (trackobject), 42, 51, 12,
+      51, 0, TRUE);
 
   /* Change the priority of the layer */
   g_object_set (layer, "priority", 1, NULL);
   assert_equals_int (ges_timeline_layer_get_priority (layer), 1);
   assert_equals_uint64 (GES_TIMELINE_OBJECT_PRIORITY (object), 10);
-  gnl_object_check (trackobject->gnlobject, 42, 51, 12, 51, 10, TRUE);
+  gnl_object_check (ges_track_object_get_gnlobject (trackobject), 42, 51, 12,
+      51, 10, TRUE);
 
   /* Change it to an insanely high value */
   g_object_set (layer, "priority", 1000000, NULL);
   assert_equals_int (ges_timeline_layer_get_priority (layer), 1000000);
   assert_equals_uint64 (GES_TIMELINE_OBJECT_PRIORITY (object), 10000000);
-  gnl_object_check (trackobject->gnlobject, 42, 51, 12, 51, 10000000, TRUE);
+  gnl_object_check (ges_track_object_get_gnlobject (trackobject), 42, 51, 12,
+      51, 10000000, TRUE);
 
   /* and back to 0 */
   g_object_set (layer, "priority", 0, NULL);
   assert_equals_int (ges_timeline_layer_get_priority (layer), 0);
   assert_equals_uint64 (GES_TIMELINE_OBJECT_PRIORITY (object), 0);
-  gnl_object_check (trackobject->gnlobject, 42, 51, 12, 51, 0, TRUE);
+  gnl_object_check (ges_track_object_get_gnlobject (trackobject), 42, 51, 12,
+      51, 0, TRUE);
 
   /* check priority offsets */
   assert_equals_int (GES_TIMELINE_OBJECT_HEIGHT (object), 1);
   g_object_set (trackobject, "priority-offset", (guint32) 3, NULL);
-  gnl_object_check (trackobject->gnlobject, 42, 51, 12, 51, 3, TRUE);
+  gnl_object_check (ges_track_object_get_gnlobject (trackobject), 42, 51, 12,
+      51, 3, TRUE);
   g_object_set (object, "priority", 5, NULL);
-  gnl_object_check (trackobject->gnlobject, 42, 51, 12, 51, 8, TRUE);
+  gnl_object_check (ges_track_object_get_gnlobject (trackobject), 42, 51, 12,
+      51, 8, TRUE);
   assert_equals_int (GES_TIMELINE_OBJECT_HEIGHT (object), 4);
 
   g_object_unref (trackobject);
index 422e3c377fe2d1726e754c5f68755eded086618e..017b5eb677dbfb6f821e1b2f42befc5eb399c2a2 100644 (file)
@@ -80,7 +80,8 @@ GST_START_TEST (test_overlay_properties)
   assert_equals_uint64 (GES_TRACK_OBJECT_INPOINT (trackobject), 12);
 
   /* And let's also check that it propagated correctly to GNonLin */
-  gnl_object_check (trackobject->gnlobject, 42, 51, 12, 51, 0, TRUE);
+  gnl_object_check (ges_track_object_get_gnlobject (trackobject), 42, 51, 12,
+      51, 0, TRUE);
 
   /* Change more properties, see if they propagate */
   g_object_set (object, "start", (guint64) 420, "duration", (guint64) 510,
@@ -93,7 +94,8 @@ GST_START_TEST (test_overlay_properties)
   assert_equals_uint64 (GES_TRACK_OBJECT_INPOINT (trackobject), 120);
 
   /* And let's also check that it propagated correctly to GNonLin */
-  gnl_object_check (trackobject->gnlobject, 420, 510, 120, 510, 0, TRUE);
+  gnl_object_check (ges_track_object_get_gnlobject (trackobject), 420, 510, 120,
+      510, 0, TRUE);
 
   ges_timeline_object_release_track_object (object, trackobject);
   g_object_unref (object);
index 0125326a0d14a9acc69afff8bbd9dd2069a8e354..8bd98c7ab84550246f7778f73b8a33645fc12888 100644 (file)
@@ -88,7 +88,8 @@ GST_START_TEST (test_object_properties)
   assert_equals_uint64 (GES_TRACK_OBJECT_INPOINT (trackobject), 12);
 
   /* And let's also check that it propagated correctly to GNonLin */
-  gnl_object_check (trackobject->gnlobject, 42, 51, 12, 51, 0, TRUE);
+  gnl_object_check (ges_track_object_get_gnlobject (trackobject), 42, 51, 12,
+      51, 0, TRUE);
 
   /* Change more properties, see if they propagate */
   g_object_set (object, "start", (guint64) 420, "duration", (guint64) 510,
@@ -101,7 +102,8 @@ GST_START_TEST (test_object_properties)
   assert_equals_uint64 (GES_TRACK_OBJECT_INPOINT (trackobject), 120);
 
   /* And let's also check that it propagated correctly to GNonLin */
-  gnl_object_check (trackobject->gnlobject, 420, 510, 120, 510, 0, TRUE);
+  gnl_object_check (ges_track_object_get_gnlobject (trackobject), 420, 510, 120,
+      510, 0, TRUE);
 
   ges_timeline_object_release_track_object (object, trackobject);
 
index 922e0b8e9edabd6273cfc36fddc68fb22df3315c..ea36bed328b7f6fecee69a31a7bb6dff4f620840 100644 (file)
@@ -81,7 +81,8 @@ GST_START_TEST (test_title_source_properties)
   assert_equals_uint64 (GES_TRACK_OBJECT_INPOINT (trackobject), 12);
 
   /* And let's also check that it propagated correctly to GNonLin */
-  gnl_object_check (trackobject->gnlobject, 42, 51, 12, 51, 0, TRUE);
+  gnl_object_check (ges_track_object_get_gnlobject (trackobject), 42, 51, 12,
+      51, 0, TRUE);
 
   /* Change more properties, see if they propagate */
   g_object_set (object, "start", (guint64) 420, "duration", (guint64) 510,
@@ -94,13 +95,16 @@ GST_START_TEST (test_title_source_properties)
   assert_equals_uint64 (GES_TRACK_OBJECT_INPOINT (trackobject), 120);
 
   /* And let's also check that it propagated correctly to GNonLin */
-  gnl_object_check (trackobject->gnlobject, 420, 510, 120, 510, 0, TRUE);
+  gnl_object_check (ges_track_object_get_gnlobject (trackobject), 420, 510, 120,
+      510, 0, TRUE);
 
   /* Test mute support */
   g_object_set (object, "mute", TRUE, NULL);
-  gnl_object_check (trackobject->gnlobject, 420, 510, 120, 510, 0, FALSE);
+  gnl_object_check (ges_track_object_get_gnlobject (trackobject), 420, 510, 120,
+      510, 0, FALSE);
   g_object_set (object, "mute", FALSE, NULL);
-  gnl_object_check (trackobject->gnlobject, 420, 510, 120, 510, 0, TRUE);
+  gnl_object_check (ges_track_object_get_gnlobject (trackobject), 420, 510, 120,
+      510, 0, TRUE);
 
   ges_timeline_object_release_track_object (object, trackobject);
   g_object_unref (object);
index 4c184b1916e44aa878e2d65cf316fff76ea616cb..53ba6d3a65fe2228a222bbd76a15e15b7b1bd3b9 100644 (file)
@@ -111,7 +111,8 @@ GST_START_TEST (test_transition_properties)
   assert_equals_uint64 (GES_TRACK_OBJECT_INPOINT (trackobject), 12);
 
   /* And let's also check that it propagated correctly to GNonLin */
-  gnl_object_check (trackobject->gnlobject, 42, 51, 12, 51, 0, TRUE);
+  gnl_object_check (ges_track_object_get_gnlobject (trackobject), 42, 51, 12,
+      51, 0, TRUE);
 
   /* Change more properties, see if they propagate */
   g_object_set (object, "start", (guint64) 420, "duration", (guint64) 510,
@@ -124,7 +125,8 @@ GST_START_TEST (test_transition_properties)
   assert_equals_uint64 (GES_TRACK_OBJECT_INPOINT (trackobject), 120);
 
   /* And let's also check that it propagated correctly to GNonLin */
-  gnl_object_check (trackobject->gnlobject, 420, 510, 120, 510, 0, TRUE);
+  gnl_object_check (ges_track_object_get_gnlobject (trackobject), 420, 510, 120,
+      510, 0, TRUE);
 
   /* test changing vtype */
   GST_DEBUG ("Setting to crossfade");
index 8f16dbf5d1c0d7c3ead6d051418d8db49838c824..6ecb53b4f07a3b80c410ee2e97a97a11f9144336 100644 (file)
@@ -84,7 +84,7 @@ print_transition_data (GESTimelineObject * tr)
 
   trackobjects = ges_timeline_object_get_track_objects (tr);
   trackobj = GES_TRACK_OBJECT (trackobjects->data);
-  gnlobj = trackobj->gnlobject;
+  gnlobj = ges_track_object_get_gnlobject (trackobj);
 
   g_object_get (gnlobj, "start", &start, "duration", &duration,
       "priority", &priority, "name", &name, NULL);
index e6252932a165d3897899f13879742646e79bc013..f2e450963b09af70d32ae549167097b4c86e71f2 100644 (file)
@@ -27,14 +27,15 @@ fill_customsrc (GESTimelineObject * object, GESTrackObject * trobject,
 {
   GstElement *src;
   guint var = GPOINTER_TO_UINT (user_data);
+  GESTrack *track = ges_track_object_get_track (trobject);
 
   /* Based on the Track type, we will either put a videotestsrc
    * or an audiotestsrc */
 
-  if (trobject->track->type == GES_TRACK_TYPE_VIDEO) {
+  if (track->type == GES_TRACK_TYPE_VIDEO) {
     src = gst_element_factory_make ("videotestsrc", NULL);
     g_object_set (src, "pattern", var, NULL);
-  } else if (trobject->track->type == GES_TRACK_TYPE_AUDIO) {
+  } else if (track->type == GES_TRACK_TYPE_AUDIO) {
     src = gst_element_factory_make ("audiotestsrc", NULL);
     g_object_set (src, "freq", 440.0 * (var + 1), NULL);
   } else
index ab63e9e001edf127677dc0a5d5c654eff3e00370..0aa93a080a04e13bbd1ab6483813d4b356189aca 100644 (file)
@@ -68,7 +68,7 @@ print_transition_data (GESTimelineObject * tr)
 
   trackobjects = ges_timeline_object_get_track_objects (tr);
   trackobj = GES_TRACK_OBJECT (trackobjects->data);
-  gnlobj = trackobj->gnlobject;
+  gnlobj = ges_track_object_get_gnlobject (trackobj);
 
   g_object_get (gnlobj, "start", &start, "duration", &duration,
       "priority", &priority, "name", &name, NULL);
index c7184f86a27a686600f095bb8b31d9becbaad396..bdbace00ce5c82675c249bf689dd0505b58bb04f 100644 (file)
@@ -69,7 +69,7 @@ print_transition_data (GESTimelineObject * tr)
   trackobjects = ges_timeline_object_get_track_objects (tr);
 
   trackobj = GES_TRACK_OBJECT (trackobjects->data);
-  gnlobj = trackobj->gnlobject;
+  gnlobj = ges_track_object_get_gnlobject (trackobj);
 
   g_object_get (gnlobj, "start", &start, "duration", &duration,
       "priority", &priority, "name", &name, NULL);
index 053237ed911369662b7098124ffb55f5827c994b..aef61a49b599f294e41333d57a803adfaf9227da 100644 (file)
@@ -97,7 +97,7 @@ pattern_source_fill_func (GESTimelineObject * object,
     GESTrackObject * trobject, GstElement * gnlobj, gpointer user_data)
 {
   guint pattern = GPOINTER_TO_UINT (user_data);
-  GESTrack *track = trobject->track;
+  GESTrack *track = ges_track_object_get_track (trobject);
   GstElement *testsrc;
 
   g_assert (track);