diff --git a/docs/libs/#ges-sections.txt# b/docs/libs/#ges-sections.txt#
new file mode 100644
index 0000000000..dd3a39524c
--- /dev/null
+++ b/docs/libs/#ges-sections.txt#
@@ -0,0 +1,646 @@
+ges/ges.h
+
+
+ges-common
+Initialization
+ges_init
+
+GES_PADDING
+
+
+
+ges-utils
+Utilities
+
+
+
+
+ges-enums
+GES Enums
+GESVideoStandardTransitionType
+GESTrackType
+GESTextHAlign
+DEFAULT_HALIGNMENT
+GESTextVAlign
+DEFAULT_VALIGNMENT
+GESVideoTestPattern
+
+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
+
+
+
+ges-track
+GESTrack
+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
+
+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
+
+
+
+ges-track-object
+GESTrackObject
+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
+
+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
+
+
+
+ges-track-source
+GESTrackSource
+GESTrackSource
+GESTrackSourceClass
+
+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
+
+
+
+ges-track-operation
+GESTrackOperation
+GESTrackOperation
+GESTrackOperationClass
+
+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
+
+
+
+ges-track-filesource
+GESTrackFileSource
+GESTrackFileSource
+ges_track_filesource_new
+
+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
+
+
+
+ges-track-image-source
+GESTrackImageSource
+GESTrackImageSource
+ges_track_image_source_new
+
+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
+
+
+
+ges-track-transition
+GESTrackTransition
+GESTrackTransition
+GESTrackTransitionClass
+
+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
+
+
+
+ges-track-audio-transition
+GESTrackAudioTransition
+GESTrackAudioTransition
+ges_track_audio_transition_new
+
+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
+
+
+
+ges-track-video-transition
+GESTrackVideoTransition
+GESTrackVideoTransition
+ges_track_video_transition_new
+ges_track_video_transition_set_type
+
+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
+
+
+
+ges-timeline
+GESTimeline
+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
+
+ges_timeline_get_tracks
+ges_timeline_get_track_for_pad
+
+GESTimelineClass
+ges_timeline_get_type
+GES_IS_TIMELINE
+GES_IS_TIMELINE_CLASS
+GES_TIMELINE
+GES_TIMELINE_CLASS
+GES_TIMELINE_GET_CLASS
+GES_TYPE_TIMELINE
+
+
+
+
+ges-timeline-layer
+GESTimelineLayer
+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
+
+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
+
+
+
+
+ges-timeline-object
+GESTimelineObject
+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
+
+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
+
+
+
+
+ges-timeline-pipeline
+GESTimelinePipeline
+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
+
+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
+
+
+
+
+ges-timeline-source
+GESTimelineSource
+GESTimelineSource
+GESTimelineSourceClass
+
+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
+
+
+
+ges-timeline-filesource
+GESTimelineFileSource
+GESTimelineFileSource
+ges_timeline_filesource_new
+
+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
+
+
+
+ges-timeline-operation
+GESTimelineOperation
+GESTimelineOperation
+
+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
+
+
+
+ges-timeline-overlay
+GESTimelineOverlay
+GESTimelineOverlay
+GESTimelineOverlayClass
+
+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
+
+
+
+ges-timeline-transition
+GESTimelineTransition
+GESTimelineTransition
+
+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
+
+
+
+ges-timeline-standard-transition
+GESTimelineStandardTransition
+GESTimelineStandardTransition
+ges_timeline_standard_transition_new
+ges_timeline_standard_transition_new_for_nick
+
+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
+
+
+
+
+ges-custom-timeline-source
+GESCustomTimelineSource
+GESCustomTimelineSource
+GESFillTrackObjectUserFunc
+ges_custom_timeline_source_new
+
+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
+
+
+
+ges-simple-timeline-layer
+GESSimpleTimelineLayer
+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
+
+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
+
+
+
+ges-timeline-test-source
+GESTimelineTestSource
+GESTimelineTestSource
+GESTimelineTestSourceClass
+ges_timeline_test_source_new
+ges_timeline_test_source_new_for_nick
+
+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
+
+
+
+ges-timeline-title-source
+GESTimelineTitleSource
+GESTimelineTitleSource
+ges_timeline_title_source_new
+
+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
+
+
+
+ges-timeline-text-overlay
+GESTimelineTextOverlay
+GESTimelineTextOverlay
+ges_timeline_text_overlay_new
+
+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
+
+
+
+ges-track-video-test-source
+GESTrackVideoTestSource
+GESTrackVideoTestSource
+ges_track_video_test_source_new
+ges_track_video_test_source_set_pattern
+
+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
+
+
+
+ges-track-audio-test-source
+GESTrackAudioTestSource
+GESTrackAudioTestSource
+ges_track_audio_test_source_new
+ges_track_audio_test_source_set_freq
+ges_track_audio_test_source_set_volume
+
+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
+
+
+
+ges-track-title-source
+GESTrackTitleSource
+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
+
+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
+
+
+
+ges-track-text-overlay
+GESTrackTextOverlay
+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
+
+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
+
+
+
+ges-formatter
+GESFormatter
+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
+
+ges_formatter_get_type
+GES_FORMATTER
+GES_FORMATTER_CLASS
+GES_FORMATTER_GET_CLASS
+GES_IS_FORMATTER
+GES_IS_FORMATTER_CLASS
+GES_TYPE_FORMATTER
+
+ges_formatter_load
+ges_formatter_save
+ges_formatter_set_data
+ges_formatter_clear_data
+ges_formatter_get_data
+GESFormatterCanLoadURIMethod
+GESFormatterCanSaveURIMethod
+GESFormatterLoadMethod
+GESFormatterSaveMethod
+
+
+
+ges-keyfile-formatter
+GESKeyFileFormatter
+GESKeyfileFormatter
+ges_keyfile_formatter_new
+
+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
+
diff --git a/docs/libs/.#ges-sections.txt b/docs/libs/.#ges-sections.txt
new file mode 120000
index 0000000000..fef8ca2667
--- /dev/null
+++ b/docs/libs/.#ges-sections.txt
@@ -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
index 0000000000..9b0cbe3583
--- /dev/null
+++ b/docs/libs/ges-decl-list.txt.bak
@@ -0,0 +1,690 @@
+
+ges-track-transition
+GESTrackTransition
+GESTrackTransitionPrivate
+GESTrackTransition
+GESTrackTransitionClass
+
+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
+
+
+
+ges-timeline-source
+GESTimelineSource
+GESTimelineSourcePrivate
+GESTimelineSource
+GESTimelineSourceClass
+
+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
+
+
+
+ges-formatter
+GESFormatter
+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
+
+GES_FORMATTER
+GES_IS_FORMATTER
+GES_TYPE_FORMATTER
+ges_formatter_get_type
+GES_FORMATTER_CLASS
+GES_IS_FORMATTER_CLASS
+GES_FORMATTER_GET_CLASS
+
+
+
+ges-track-operation
+GESTrackOperation
+GESTrackOperationPrivate
+GESTrackOperation
+GESTrackOperationClass
+
+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
+
+
+
+ges-timeline-text-overlay
+GESTimelineTextOverlay
+GESTimelineTextOverlayPrivate
+GESTimelineTextOverlay
+GESTimelineTextOverlayClass
+ges_timeline_text_overlay_new
+
+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
+
+
+
+ges-timeline-transition
+GESTimelineTransition
+GESTimelineTransitionPrivate
+GESTimelineTransition
+GESTimelineTransitionClass
+
+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
+
+
+
+ges-track-audio-test-source
+GESTrackAudioTestSource
+GESTrackAudioTestSourcePrivate
+GESTrackAudioTestSource
+GESTrackAudioTestSourceClass
+ges_track_audio_test_source_new
+ges_track_audio_test_source_set_freq
+ges_track_audio_test_source_set_volume
+
+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
+
+
+
+ges-timeline-standard-transition
+GESTimelineStandardTransition
+GESTimelineStandardTransitionPrivate
+GESTimelineStandardTransition
+GESTimelineStandardTransitionClass
+ges_timeline_standard_transition_new
+ges_timeline_standard_transition_new_for_nick
+
+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
+
+
+
+ges-track-source
+GESTrackSource
+GESTrackSourcePrivate
+GESTrackSource
+GESTrackSourceClass
+
+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
+
+
+
+ges-track
+GESTrack
+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
+
+GES_TRACK
+GES_IS_TRACK
+GES_TYPE_TRACK
+ges_track_get_type
+GES_TRACK_CLASS
+GES_IS_TRACK_CLASS
+GES_TRACK_GET_CLASS
+
+
+
+ges-track-video-test-source
+GESTrackVideoTestSource
+GESTrackVideoTestSourcePrivate
+GESTrackVideoTestSource
+GESTrackVideoTestSourceClass
+ges_track_video_test_source_new
+ges_track_video_test_source_set_pattern
+
+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
+
+
+
+ges-timeline
+GESTimeline
+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
+
+GES_TIMELINE
+GES_IS_TIMELINE
+GES_TYPE_TIMELINE
+ges_timeline_get_type
+GES_TIMELINE_CLASS
+GES_IS_TIMELINE_CLASS
+GES_TIMELINE_GET_CLASS
+
+
+
+ges-timeline-test-source
+GESTimelineTestSource
+GESTimelineTestSourcePrivate
+GESTimelineTestSource
+GESTimelineTestSourceClass
+ges_timeline_test_source_new
+ges_timeline_test_source_new_for_nick
+
+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
+
+
+
+ges-timeline-object
+GESTimelineObject
+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
+
+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
+
+
+
+ges-simple-timeline-layer
+GESSimpleTimelineLayer
+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
+
+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
+
+
+
+ges-track-image-source
+GESTrackImageSource
+GESTrackImageSourcePrivate
+GESTrackImageSource
+GESTrackImageSourceClass
+ges_track_image_source_new
+
+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
+
+
+
+ges-timeline-layer
+GESTimelineLayer
+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
+
+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
+
+
+
+ges-track-video-transition
+GESTrackVideoTransition
+GESTrackVideoTransitionPrivate
+GESTrackVideoTransition
+GESTrackVideoTransitionClass
+ges_track_video_transition_set_type
+ges_track_video_transition_new
+
+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
+
+
+
+ges-timeline-file-source
+GESTimelineFileSource
+GESTimelineFileSource
+GESTimelineFileSourceClass
+ges_timeline_filesource_new
+
+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
+
+
+
+ges-track-object
+GESTrackObject
+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
+
+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
+
+
+
+ges-timeline-pipeline
+GESTimelinePipeline
+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
+
+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
+
+
+
+ges-timeline-operation
+GESTimelineOperation
+GESTimelineOperationPrivate
+GESTimelineOperation
+GESTimelineOperationClass
+
+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
+
+
+
+ges-timeline-overlay
+GESTimelineOverlay
+GESTimelineOverlayPrivate
+GESTimelineOverlay
+GESTimelineOverlayClass
+
+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
+
+
+
+ges-custom-timeline-source
+GESCustomTimelineSource
+GESCustomTimelineSourcePrivate
+GESFillTrackObjectUserFunc
+GESCustomTimelineSource
+GESCustomTimelineSourceClass
+ges_custom_timeline_source_new
+
+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
+
+
+
+ges-track-title-source
+GESTrackTitleSource
+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
+
+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
+
+
+
+ges-track-audio-transition
+GESTrackAudioTransition
+GESTrackAudioTransitionPrivate
+GESTrackAudioTransition
+GESTrackAudioTransitionClass
+ges_track_audio_transition_new
+
+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
+
+
+
+ges-timeline-title-source
+GESTimelineTitleSource
+GESTimelineTitleSourcePrivate
+GESTimelineTitleSource
+GESTimelineTitleSourceClass
+ges_timeline_title_source_new
+
+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
+
+
+
+ges-keyfile-formatter
+GESKeyfileFormatter
+GESKeyfileFormatter
+GESKeyfileFormatterClass
+ges_keyfile_formatter_new
+
+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
+
+
+
+ges-track-filesource
+GESTrackFileSource
+GESTrackFileSourcePrivate
+GESTrackFileSource
+GESTrackFileSourceClass
+ges_track_filesource_new
+
+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
+
+
+
+ges-track-text-overlay
+GESTrackTextOverlay
+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
+
+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
+
+
+
+ges-types
+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
+
+
+
+
+
+ges-enums
+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
+
+
+
+ges-screenshot
+ges_play_sink_convert_frame
+
+
+
+ges-utils
+ges_timeline_new_audio_video
+
+
diff --git a/docs/libs/ges-decl.txt.bak b/docs/libs/ges-decl.txt.bak
new file mode 100644
index 0000000000..2e1eb75191
--- /dev/null
+++ b/docs/libs/ges-decl.txt.bak
@@ -0,0 +1,2919 @@
+
+GES_PADDING
+#define GES_PADDING 4
+
+
+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
+
+
+GES_TYPE_TRACK_TRANSITION
+#define GES_TYPE_TRACK_TRANSITION ges_track_transition_get_type()
+
+
+GES_TRACK_TRANSITION
+#define GES_TRACK_TRANSITION(obj) \
+ (G_TYPE_CHECK_INSTANCE_CAST ((obj), GES_TYPE_TRACK_TRANSITION,\
+ GESTrackTransition))
+
+
+GES_TRACK_TRANSITION_CLASS
+#define GES_TRACK_TRANSITION_CLASS(klass) \
+ (G_TYPE_CHECK_CLASS_CAST ((klass), GES_TYPE_TRACK_TRANSITION,\
+ GESTrackTransitionClass))
+
+
+GES_IS_TRACK_TRANSITION
+#define GES_IS_TRACK_TRANSITION(obj) \
+ (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GES_TYPE_TRACK_TRANSITION))
+
+
+GES_IS_TRACK_TRANSITION_CLASS
+#define GES_IS_TRACK_TRANSITION_CLASS(klass) \
+ (G_TYPE_CHECK_CLASS_TYPE ((klass), GES_TYPE_TRACK_TRANSITION))
+
+
+GES_TRACK_TRANSITION_GET_CLASS
+#define GES_TRACK_TRANSITION_GET_CLASS(obj) \
+ (G_TYPE_INSTANCE_GET_CLASS ((obj), GES_TYPE_TRACK_TRANSITION,\
+ GESTrackTransitionClass))
+
+
+GESTrackTransitionPrivate
+
+
+GESTrackTransition
+struct _GESTrackTransition
+{
+ /*< private >*/
+ GESTrackOperation parent;
+
+ GESTrackTransitionPrivate *priv;
+
+ /* Padding for API extension */
+ gpointer _ges_reserved[GES_PADDING];
+};
+
+
+GESTrackTransitionClass
+struct _GESTrackTransitionClass {
+ /*< private >*/
+ GESTrackOperationClass parent_class;
+
+ /*< private >*/
+ /* Padding for API extension */
+ gpointer _ges_reserved[GES_PADDING];
+};
+
+
+ges_track_transition_get_type
+GType
+void
+
+
+GES_TYPE_TIMELINE_SOURCE
+#define GES_TYPE_TIMELINE_SOURCE ges_timeline_source_get_type()
+
+
+GES_TIMELINE_SOURCE
+#define GES_TIMELINE_SOURCE(obj) \
+ (G_TYPE_CHECK_INSTANCE_CAST ((obj), GES_TYPE_TIMELINE_SOURCE, GESTimelineSource))
+
+
+GES_TIMELINE_SOURCE_CLASS
+#define GES_TIMELINE_SOURCE_CLASS(klass) \
+ (G_TYPE_CHECK_CLASS_CAST ((klass), GES_TYPE_TIMELINE_SOURCE, GESTimelineSourceClass))
+
+
+GES_IS_TIMELINE_SOURCE
+#define GES_IS_TIMELINE_SOURCE(obj) \
+ (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GES_TYPE_TIMELINE_SOURCE))
+
+
+GES_IS_TIMELINE_SOURCE_CLASS
+#define GES_IS_TIMELINE_SOURCE_CLASS(klass) \
+ (G_TYPE_CHECK_CLASS_TYPE ((klass), GES_TYPE_TIMELINE_SOURCE))
+
+
+GES_TIMELINE_SOURCE_GET_CLASS
+#define GES_TIMELINE_SOURCE_GET_CLASS(obj) \
+ (G_TYPE_INSTANCE_GET_CLASS ((obj), GES_TYPE_TIMELINE_SOURCE, GESTimelineSourceClass))
+
+
+GESTimelineSourcePrivate
+
+
+GESTimelineSource
+struct _GESTimelineSource {
+ GESTimelineObject parent;
+
+ /*< private >*/
+ GESTimelineSourcePrivate *priv;
+
+ /* Padding for API extension */
+ gpointer _ges_reserved[GES_PADDING];
+};
+
+
+GESTimelineSourceClass
+struct _GESTimelineSourceClass {
+ /*< private >*/
+ GESTimelineObjectClass parent_class;
+
+ /* Padding for API extension */
+ gpointer _ges_reserved[GES_PADDING];
+};
+
+
+ges_timeline_source_get_type
+GType
+void
+
+
+GES_TYPE_FORMATTER
+#define GES_TYPE_FORMATTER ges_formatter_get_type()
+
+
+GES_FORMATTER
+#define GES_FORMATTER(obj) \
+ (G_TYPE_CHECK_INSTANCE_CAST ((obj), GES_TYPE_FORMATTER, GESFormatter))
+
+
+GES_FORMATTER_CLASS
+#define GES_FORMATTER_CLASS(klass) \
+ (G_TYPE_CHECK_CLASS_CAST ((klass), GES_TYPE_FORMATTER, GESFormatterClass))
+
+
+GES_IS_FORMATTER
+#define GES_IS_FORMATTER(obj) \
+ (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GES_TYPE_FORMATTER))
+
+
+GES_IS_FORMATTER_CLASS
+#define GES_IS_FORMATTER_CLASS(klass) \
+ (G_TYPE_CHECK_CLASS_TYPE ((klass), GES_TYPE_FORMATTER))
+
+
+GES_FORMATTER_GET_CLASS
+#define GES_FORMATTER_GET_CLASS(obj) \
+ (G_TYPE_INSTANCE_GET_CLASS ((obj), GES_TYPE_FORMATTER, GESFormatterClass))
+
+
+GESFormatter
+struct _GESFormatter {
+ GObject parent;
+
+ /*< private >*/
+ gchar *data;
+ gsize length;
+
+ /* Padding for API extension */
+ gpointer _ges_reserved[GES_PADDING];
+};
+
+
+GESFormatterCanLoadURIMethod
+gboolean
+gchar * uri
+
+
+GESFormatterCanSaveURIMethod
+gboolean
+gchar * uri
+
+
+GESFormatterLoadFromURIMethod
+gboolean
+GESFormatter *formatter,
+ GESTimeline *timeline,
+ gchar * uri
+
+
+GESFormatterSaveToURIMethod
+gboolean
+GESFormatter *formatter,
+ GESTimeline *timeline,
+ gchar * uri
+
+
+GESFormatterSaveMethod
+gboolean
+GESFormatter * formatter,
+ GESTimeline * timeline
+
+
+GESFormatterLoadMethod
+gboolean
+GESFormatter * formatter,
+ GESTimeline * timeline
+
+
+GESFormatterClass
+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];
+};
+
+
+ges_formatter_get_type
+GType
+void
+
+
+ges_formatter_new_for_uri
+GESFormatter *
+gchar *uri
+
+
+ges_default_formatter_new
+GESFormatter *
+void
+
+
+ges_formatter_can_load_uri
+gboolean
+gchar * uri
+
+
+ges_formatter_can_save_uri
+gboolean
+gchar * uri
+
+
+ges_formatter_load_from_uri
+gboolean
+GESFormatter * formatter, GESTimeline *timeline, gchar *uri
+
+
+ges_formatter_save_to_uri
+gboolean
+GESFormatter * formatter, GESTimeline *timeline, gchar *uri
+
+
+ges_formatter_load
+gboolean
+GESFormatter * formatter, GESTimeline * timeline
+
+
+ges_formatter_save
+gboolean
+GESFormatter * formatter, GESTimeline * timeline
+
+
+ges_formatter_set_data
+void
+GESFormatter * formatter, void *data, gsize length
+
+
+ges_formatter_get_data
+void *
+GESFormatter *formatter, gsize *length
+
+
+ges_formatter_clear_data
+void
+GESFormatter *formatter
+
+
+GES_TYPE_TRACK_OPERATION
+#define GES_TYPE_TRACK_OPERATION ges_track_operation_get_type()
+
+
+GES_TRACK_OPERATION
+#define GES_TRACK_OPERATION(obj) \
+ (G_TYPE_CHECK_INSTANCE_CAST ((obj), GES_TYPE_TRACK_OPERATION, GESTrackOperation))
+
+
+GES_TRACK_OPERATION_CLASS
+#define GES_TRACK_OPERATION_CLASS(klass) \
+ (G_TYPE_CHECK_CLASS_CAST ((klass), GES_TYPE_TRACK_OPERATION, GESTrackOperationClass))
+
+
+GES_IS_TRACK_OPERATION
+#define GES_IS_TRACK_OPERATION(obj) \
+ (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GES_TYPE_TRACK_OPERATION))
+
+
+GES_IS_TRACK_OPERATION_CLASS
+#define GES_IS_TRACK_OPERATION_CLASS(klass) \
+ (G_TYPE_CHECK_CLASS_TYPE ((klass), GES_TYPE_TRACK_OPERATION))
+
+
+GES_TRACK_OPERATION_GET_CLASS
+#define GES_TRACK_OPERATION_GET_CLASS(obj) \
+ (G_TYPE_INSTANCE_GET_CLASS ((obj), GES_TYPE_TRACK_OPERATION, GESTrackOperationClass))
+
+
+GESTrackOperationPrivate
+
+
+GESTrackOperation
+struct _GESTrackOperation {
+ /*< private >*/
+ GESTrackObject parent;
+
+ GESTrackOperationPrivate *priv;
+
+ /* Padding for API extension */
+ gpointer _ges_reserved[GES_PADDING];
+};
+
+
+GESTrackOperationClass
+struct _GESTrackOperationClass {
+ /*< private >*/
+ GESTrackObjectClass parent_class;
+
+ /*< private >*/
+ /* Padding for API extension */
+ gpointer _ges_reserved[GES_PADDING];
+};
+
+
+ges_track_operation_get_type
+GType
+void
+
+
+GES_TYPE_TIMELINE_TEXT_OVERLAY
+#define GES_TYPE_TIMELINE_TEXT_OVERLAY ges_timeline_text_overlay_get_type()
+
+
+GES_TIMELINE_TEXT_OVERLAY
+#define GES_TIMELINE_TEXT_OVERLAY(obj) \
+ (G_TYPE_CHECK_INSTANCE_CAST ((obj), GES_TYPE_TIMELINE_TEXT_OVERLAY, GESTimelineTextOverlay))
+
+
+GES_TIMELINE_TEXT_OVERLAY_CLASS
+#define GES_TIMELINE_TEXT_OVERLAY_CLASS(klass) \
+ (G_TYPE_CHECK_CLASS_CAST ((klass), GES_TYPE_TIMELINE_TEXT_OVERLAY, GESTimelineTextOverlayClass))
+
+
+GES_IS_TIMELINE_TEXT_OVERLAY
+#define GES_IS_TIMELINE_TEXT_OVERLAY(obj) \
+ (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GES_TYPE_TIMELINE_TEXT_OVERLAY))
+
+
+GES_IS_TIMELINE_TEXT_OVERLAY_CLASS
+#define GES_IS_TIMELINE_TEXT_OVERLAY_CLASS(klass) \
+ (G_TYPE_CHECK_CLASS_TYPE ((klass), GES_TYPE_TIMELINE_TEXT_OVERLAY))
+
+
+GES_TIMELINE_TEXT_OVERLAY_GET_CLASS
+#define GES_TIMELINE_TEXT_OVERLAY_GET_CLASS(obj) \
+ (G_TYPE_INSTANCE_GET_CLASS ((obj), GES_TYPE_TIMELINE_TEXT_OVERLAY, GESTimelineTextOverlayClass))
+
+
+GESTimelineTextOverlayPrivate
+
+
+GESTimelineTextOverlay
+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];
+};
+
+
+GESTimelineTextOverlayClass
+struct _GESTimelineTextOverlayClass {
+ /*< private >*/
+
+ GESTimelineOverlayClass parent_class;
+
+ /* Padding for API extension */
+ gpointer _ges_reserved[GES_PADDING];
+};
+
+
+ges_timeline_text_overlay_get_type
+GType
+void
+
+
+ges_timeline_text_overlay_new
+GESTimelineTextOverlay*
+void
+
+
+GES_TYPE_TIMELINE_TRANSITION
+#define GES_TYPE_TIMELINE_TRANSITION ges_timeline_transition_get_type()
+
+
+GES_TIMELINE_TRANSITION
+#define GES_TIMELINE_TRANSITION(obj) \
+ (G_TYPE_CHECK_INSTANCE_CAST ((obj), GES_TYPE_TIMELINE_TRANSITION, GESTimelineTransition))
+
+
+GES_TIMELINE_TRANSITION_CLASS
+#define GES_TIMELINE_TRANSITION_CLASS(klass) \
+ (G_TYPE_CHECK_CLASS_CAST ((klass), GES_TYPE_TIMELINE_TRANSITION, GESTimelineTransitionClass))
+
+
+GES_IS_TIMELINE_TRANSITION
+#define GES_IS_TIMELINE_TRANSITION(obj) \
+ (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GES_TYPE_TIMELINE_TRANSITION))
+
+
+GES_IS_TIMELINE_TRANSITION_CLASS
+#define GES_IS_TIMELINE_TRANSITION_CLASS(klass) \
+ (G_TYPE_CHECK_CLASS_TYPE ((klass), GES_TYPE_TIMELINE_TRANSITION))
+
+
+GES_TIMELINE_TRANSITION_GET_CLASS
+#define GES_TIMELINE_TRANSITION_GET_CLASS(obj) \
+ (G_TYPE_INSTANCE_GET_CLASS ((obj), GES_TYPE_TIMELINE_TRANSITION, GESTimelineTransitionClass))
+
+
+GESTimelineTransitionPrivate
+
+
+GESTimelineTransition
+struct _GESTimelineTransition {
+ /*< private >*/
+ GESTimelineOperation parent;
+
+ /*< private >*/
+ GESTimelineTransitionPrivate *priv;
+
+ /* Padding for API extension */
+ gpointer _ges_reserved[GES_PADDING];
+};
+
+
+GESTimelineTransitionClass
+struct _GESTimelineTransitionClass {
+ /*< private >*/
+ GESTimelineOperationClass parent_class;
+
+ /* Padding for API extension */
+ gpointer _ges_reserved[GES_PADDING];
+};
+
+
+ges_timeline_transition_get_type
+GType
+void
+
+
+ges_init
+void
+void
+
+
+GES_TYPE_TRACK_TYPE
+#define GES_TYPE_TRACK_TYPE (ges_track_type_get_type ())
+
+
+ges_track_type_get_type
+GType
+void
+
+
+GESTrackType
+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;
+
+
+GESVideoStandardTransitionType
+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;
+
+
+GES_VIDEO_STANDARD_TRANSITION_TYPE_TYPE
+#define GES_VIDEO_STANDARD_TRANSITION_TYPE_TYPE \
+ (ges_video_standard_transition_type_get_type())
+
+
+ges_video_standard_transition_type_get_type
+GType
+void
+
+
+GESTextVAlign
+typedef enum {
+ GES_TEXT_VALIGN_BASELINE,
+ GES_TEXT_VALIGN_BOTTOM,
+ GES_TEXT_VALIGN_TOP
+} GESTextVAlign;
+
+
+DEFAULT_VALIGNMENT
+#define DEFAULT_VALIGNMENT GES_TEXT_VALIGN_BASELINE
+
+
+GES_TEXT_VALIGN_TYPE
+#define GES_TEXT_VALIGN_TYPE\
+ (ges_text_valign_get_type ())
+
+
+ges_text_valign_get_type
+GType
+void
+
+
+GESTextHAlign
+typedef enum {
+ GES_TEXT_HALIGN_LEFT,
+ GES_TEXT_HALIGN_CENTER,
+ GES_TEXT_HALIGN_RIGHT
+} GESTextHAlign;
+
+
+DEFAULT_HALIGNMENT
+#define DEFAULT_HALIGNMENT GES_TEXT_HALIGN_CENTER
+
+
+GES_TEXT_HALIGN_TYPE
+#define GES_TEXT_HALIGN_TYPE\
+ (ges_text_halign_get_type ())
+
+
+ges_text_halign_get_type
+GType
+void
+
+
+GESVideoTestPattern
+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;
+
+
+GES_VIDEO_TEST_PATTERN_TYPE
+#define GES_VIDEO_TEST_PATTERN_TYPE\
+ ges_video_test_pattern_get_type()
+
+
+ges_video_test_pattern_get_type
+GType
+void
+
+
+GES_TYPE_TRACK_AUDIO_TEST_SOURCE
+#define GES_TYPE_TRACK_AUDIO_TEST_SOURCE ges_track_audio_test_source_get_type()
+
+
+GES_TRACK_AUDIO_TEST_SOURCE
+#define GES_TRACK_AUDIO_TEST_SOURCE(obj) \
+ (G_TYPE_CHECK_INSTANCE_CAST ((obj), GES_TYPE_TRACK_AUDIO_TEST_SOURCE, GESTrackAudioTestSource))
+
+
+GES_TRACK_AUDIO_TEST_SOURCE_CLASS
+#define GES_TRACK_AUDIO_TEST_SOURCE_CLASS(klass) \
+ (G_TYPE_CHECK_CLASS_CAST ((klass), GES_TYPE_TRACK_AUDIO_TEST_SOURCE, GESTrackAudioTestSourceClass))
+
+
+GES_IS_TRACK_AUDIO_TEST_SOURCE
+#define GES_IS_TRACK_AUDIO_TEST_SOURCE(obj) \
+ (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GES_TYPE_TRACK_AUDIO_TEST_SOURCE))
+
+
+GES_IS_TRACK_AUDIO_TEST_SOURCE_CLASS
+#define GES_IS_TRACK_AUDIO_TEST_SOURCE_CLASS(klass) \
+ (G_TYPE_CHECK_CLASS_TYPE ((klass), GES_TYPE_TRACK_AUDIO_TEST_SOURCE))
+
+
+GES_TRACK_AUDIO_TEST_SOURCE_GET_CLASS
+#define GES_TRACK_AUDIO_TEST_SOURCE_GET_CLASS(obj) \
+ (G_TYPE_INSTANCE_GET_CLASS ((obj), GES_TYPE_TRACK_AUDIO_TEST_SOURCE, GESTrackAudioTestSourceClass))
+
+
+GESTrackAudioTestSourcePrivate
+
+
+GESTrackAudioTestSource
+struct _GESTrackAudioTestSource {
+ /*< private >*/
+ GESTrackSource parent;
+
+ gdouble freq;
+ gdouble volume;
+
+ GESTrackAudioTestSourcePrivate *priv;
+
+ /* Padding for API extension */
+ gpointer _ges_reserved[GES_PADDING];
+};
+
+
+GESTrackAudioTestSourceClass
+struct _GESTrackAudioTestSourceClass {
+ /*< private >*/
+ GESTrackSourceClass parent_class;
+
+ /* Padding for API extension */
+ gpointer _ges_reserved[GES_PADDING];
+};
+
+
+ges_track_audio_test_source_get_type
+GType
+void
+
+
+ges_track_audio_test_source_new
+GESTrackAudioTestSource*
+void
+
+
+ges_track_audio_test_source_set_freq
+void
+GESTrackAudioTestSource *self, gdouble freq
+
+
+ges_track_audio_test_source_set_volume
+void
+GESTrackAudioTestSource *self, gdouble volume
+
+
+GES_TYPE_TIMELINE_STANDARD_TRANSITION
+#define GES_TYPE_TIMELINE_STANDARD_TRANSITION ges_timeline_standard_transition_get_type()
+
+
+GES_TIMELINE_STANDARD_TRANSITION
+#define GES_TIMELINE_STANDARD_TRANSITION(obj) \
+ (G_TYPE_CHECK_INSTANCE_CAST ((obj), GES_TYPE_TIMELINE_STANDARD_TRANSITION, GESTimelineStandardTransition))
+
+
+GES_TIMELINE_STANDARD_TRANSITION_CLASS
+#define GES_TIMELINE_STANDARD_TRANSITION_CLASS(klass) \
+ (G_TYPE_CHECK_CLASS_CAST ((klass), GES_TYPE_TIMELINE_STANDARD_TRANSITION, GESTimelineStandardTransitionClass))
+
+
+GES_IS_TIMELINE_STANDARD_TRANSITION
+#define GES_IS_TIMELINE_STANDARD_TRANSITION(obj) \
+ (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GES_TYPE_TIMELINE_STANDARD_TRANSITION))
+
+
+GES_IS_TIMELINE_STANDARD_TRANSITION_CLASS
+#define GES_IS_TIMELINE_STANDARD_TRANSITION_CLASS(klass) \
+ (G_TYPE_CHECK_CLASS_TYPE ((klass), GES_TYPE_TIMELINE_STANDARD_TRANSITION))
+
+
+GES_TIMELINE_STANDARD_TRANSITION_GET_CLASS
+#define GES_TIMELINE_STANDARD_TRANSITION_GET_CLASS(obj) \
+ (G_TYPE_INSTANCE_GET_CLASS ((obj), GES_TYPE_TIMELINE_STANDARD_TRANSITION, GESTimelineStandardTransitionClass))
+
+
+GESTimelineStandardTransitionPrivate
+
+
+GESTimelineStandardTransition
+struct _GESTimelineStandardTransition {
+ /*< private >*/
+ GESTimelineTransition parent;
+
+ /*< public >*/
+ GESVideoStandardTransitionType vtype;
+
+ /*< private >*/
+ GESTimelineStandardTransitionPrivate *priv;
+
+ /* Padding for API extension */
+ gpointer _ges_reserved[GES_PADDING];
+};
+
+
+GESTimelineStandardTransitionClass
+struct _GESTimelineStandardTransitionClass {
+ /*< private >*/
+ GESTimelineTransitionClass parent_class;
+
+ /* Padding for API extension */
+ gpointer _ges_reserved[GES_PADDING];
+};
+
+
+ges_timeline_standard_transition_get_type
+GType
+void
+
+
+ges_timeline_standard_transition_new
+GESTimelineStandardTransition *
+GESVideoStandardTransitionType vtype
+
+
+ges_timeline_standard_transition_new_for_nick
+GESTimelineStandardTransition *
+char *nick
+
+
+GES_TYPE_TRACK_SOURCE
+#define GES_TYPE_TRACK_SOURCE ges_track_source_get_type()
+
+
+GES_TRACK_SOURCE
+#define GES_TRACK_SOURCE(obj) \
+ (G_TYPE_CHECK_INSTANCE_CAST ((obj), GES_TYPE_TRACK_SOURCE, GESTrackSource))
+
+
+GES_TRACK_SOURCE_CLASS
+#define GES_TRACK_SOURCE_CLASS(klass) \
+ (G_TYPE_CHECK_CLASS_CAST ((klass), GES_TYPE_TRACK_SOURCE, GESTrackSourceClass))
+
+
+GES_IS_TRACK_SOURCE
+#define GES_IS_TRACK_SOURCE(obj) \
+ (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GES_TYPE_TRACK_SOURCE))
+
+
+GES_IS_TRACK_SOURCE_CLASS
+#define GES_IS_TRACK_SOURCE_CLASS(klass) \
+ (G_TYPE_CHECK_CLASS_TYPE ((klass), GES_TYPE_TRACK_SOURCE))
+
+
+GES_TRACK_SOURCE_GET_CLASS
+#define GES_TRACK_SOURCE_GET_CLASS(obj) \
+ (G_TYPE_INSTANCE_GET_CLASS ((obj), GES_TYPE_TRACK_SOURCE, GESTrackSourceClass))
+
+
+GESTrackSourcePrivate
+
+
+GESTrackSource
+struct _GESTrackSource {
+ /*< private >*/
+ GESTrackObject parent;
+
+ GESTrackSourcePrivate *priv;
+
+ /* Padding for API extension */
+ gpointer _ges_reserved[GES_PADDING];
+};
+
+
+GESTrackSourceClass
+struct _GESTrackSourceClass {
+ /*< private >*/
+ GESTrackObjectClass parent_class;
+
+ /*< private >*/
+ /* Padding for API extension */
+ gpointer _ges_reserved[GES_PADDING];
+};
+
+
+ges_track_source_get_type
+GType
+void
+
+
+ges_play_sink_convert_frame
+GstBuffer *
+GstElement * playsink, GstCaps * caps
+
+
+GES_TYPE_TRACK
+#define GES_TYPE_TRACK ges_track_get_type()
+
+
+GES_TRACK
+#define GES_TRACK(obj) \
+ (G_TYPE_CHECK_INSTANCE_CAST ((obj), GES_TYPE_TRACK, GESTrack))
+
+
+GES_TRACK_CLASS
+#define GES_TRACK_CLASS(klass) \
+ (G_TYPE_CHECK_CLASS_CAST ((klass), GES_TYPE_TRACK, GESTrackClass))
+
+
+GES_IS_TRACK
+#define GES_IS_TRACK(obj) \
+ (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GES_TYPE_TRACK))
+
+
+GES_IS_TRACK_CLASS
+#define GES_IS_TRACK_CLASS(klass) \
+ (G_TYPE_CHECK_CLASS_TYPE ((klass), GES_TYPE_TRACK))
+
+
+GES_TRACK_GET_CLASS
+#define GES_TRACK_GET_CLASS(obj) \
+ (G_TYPE_INSTANCE_GET_CLASS ((obj), GES_TYPE_TRACK, GESTrackClass))
+
+
+GESTrackPrivate
+
+
+GESTrack
+struct _GESTrack {
+ GstBin parent;
+
+ /*< public >*/
+ /* READ-ONLY */
+ GESTrackType type;
+
+ GESTrackPrivate * priv;
+
+ /* Padding for API extension */
+ gpointer _ges_reserved[GES_PADDING];
+};
+
+
+GESTrackClass
+struct _GESTrackClass {
+ /*< private >*/
+ GstBinClass parent_class;
+
+ /* Padding for API extension */
+ gpointer _ges_reserved[GES_PADDING];
+};
+
+
+ges_track_get_type
+GType
+void
+
+
+ges_track_new
+GESTrack*
+GESTrackType type, GstCaps * caps
+
+
+ges_track_set_timeline
+void
+GESTrack * track, GESTimeline *timeline
+
+
+ges_track_set_caps
+void
+GESTrack * track, const GstCaps * caps
+
+
+ges_track_get_caps
+const GstCaps *
+GESTrack *track
+
+
+ges_track_get_timeline
+const GESTimeline *
+GESTrack *track
+
+
+ges_track_add_object
+gboolean
+GESTrack * track, GESTrackObject * object
+
+
+ges_track_remove_object
+gboolean
+GESTrack * track, GESTrackObject * object
+
+
+ges_track_video_raw_new
+GESTrack *
+void
+
+
+ges_track_audio_raw_new
+GESTrack *
+void
+
+
+GES_TYPE_TRACK_VIDEO_TEST_SOURCE
+#define GES_TYPE_TRACK_VIDEO_TEST_SOURCE ges_track_video_test_source_get_type()
+
+
+GES_TRACK_VIDEO_TEST_SOURCE
+#define GES_TRACK_VIDEO_TEST_SOURCE(obj) \
+ (G_TYPE_CHECK_INSTANCE_CAST ((obj), GES_TYPE_TRACK_VIDEO_TEST_SOURCE, GESTrackVideoTestSource))
+
+
+GES_TRACK_VIDEO_TEST_SOURCE_CLASS
+#define GES_TRACK_VIDEO_TEST_SOURCE_CLASS(klass) \
+ (G_TYPE_CHECK_CLASS_CAST ((klass), GES_TYPE_TRACK_VIDEO_TEST_SOURCE, GESTrackVideoTestSourceClass))
+
+
+GES_IS_TRACK_VIDEO_TEST_SOURCE
+#define GES_IS_TRACK_VIDEO_TEST_SOURCE(obj) \
+ (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GES_TYPE_TRACK_VIDEO_TEST_SOURCE))
+
+
+GES_IS_TRACK_VIDEO_TEST_SOURCE_CLASS
+#define GES_IS_TRACK_VIDEO_TEST_SOURCE_CLASS(klass) \
+ (G_TYPE_CHECK_CLASS_TYPE ((klass), GES_TYPE_TRACK_VIDEO_TEST_SOURCE))
+
+
+GES_TRACK_VIDEO_TEST_SOURCE_GET_CLASS
+#define GES_TRACK_VIDEO_TEST_SOURCE_GET_CLASS(obj) \
+ (G_TYPE_INSTANCE_GET_CLASS ((obj), GES_TYPE_TRACK_VIDEO_TEST_SOURCE, GESTrackVideoTestSourceClass))
+
+
+GESTrackVideoTestSourcePrivate
+
+
+GESTrackVideoTestSource
+struct _GESTrackVideoTestSource {
+ /*< private >*/
+ GESTrackSource parent;
+
+ GESVideoTestPattern pattern;
+
+ GESTrackVideoTestSourcePrivate *priv;
+
+ /* Padding for API extension */
+ gpointer _ges_reserved[GES_PADDING];
+};
+
+
+GESTrackVideoTestSourceClass
+struct _GESTrackVideoTestSourceClass {
+ GESTrackSourceClass parent_class;
+
+ /* Padding for API extension */
+ gpointer _ges_reserved[GES_PADDING];
+};
+
+
+ges_track_video_test_source_get_type
+GType
+void
+
+
+ges_track_video_test_source_new
+GESTrackVideoTestSource*
+void
+
+
+ges_track_video_test_source_set_pattern
+void
+GESTrackVideoTestSource *self, GESVideoTestPattern pattern
+
+
+GES_TYPE_TIMELINE
+#define GES_TYPE_TIMELINE ges_timeline_get_type()
+
+
+GES_TIMELINE
+#define GES_TIMELINE(obj) \
+ (G_TYPE_CHECK_INSTANCE_CAST ((obj), GES_TYPE_TIMELINE, GESTimeline))
+
+
+GES_TIMELINE_CLASS
+#define GES_TIMELINE_CLASS(klass) \
+ (G_TYPE_CHECK_CLASS_CAST ((klass), GES_TYPE_TIMELINE, GESTimelineClass))
+
+
+GES_IS_TIMELINE
+#define GES_IS_TIMELINE(obj) \
+ (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GES_TYPE_TIMELINE))
+
+
+GES_IS_TIMELINE_CLASS
+#define GES_IS_TIMELINE_CLASS(klass) \
+ (G_TYPE_CHECK_CLASS_TYPE ((klass), GES_TYPE_TIMELINE))
+
+
+GES_TIMELINE_GET_CLASS
+#define GES_TIMELINE_GET_CLASS(obj) \
+ (G_TYPE_INSTANCE_GET_CLASS ((obj), GES_TYPE_TIMELINE, GESTimelineClass))
+
+
+GESTimeline
+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];
+};
+
+
+GESTimelineClass
+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];
+};
+
+
+ges_timeline_get_type
+GType
+void
+
+
+ges_timeline_new
+GESTimeline*
+void
+
+
+ges_timeline_new_from_uri
+GESTimeline*
+gchar *uri
+
+
+ges_timeline_load_from_uri
+gboolean
+GESTimeline *timeline, gchar *uri
+
+
+ges_timeline_save_to_uri
+gboolean
+GESTimeline *timeline, gchar *uri
+
+
+ges_timeline_add_layer
+gboolean
+GESTimeline *timeline, GESTimelineLayer *layer
+
+
+ges_timeline_remove_layer
+gboolean
+GESTimeline *timeline, GESTimelineLayer *layer
+
+
+ges_timeline_add_track
+gboolean
+GESTimeline *timeline, GESTrack *track
+
+
+ges_timeline_remove_track
+gboolean
+GESTimeline *timeline, GESTrack *track
+
+
+ges_timeline_get_track_for_pad
+GESTrack *
+GESTimeline *timeline, GstPad *pad
+
+
+ges_timeline_get_tracks
+GList *
+GESTimeline *timeline
+
+
+GES_TYPE_TIMELINE_TEST_SOURCE
+#define GES_TYPE_TIMELINE_TEST_SOURCE ges_timeline_test_source_get_type()
+
+
+GES_TIMELINE_TEST_SOURCE
+#define GES_TIMELINE_TEST_SOURCE(obj) \
+ (G_TYPE_CHECK_INSTANCE_CAST ((obj), GES_TYPE_TIMELINE_TEST_SOURCE, GESTimelineTestSource))
+
+
+GES_TIMELINE_TEST_SOURCE_CLASS
+#define GES_TIMELINE_TEST_SOURCE_CLASS(klass) \
+ (G_TYPE_CHECK_CLASS_CAST ((klass), GES_TYPE_TIMELINE_TEST_SOURCE, GESTimelineTestSourceClass))
+
+
+GES_IS_TIMELINE_TEST_SOURCE
+#define GES_IS_TIMELINE_TEST_SOURCE(obj) \
+ (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GES_TYPE_TIMELINE_TEST_SOURCE))
+
+
+GES_IS_TIMELINE_TEST_SOURCE_CLASS
+#define GES_IS_TIMELINE_TEST_SOURCE_CLASS(klass) \
+ (G_TYPE_CHECK_CLASS_TYPE ((klass), GES_TYPE_TIMELINE_TEST_SOURCE))
+
+
+GES_TIMELINE_TEST_SOURCE_GET_CLASS
+#define GES_TIMELINE_TEST_SOURCE_GET_CLASS(obj) \
+ (G_TYPE_INSTANCE_GET_CLASS ((obj), GES_TYPE_TIMELINE_TEST_SOURCE, GESTimelineTestSourceClass))
+
+
+GESTimelineTestSourcePrivate
+
+
+GESTimelineTestSource
+struct _GESTimelineTestSource {
+ /*< private >*/
+ GESTimelineSource parent;
+
+ gboolean mute;
+ GESVideoTestPattern vpattern;
+ gdouble freq;
+ gdouble volume;
+
+ GESTimelineTestSourcePrivate *priv;
+
+ /* Padding for API extension */
+ gpointer _ges_reserved[GES_PADDING];
+};
+
+
+GESTimelineTestSourceClass
+struct _GESTimelineTestSourceClass {
+ /*< private >*/
+ GESTimelineSourceClass parent_class;
+
+ /* Padding for API extension */
+ gpointer _ges_reserved[GES_PADDING];
+};
+
+
+ges_timeline_test_source_get_type
+GType
+void
+
+
+ges_timeline_test_source_new
+GESTimelineTestSource*
+void
+
+
+ges_timeline_test_source_new_for_nick
+GESTimelineTestSource*
+gchar * nick
+
+
+GES_TYPE_TIMELINE_OBJECT
+#define GES_TYPE_TIMELINE_OBJECT ges_timeline_object_get_type()
+
+
+GES_TIMELINE_OBJECT
+#define GES_TIMELINE_OBJECT(obj) \
+ (G_TYPE_CHECK_INSTANCE_CAST ((obj), GES_TYPE_TIMELINE_OBJECT, GESTimelineObject))
+
+
+GES_TIMELINE_OBJECT_CLASS
+#define GES_TIMELINE_OBJECT_CLASS(klass) \
+ (G_TYPE_CHECK_CLASS_CAST ((klass), GES_TYPE_TIMELINE_OBJECT, GESTimelineObjectClass))
+
+
+GES_IS_TIMELINE_OBJECT
+#define GES_IS_TIMELINE_OBJECT(obj) \
+ (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GES_TYPE_TIMELINE_OBJECT))
+
+
+GES_IS_TIMELINE_OBJECT_CLASS
+#define GES_IS_TIMELINE_OBJECT_CLASS(klass) \
+ (G_TYPE_CHECK_CLASS_TYPE ((klass), GES_TYPE_TIMELINE_OBJECT))
+
+
+GES_TIMELINE_OBJECT_GET_CLASS
+#define GES_TIMELINE_OBJECT_GET_CLASS(obj) \
+ (G_TYPE_INSTANCE_GET_CLASS ((obj), GES_TYPE_TIMELINE_OBJECT, GESTimelineObjectClass))
+
+
+GESTimelineObjectPrivate
+
+
+GESFillTrackObjectFunc
+gboolean
+GESTimelineObject * object,
+ GESTrackObject * trobject,
+ GstElement * gnlobj
+
+
+GESCreateTrackObjectFunc
+GESTrackObject *
+GESTimelineObject * object,
+ GESTrack * track
+
+
+GESCreateTrackObjectsFunc
+gboolean
+GESTimelineObject * object,
+ GESTrack *track
+
+
+GES_TIMELINE_OBJECT_START
+#define GES_TIMELINE_OBJECT_START(obj) (((GESTimelineObject*)obj)->start)
+
+
+GES_TIMELINE_OBJECT_INPOINT
+#define GES_TIMELINE_OBJECT_INPOINT(obj) (((GESTimelineObject*)obj)->inpoint)
+
+
+GES_TIMELINE_OBJECT_DURATION
+#define GES_TIMELINE_OBJECT_DURATION(obj) (((GESTimelineObject*)obj)->duration)
+
+
+GES_TIMELINE_OBJECT_PRIORITY
+#define GES_TIMELINE_OBJECT_PRIORITY(obj) (((GESTimelineObject*)obj)->priority)
+
+
+GES_TIMELINE_OBJECT_HEIGHT
+#define GES_TIMELINE_OBJECT_HEIGHT(obj) (((GESTimelineObject*)obj)->height)
+
+
+GESTimelineObject
+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];
+};
+
+
+GESTimelineObjectClass
+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];
+};
+
+
+ges_timeline_object_get_type
+GType
+void
+
+
+ges_timeline_object_set_start
+void
+GESTimelineObject * object, guint64 start
+
+
+ges_timeline_object_set_inpoint
+void
+GESTimelineObject * object, guint64 inpoint
+
+
+ges_timeline_object_set_duration
+void
+GESTimelineObject * object, guint64 duration
+
+
+ges_timeline_object_set_priority
+void
+GESTimelineObject * object, guint priority
+
+
+ges_timeline_object_set_layer
+void
+GESTimelineObject * object, GESTimelineLayer * layer
+
+
+ges_timeline_object_create_track_object
+GESTrackObject *
+GESTimelineObject * object, GESTrack * track
+
+
+ges_timeline_object_create_track_objects
+gboolean
+GESTimelineObject * object, GESTrack * track
+
+
+ges_timeline_object_release_track_object
+gboolean
+GESTimelineObject * object, GESTrackObject * trackobject
+
+
+ges_timeline_object_fill_track_object
+gboolean
+GESTimelineObject * object, GESTrackObject * trackobj, GstElement * gnlobj
+
+
+ges_timeline_object_find_track_object
+GESTrackObject *
+GESTimelineObject * object, GESTrack * track, GType type
+
+
+ges_timeline_object_get_track_objects
+GList *
+GESTimelineObject *object
+
+
+ges_timeline_object_get_layer
+GESTimelineLayer *
+GESTimelineObject *object
+
+
+ges_timeline_object_add_track_object
+gboolean
+GESTimelineObject *object, GESTrackObject *trobj
+
+
+ges_timeline_new_audio_video
+GESTimeline *
+void
+
+
+GES_TYPE_SIMPLE_TIMELINE_LAYER
+#define GES_TYPE_SIMPLE_TIMELINE_LAYER ges_simple_timeline_layer_get_type()
+
+
+GES_SIMPLE_TIMELINE_LAYER
+#define GES_SIMPLE_TIMELINE_LAYER(obj) \
+ (G_TYPE_CHECK_INSTANCE_CAST ((obj), GES_TYPE_SIMPLE_TIMELINE_LAYER, GESSimpleTimelineLayer))
+
+
+GES_SIMPLE_TIMELINE_LAYER_CLASS
+#define GES_SIMPLE_TIMELINE_LAYER_CLASS(klass) \
+ (G_TYPE_CHECK_CLASS_CAST ((klass), GES_TYPE_SIMPLE_TIMELINE_LAYER, GESSimpleTimelineLayerClass))
+
+
+GES_IS_SIMPLE_TIMELINE_LAYER
+#define GES_IS_SIMPLE_TIMELINE_LAYER(obj) \
+ (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GES_TYPE_SIMPLE_TIMELINE_LAYER))
+
+
+GES_IS_SIMPLE_TIMELINE_LAYER_CLASS
+#define GES_IS_SIMPLE_TIMELINE_LAYER_CLASS(klass) \
+ (G_TYPE_CHECK_CLASS_TYPE ((klass), GES_TYPE_SIMPLE_TIMELINE_LAYER))
+
+
+GES_SIMPLE_TIMELINE_LAYER_GET_CLASS
+#define GES_SIMPLE_TIMELINE_LAYER_GET_CLASS(obj) \
+ (G_TYPE_INSTANCE_GET_CLASS ((obj), GES_TYPE_SIMPLE_TIMELINE_LAYER, GESSimpleTimelineLayerClass))
+
+
+GESSimpleTimelineLayerPrivate
+
+
+GESSimpleTimelineLayer
+struct _GESSimpleTimelineLayer {
+ /*< private >*/
+ GESTimelineLayer parent;
+
+ GESSimpleTimelineLayerPrivate *priv;
+
+ /* Padding for API extension */
+ gpointer _ges_reserved[GES_PADDING];
+};
+
+
+GESSimpleTimelineLayerClass
+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];
+};
+
+
+ges_simple_timeline_layer_get_type
+GType
+void
+
+
+ges_simple_timeline_layer_new
+GESSimpleTimelineLayer*
+void
+
+
+ges_simple_timeline_layer_add_object
+gboolean
+GESSimpleTimelineLayer *layer, GESTimelineObject *object, gint position
+
+
+ges_simple_timeline_layer_move_object
+gboolean
+GESSimpleTimelineLayer *layer, GESTimelineObject *object, gint newposition
+
+
+ges_simple_timeline_layer_is_valid
+gboolean
+GESSimpleTimelineLayer *layer
+
+
+ges_simple_timeline_layer_nth
+const GESTimelineObject *
+GESSimpleTimelineLayer *layer, gint position
+
+
+GES_TYPE_TRACK_IMAGE_SOURCE
+#define GES_TYPE_TRACK_IMAGE_SOURCE ges_track_image_source_get_type()
+
+
+GES_TRACK_IMAGE_SOURCE
+#define GES_TRACK_IMAGE_SOURCE(obj) \
+ (G_TYPE_CHECK_INSTANCE_CAST ((obj), GES_TYPE_TRACK_IMAGE_SOURCE, GESTrackImageSource))
+
+
+GES_TRACK_IMAGE_SOURCE_CLASS
+#define GES_TRACK_IMAGE_SOURCE_CLASS(klass) \
+ (G_TYPE_CHECK_CLASS_CAST ((klass), GES_TYPE_TRACK_IMAGE_SOURCE, GESTrackImageSourceClass))
+
+
+GES_IS_TRACK_IMAGE_SOURCE
+#define GES_IS_TRACK_IMAGE_SOURCE(obj) \
+ (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GES_TYPE_TRACK_IMAGE_SOURCE))
+
+
+GES_IS_TRACK_IMAGE_SOURCE_CLASS
+#define GES_IS_TRACK_IMAGE_SOURCE_CLASS(klass) \
+ (G_TYPE_CHECK_CLASS_TYPE ((klass), GES_TYPE_TRACK_IMAGE_SOURCE))
+
+
+GES_TRACK_IMAGE_SOURCE_GET_CLASS
+#define GES_TRACK_IMAGE_SOURCE_GET_CLASS(obj) \
+ (G_TYPE_INSTANCE_GET_CLASS ((obj), GES_TYPE_TRACK_IMAGE_SOURCE, GESTrackImageSourceClass))
+
+
+GESTrackImageSourcePrivate
+
+
+GESTrackImageSource
+struct _GESTrackImageSource {
+ /*< private >*/
+ GESTrackSource parent;
+
+ gchar *uri;
+
+ GESTrackImageSourcePrivate *priv;
+
+ /* Padding for API extension */
+ gpointer _ges_reserved[GES_PADDING];
+};
+
+
+GESTrackImageSourceClass
+struct _GESTrackImageSourceClass {
+ GESTrackSourceClass parent_class;
+
+ /* Padding for API extension */
+ gpointer _ges_reserved[GES_PADDING];
+};
+
+
+ges_track_image_source_get_type
+GType
+void
+
+
+ges_track_image_source_new
+GESTrackImageSource*
+gchar *uri
+
+
+GES_TYPE_TIMELINE_LAYER
+#define GES_TYPE_TIMELINE_LAYER ges_timeline_layer_get_type()
+
+
+GES_TIMELINE_LAYER
+#define GES_TIMELINE_LAYER(obj) \
+ (G_TYPE_CHECK_INSTANCE_CAST ((obj), GES_TYPE_TIMELINE_LAYER, GESTimelineLayer))
+
+
+GES_TIMELINE_LAYER_CLASS
+#define GES_TIMELINE_LAYER_CLASS(klass) \
+ (G_TYPE_CHECK_CLASS_CAST ((klass), GES_TYPE_TIMELINE_LAYER, GESTimelineLayerClass))
+
+
+GES_IS_TIMELINE_LAYER
+#define GES_IS_TIMELINE_LAYER(obj) \
+ (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GES_TYPE_TIMELINE_LAYER))
+
+
+GES_IS_TIMELINE_LAYER_CLASS
+#define GES_IS_TIMELINE_LAYER_CLASS(klass) \
+ (G_TYPE_CHECK_CLASS_TYPE ((klass), GES_TYPE_TIMELINE_LAYER))
+
+
+GES_TIMELINE_LAYER_GET_CLASS
+#define GES_TIMELINE_LAYER_GET_CLASS(obj) \
+ (G_TYPE_INSTANCE_GET_CLASS ((obj), GES_TYPE_TIMELINE_LAYER, GESTimelineLayerClass))
+
+
+GESTimelineLayerPrivate
+
+
+GESTimelineLayer
+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];
+};
+
+
+GESTimelineLayerClass
+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];
+};
+
+
+ges_timeline_layer_get_type
+GType
+void
+
+
+ges_timeline_layer_new
+GESTimelineLayer*
+void
+
+
+ges_timeline_layer_set_timeline
+void
+GESTimelineLayer * layer, GESTimeline * timeline
+
+
+ges_timeline_layer_add_object
+gboolean
+GESTimelineLayer * layer, GESTimelineObject * object
+
+
+ges_timeline_layer_remove_object
+gboolean
+GESTimelineLayer * layer, GESTimelineObject * object
+
+
+ges_timeline_layer_set_priority
+void
+GESTimelineLayer * layer, guint priority
+
+
+ges_timeline_layer_get_priority
+guint
+GESTimelineLayer * layer
+
+
+ges_timeline_layer_get_objects
+GList*
+GESTimelineLayer * layer
+
+
+GES_TYPE_TRACK_VIDEO_TRANSITION
+#define GES_TYPE_TRACK_VIDEO_TRANSITION ges_track_video_transition_get_type()
+
+
+GES_TRACK_VIDEO_TRANSITION
+#define GES_TRACK_VIDEO_TRANSITION(obj) \
+ (G_TYPE_CHECK_INSTANCE_CAST ((obj), GES_TYPE_TRACK_VIDEO_TRANSITION, GESTrackVideoTransition))
+
+
+GES_TRACK_VIDEO_TRANSITION_CLASS
+#define GES_TRACK_VIDEO_TRANSITION_CLASS(klass) \
+ (G_TYPE_CHECK_CLASS_CAST ((klass), GES_TYPE_TRACK_VIDEO_TRANSITION, GESTrackVideoTransitionClass))
+
+
+GES_IS_TRACK_VIDEO_TRANSITION
+#define GES_IS_TRACK_VIDEO_TRANSITION(obj) \
+ (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GES_TYPE_TRACK_VIDEO_TRANSITION))
+
+
+GES_IS_TRACK_VIDEO_TRANSITION_CLASS
+#define GES_IS_TRACK_VIDEO_TRANSITION_CLASS(klass) \
+ (G_TYPE_CHECK_CLASS_TYPE ((klass), GES_TYPE_TRACK_VIDEO_TRANSITION))
+
+
+GES_TRACK_VIDEO_TRANSITION_GET_CLASS
+#define GES_TRACK_VIDEO_TRANSITION_GET_CLASS(obj) \
+ (G_TYPE_INSTANCE_GET_CLASS ((obj), GES_TYPE_TRACK_VIDEO_TRANSITION, GESTrackVideoTransitionClass))
+
+
+GESTrackVideoTransitionPrivate
+
+
+GESTrackVideoTransition
+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];
+};
+
+
+GESTrackVideoTransitionClass
+struct _GESTrackVideoTransitionClass {
+ GESTrackTransitionClass parent_class;
+
+ /*< private >*/
+ /* Padding for API extension */
+ gpointer _ges_reserved[GES_PADDING];
+};
+
+
+ges_track_video_transition_get_type
+GType
+void
+
+
+ges_track_video_transition_set_type
+gboolean
+GESTrackVideoTransition * self, GESVideoStandardTransitionType type
+
+
+ges_track_video_transition_new
+GESTrackVideoTransition*
+void
+
+
+GES_TYPE_TIMELINE_FILE_SOURCE
+#define GES_TYPE_TIMELINE_FILE_SOURCE ges_timeline_filesource_get_type()
+
+
+GES_TIMELINE_FILE_SOURCE
+#define GES_TIMELINE_FILE_SOURCE(obj) \
+ (G_TYPE_CHECK_INSTANCE_CAST ((obj), GES_TYPE_TIMELINE_FILE_SOURCE, GESTimelineFileSource))
+
+
+GES_TIMELINE_FILE_SOURCE_CLASS
+#define GES_TIMELINE_FILE_SOURCE_CLASS(klass) \
+ (G_TYPE_CHECK_CLASS_CAST ((klass), GES_TYPE_TIMELINE_FILE_SOURCE, GESTimelineFileSourceClass))
+
+
+GES_IS_TIMELINE_FILE_SOURCE
+#define GES_IS_TIMELINE_FILE_SOURCE(obj) \
+ (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GES_TYPE_TIMELINE_FILE_SOURCE))
+
+
+GES_IS_TIMELINE_FILE_SOURCE_CLASS
+#define GES_IS_TIMELINE_FILE_SOURCE_CLASS(klass) \
+ (G_TYPE_CHECK_CLASS_TYPE ((klass), GES_TYPE_TIMELINE_FILE_SOURCE))
+
+
+GES_TIMELINE_FILE_SOURCE_GET_CLASS
+#define GES_TIMELINE_FILE_SOURCE_GET_CLASS(obj) \
+ (G_TYPE_INSTANCE_GET_CLASS ((obj), GES_TYPE_TIMELINE_FILE_SOURCE, GESTimelineFileSourceClass))
+
+
+GESTimelineFileSource
+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];
+};
+
+
+GESTimelineFileSourceClass
+struct _GESTimelineFileSourceClass {
+ /*< private >*/
+ GESTimelineSourceClass parent_class;
+
+ /* Padding for API extension */
+ gpointer _ges_reserved[GES_PADDING];
+};
+
+
+ges_timeline_filesource_get_type
+GType
+void
+
+
+ges_timeline_filesource_new
+GESTimelineFileSource*
+gchar *uri
+
+
+GES_TYPE_TRACK_OBJECT
+#define GES_TYPE_TRACK_OBJECT ges_track_object_get_type()
+
+
+GES_TRACK_OBJECT
+#define GES_TRACK_OBJECT(obj) \
+ (G_TYPE_CHECK_INSTANCE_CAST ((obj), GES_TYPE_TRACK_OBJECT, GESTrackObject))
+
+
+GES_TRACK_OBJECT_CLASS
+#define GES_TRACK_OBJECT_CLASS(klass) \
+ (G_TYPE_CHECK_CLASS_CAST ((klass), GES_TYPE_TRACK_OBJECT, GESTrackObjectClass))
+
+
+GES_IS_TRACK_OBJECT
+#define GES_IS_TRACK_OBJECT(obj) \
+ (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GES_TYPE_TRACK_OBJECT))
+
+
+GES_IS_TRACK_OBJECT_CLASS
+#define GES_IS_TRACK_OBJECT_CLASS(klass) \
+ (G_TYPE_CHECK_CLASS_TYPE ((klass), GES_TYPE_TRACK_OBJECT))
+
+
+GES_TRACK_OBJECT_GET_CLASS
+#define GES_TRACK_OBJECT_GET_CLASS(obj) \
+ (G_TYPE_INSTANCE_GET_CLASS ((obj), GES_TYPE_TRACK_OBJECT, GESTrackObjectClass))
+
+
+GES_TRACK_OBJECT_START
+#define GES_TRACK_OBJECT_START(obj) (((GESTrackObject*)obj)->start)
+
+
+GES_TRACK_OBJECT_INPOINT
+#define GES_TRACK_OBJECT_INPOINT(obj) (((GESTrackObject*)obj)->inpoint)
+
+
+GES_TRACK_OBJECT_DURATION
+#define GES_TRACK_OBJECT_DURATION(obj) (((GESTrackObject*)obj)->duration)
+
+
+GESTrackObjectPrivate
+
+
+GESTrackObject
+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];
+};
+
+
+GESTrackObjectClass
+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];
+};
+
+
+ges_track_object_get_type
+GType
+void
+
+
+ges_track_object_set_track
+gboolean
+GESTrackObject * object, GESTrack * track
+
+
+ges_track_object_get_track
+const GESTrack*
+GESTrackObject * object
+
+
+ges_track_object_set_timeline_object
+void
+GESTrackObject * object, GESTimelineObject * tlobject
+
+
+ges_track_object_get_timeline_object
+const GESTimelineObject *
+GESTrackObject* object
+
+
+ges_track_object_get_gnlobject
+GstElement *
+GESTrackObject * object
+
+
+ges_track_object_get_element
+GstElement *
+GESTrackObject * object
+
+
+ges_track_object_set_start_internal
+gboolean
+GESTrackObject * object, guint64 start
+
+
+ges_track_object_set_inpoint_internal
+gboolean
+GESTrackObject * object, guint64 inpoint
+
+
+ges_track_object_set_duration_internal
+gboolean
+GESTrackObject * object, guint64 duration
+
+
+ges_track_object_set_priority_internal
+gboolean
+GESTrackObject * object, guint32 priority
+
+
+ges_track_object_set_priority_offset_internal
+gboolean
+GESTrackObject * object, guint32 priority_offset
+
+
+ges_track_object_get_priority_offset
+guint32
+GESTrackObject *object
+
+
+ges_track_object_set_active
+gboolean
+GESTrackObject * object, gboolean active
+
+
+GES_TYPE_TIMELINE_PIPELINE
+#define GES_TYPE_TIMELINE_PIPELINE ges_timeline_pipeline_get_type()
+
+
+GES_TIMELINE_PIPELINE
+#define GES_TIMELINE_PIPELINE(obj) \
+ (G_TYPE_CHECK_INSTANCE_CAST ((obj), GES_TYPE_TIMELINE_PIPELINE, GESTimelinePipeline))
+
+
+GES_TIMELINE_PIPELINE_CLASS
+#define GES_TIMELINE_PIPELINE_CLASS(klass) \
+ (G_TYPE_CHECK_CLASS_CAST ((klass), GES_TYPE_TIMELINE_PIPELINE, GESTimelinePipelineClass))
+
+
+GES_IS_TIMELINE_PIPELINE
+#define GES_IS_TIMELINE_PIPELINE(obj) \
+ (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GES_TYPE_TIMELINE_PIPELINE))
+
+
+GES_IS_TIMELINE_PIPELINE_CLASS
+#define GES_IS_TIMELINE_PIPELINE_CLASS(klass) \
+ (G_TYPE_CHECK_CLASS_TYPE ((klass), GES_TYPE_TIMELINE_PIPELINE))
+
+
+GES_TIMELINE_PIPELINE_GET_CLASS
+#define GES_TIMELINE_PIPELINE_GET_CLASS(obj) \
+ (G_TYPE_INSTANCE_GET_CLASS ((obj), GES_TYPE_TIMELINE_PIPELINE, GESTimelinePipelineClass))
+
+
+GESTimelinePipelinePrivate
+
+
+GESPipelineFlags
+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;
+
+
+GESTimelinePipeline
+struct _GESTimelinePipeline {
+ /*< private >*/
+ GstPipeline parent;
+
+ GESTimelinePipelinePrivate *priv;
+
+ /* Padding for API extension */
+ gpointer _ges_reserved[GES_PADDING];
+};
+
+
+GESTimelinePipelineClass
+struct _GESTimelinePipelineClass {
+ /*< private >*/
+ GstPipelineClass parent_class;
+
+ /* Padding for API extension */
+ gpointer _ges_reserved[GES_PADDING];
+};
+
+
+ges_timeline_pipeline_get_type
+GType
+void
+
+
+ges_timeline_pipeline_new
+GESTimelinePipeline*
+void
+
+
+ges_timeline_pipeline_add_timeline
+gboolean
+GESTimelinePipeline * pipeline, GESTimeline * timeline
+
+
+ges_timeline_pipeline_set_render_settings
+gboolean
+GESTimelinePipeline *pipeline, gchar * output_uri, GstEncodingProfile *profile
+
+
+ges_timeline_pipeline_set_mode
+gboolean
+GESTimelinePipeline *pipeline, GESPipelineFlags mode
+
+
+ges_timeline_pipeline_get_thumbnail_buffer
+GstBuffer *
+GESTimelinePipeline *self, GstCaps *caps
+
+
+ges_timeline_pipeline_get_thumbnail_rgb24
+GstBuffer *
+GESTimelinePipeline *self, gint width, gint height
+
+
+ges_timeline_pipeline_save_thumbnail
+gboolean
+GESTimelinePipeline *self, int width, int height, gchar *format, gchar *location
+
+
+GES_TYPE_TIMELINE_OPERATION
+#define GES_TYPE_TIMELINE_OPERATION ges_timeline_operation_get_type()
+
+
+GES_TIMELINE_OPERATION
+#define GES_TIMELINE_OPERATION(obj) \
+ (G_TYPE_CHECK_INSTANCE_CAST ((obj), GES_TYPE_TIMELINE_OPERATION, GESTimelineOperation))
+
+
+GES_TIMELINE_OPERATION_CLASS
+#define GES_TIMELINE_OPERATION_CLASS(klass) \
+ (G_TYPE_CHECK_CLASS_CAST ((klass), GES_TYPE_TIMELINE_OPERATION, GESTimelineOperationClass))
+
+
+GES_IS_TIMELINE_OPERATION
+#define GES_IS_TIMELINE_OPERATION(obj) \
+ (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GES_TYPE_TIMELINE_OPERATION))
+
+
+GES_IS_TIMELINE_OPERATION_CLASS
+#define GES_IS_TIMELINE_OPERATION_CLASS(klass) \
+ (G_TYPE_CHECK_CLASS_TYPE ((klass), GES_TYPE_TIMELINE_OPERATION))
+
+
+GES_TIMELINE_OPERATION_GET_CLASS
+#define GES_TIMELINE_OPERATION_GET_CLASS(obj) \
+ (G_TYPE_INSTANCE_GET_CLASS ((obj), GES_TYPE_TIMELINE_OPERATION, GESTimelineOperationClass))
+
+
+GESTimelineOperationPrivate
+
+
+GESTimelineOperation
+struct _GESTimelineOperation {
+ /*< private >*/
+ GESTimelineObject parent;
+
+ GESTimelineOperationPrivate *priv;
+
+ /* Padding for API extension */
+ gpointer _ges_reserved[GES_PADDING];
+};
+
+
+GESTimelineOperationClass
+struct _GESTimelineOperationClass {
+ /*< private >*/
+ GESTimelineObjectClass parent_class;
+
+ /*< private >*/
+ /* Padding for API extension */
+ gpointer _ges_reserved[GES_PADDING];
+};
+
+
+ges_timeline_operation_get_type
+GType
+void
+
+
+GES_TYPE_TIMELINE_OVERLAY
+#define GES_TYPE_TIMELINE_OVERLAY ges_timeline_overlay_get_type()
+
+
+GES_TIMELINE_OVERLAY
+#define GES_TIMELINE_OVERLAY(obj) \
+ (G_TYPE_CHECK_INSTANCE_CAST ((obj), GES_TYPE_TIMELINE_OVERLAY, GESTimelineOverlay))
+
+
+GES_TIMELINE_OVERLAY_CLASS
+#define GES_TIMELINE_OVERLAY_CLASS(klass) \
+ (G_TYPE_CHECK_CLASS_CAST ((klass), GES_TYPE_TIMELINE_OVERLAY, GESTimelineOverlayClass))
+
+
+GES_IS_TIMELINE_OVERLAY
+#define GES_IS_TIMELINE_OVERLAY(obj) \
+ (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GES_TYPE_TIMELINE_OVERLAY))
+
+
+GES_IS_TIMELINE_OVERLAY_CLASS
+#define GES_IS_TIMELINE_OVERLAY_CLASS(klass) \
+ (G_TYPE_CHECK_CLASS_TYPE ((klass), GES_TYPE_TIMELINE_OVERLAY))
+
+
+GES_TIMELINE_OVERLAY_GET_CLASS
+#define GES_TIMELINE_OVERLAY_GET_CLASS(obj) \
+ (G_TYPE_INSTANCE_GET_CLASS ((obj), GES_TYPE_TIMELINE_OVERLAY, GESTimelineOverlayClass))
+
+
+GESTimelineOverlayPrivate
+
+
+GESTimelineOverlay
+struct _GESTimelineOverlay {
+ /*< private >*/
+ GESTimelineOperation parent;
+
+ GESTimelineOverlayPrivate *priv;
+
+ /* Padding for API extension */
+ gpointer _ges_reserved[GES_PADDING];
+};
+
+
+GESTimelineOverlayClass
+struct _GESTimelineOverlayClass {
+ GESTimelineOperationClass parent_class;
+
+ /*< private >*/
+ /* Padding for API extension */
+ gpointer _ges_reserved[GES_PADDING];
+};
+
+
+ges_timeline_overlay_get_type
+GType
+void
+
+
+GES_TYPE_CUSTOM_TIMELINE_SOURCE
+#define GES_TYPE_CUSTOM_TIMELINE_SOURCE ges_custom_timeline_source_get_type()
+
+
+GES_CUSTOM_TIMELINE_SOURCE
+#define GES_CUSTOM_TIMELINE_SOURCE(obj) \
+ (G_TYPE_CHECK_INSTANCE_CAST ((obj), GES_TYPE_CUSTOM_TIMELINE_SOURCE, GESCustomTimelineSource))
+
+
+GES_CUSTOM_TIMELINE_SOURCE_CLASS
+#define GES_CUSTOM_TIMELINE_SOURCE_CLASS(klass) \
+ (G_TYPE_CHECK_CLASS_CAST ((klass), GES_TYPE_CUSTOM_TIMELINE_SOURCE, GESCustomTimelineSourceClass))
+
+
+GES_IS_CUSTOM_TIMELINE_SOURCE
+#define GES_IS_CUSTOM_TIMELINE_SOURCE(obj) \
+ (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GES_TYPE_CUSTOM_TIMELINE_SOURCE))
+
+
+GES_IS_CUSTOM_TIMELINE_SOURCE_CLASS
+#define GES_IS_CUSTOM_TIMELINE_SOURCE_CLASS(klass) \
+ (G_TYPE_CHECK_CLASS_TYPE ((klass), GES_TYPE_CUSTOM_TIMELINE_SOURCE))
+
+
+GES_CUSTOM_TIMELINE_SOURCE_GET_CLASS
+#define GES_CUSTOM_TIMELINE_SOURCE_GET_CLASS(obj) \
+ (G_TYPE_INSTANCE_GET_CLASS ((obj), GES_TYPE_CUSTOM_TIMELINE_SOURCE, GESCustomTimelineSourceClass))
+
+
+GESCustomTimelineSourcePrivate
+
+
+GESFillTrackObjectUserFunc
+gboolean
+GESTimelineObject * object,
+ GESTrackObject * trobject,
+ GstElement * gnlobj,
+ gpointer user_data
+
+
+GESCustomTimelineSource
+struct _GESCustomTimelineSource {
+ GESTimelineSource parent;
+
+ /*< private >*/
+ GESCustomTimelineSourcePrivate *priv;
+
+ /* Padding for API extension */
+ gpointer _ges_reserved[GES_PADDING];
+};
+
+
+GESCustomTimelineSourceClass
+struct _GESCustomTimelineSourceClass {
+ GESTimelineSourceClass parent_class;
+
+ /*< private >*/
+ /* Padding for API extension */
+ gpointer _ges_reserved[GES_PADDING];
+};
+
+
+ges_custom_timeline_source_get_type
+GType
+void
+
+
+ges_custom_timeline_source_new
+GESCustomTimelineSource *
+GESFillTrackObjectUserFunc func, gpointer user_data
+
+
+GES_TYPE_TRACK_TITLE_SOURCE
+#define GES_TYPE_TRACK_TITLE_SOURCE ges_track_title_source_get_type()
+
+
+GES_TRACK_TITLE_SOURCE
+#define GES_TRACK_TITLE_SOURCE(obj) \
+ (G_TYPE_CHECK_INSTANCE_CAST ((obj), GES_TYPE_TRACK_TITLE_SOURCE, GESTrackTitleSource))
+
+
+GES_TRACK_TITLE_SOURCE_CLASS
+#define GES_TRACK_TITLE_SOURCE_CLASS(klass) \
+ (G_TYPE_CHECK_CLASS_CAST ((klass), GES_TYPE_TRACK_TITLE_SOURCE, GESTrackTitleSourceClass))
+
+
+GES_IS_TRACK_TITLE_SOURCE
+#define GES_IS_TRACK_TITLE_SOURCE(obj) \
+ (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GES_TYPE_TRACK_TITLE_SOURCE))
+
+
+GES_IS_TRACK_TITLE_SOURCE_CLASS
+#define GES_IS_TRACK_TITLE_SOURCE_CLASS(klass) \
+ (G_TYPE_CHECK_CLASS_TYPE ((klass), GES_TYPE_TRACK_TITLE_SOURCE))
+
+
+GES_TRACK_TITLE_SOURCE_GET_CLASS
+#define GES_TRACK_TITLE_SOURCE_GET_CLASS(obj) \
+ (G_TYPE_INSTANCE_GET_CLASS ((obj), GES_TYPE_TRACK_TITLE_SOURCE, GESTrackTitleSourceClass))
+
+
+GESTrackTitleSourcePrivate
+
+
+GESTrackTitleSource
+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];
+};
+
+
+GESTrackTitleSourceClass
+struct _GESTrackTitleSourceClass {
+ GESTrackSourceClass parent_class;
+
+ /*< private >*/
+
+ /* Padding for API extension */
+ gpointer _ges_reserved[GES_PADDING];
+};
+
+
+ges_track_title_source_get_type
+GType
+void
+
+
+ges_track_title_source_set_text
+void
+GESTrackTitleSource *self, const gchar *text
+
+
+ges_track_title_source_set_font_desc
+void
+GESTrackTitleSource *self, const gchar *font_desc
+
+
+ges_track_title_source_set_halignment
+void
+GESTrackTitleSource *self, GESTextHAlign halgn
+
+
+ges_track_title_source_set_valignment
+void
+GESTrackTitleSource *self, GESTextVAlign valign
+
+
+ges_track_title_source_new
+GESTrackTitleSource*
+void
+
+
+GES_TYPE_TRACK_AUDIO_TRANSITION
+#define GES_TYPE_TRACK_AUDIO_TRANSITION ges_track_audio_transition_get_type()
+
+
+GES_TRACK_AUDIO_TRANSITION
+#define GES_TRACK_AUDIO_TRANSITION(obj) \
+ (G_TYPE_CHECK_INSTANCE_CAST ((obj), GES_TYPE_TRACK_AUDIO_TRANSITION, GESTrackAudioTransition))
+
+
+GES_TRACK_AUDIO_TRANSITION_CLASS
+#define GES_TRACK_AUDIO_TRANSITION_CLASS(klass) \
+ (G_TYPE_CHECK_CLASS_CAST ((klass), GES_TYPE_TRACK_AUDIO_TRANSITION, GESTrackAudioTransitionClass))
+
+
+GES_IS_TRACK_AUDIO_TRANSITION
+#define GES_IS_TRACK_AUDIO_TRANSITION(obj) \
+ (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GES_TYPE_TRACK_AUDIO_TRANSITION))
+
+
+GES_IS_TRACK_AUDIO_TRANSITION_CLASS
+#define GES_IS_TRACK_AUDIO_TRANSITION_CLASS(klass) \
+ (G_TYPE_CHECK_CLASS_TYPE ((klass), GES_TYPE_TRACK_AUDIO_TRANSITION))
+
+
+GES_TRACK_AUDIO_TRANSITION_GET_CLASS
+#define GES_TRACK_AUDIO_TRANSITION_GET_CLASS(obj) \
+ (G_TYPE_INSTANCE_GET_CLASS ((obj), GES_TYPE_TRACK_AUDIO_TRANSITION, GESTrackAudioTransitionClass))
+
+
+GESTrackAudioTransitionPrivate
+
+
+GESTrackAudioTransition
+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];
+};
+
+
+GESTrackAudioTransitionClass
+struct _GESTrackAudioTransitionClass {
+ GESTrackTransitionClass parent_class;
+
+ /* Padding for API extension */
+ gpointer _ges_reserved[GES_PADDING];
+};
+
+
+ges_track_audio_transition_get_type
+GType
+void
+
+
+ges_track_audio_transition_new
+GESTrackAudioTransition*
+void
+
+
+GES_TYPE_TIMELINE_TITLE_SOURCE
+#define GES_TYPE_TIMELINE_TITLE_SOURCE ges_timeline_title_source_get_type()
+
+
+GES_TIMELINE_TITLE_SOURCE
+#define GES_TIMELINE_TITLE_SOURCE(obj) \
+ (G_TYPE_CHECK_INSTANCE_CAST ((obj), GES_TYPE_TIMELINE_TITLE_SOURCE, GESTimelineTitleSource))
+
+
+GES_TIMELINE_TITLE_SOURCE_CLASS
+#define GES_TIMELINE_TITLE_SOURCE_CLASS(klass) \
+ (G_TYPE_CHECK_CLASS_CAST ((klass), GES_TYPE_TIMELINE_TITLE_SOURCE, GESTimelineTitleSourceClass))
+
+
+GES_IS_TIMELINE_TITLE_SOURCE
+#define GES_IS_TIMELINE_TITLE_SOURCE(obj) \
+ (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GES_TYPE_TIMELINE_TITLE_SOURCE))
+
+
+GES_IS_TIMELINE_TITLE_SOURCE_CLASS
+#define GES_IS_TIMELINE_TITLE_SOURCE_CLASS(klass) \
+ (G_TYPE_CHECK_CLASS_TYPE ((klass), GES_TYPE_TIMELINE_TITLE_SOURCE))
+
+
+GES_TIMELINE_TITLE_SOURCE_GET_CLASS
+#define GES_TIMELINE_TITLE_SOURCE_GET_CLASS(obj) \
+ (G_TYPE_INSTANCE_GET_CLASS ((obj), GES_TYPE_TIMELINE_TITLE_SOURCE, GESTimelineTitleSourceClass))
+
+
+GESTimelineTitleSourcePrivate
+
+
+GESTimelineTitleSource
+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];
+};
+
+
+GESTimelineTitleSourceClass
+struct _GESTimelineTitleSourceClass {
+ /*< private >*/
+ GESTimelineSourceClass parent_class;
+
+ /* Padding for API extension */
+ gpointer _ges_reserved[GES_PADDING];
+};
+
+
+ges_timeline_title_source_get_type
+GType
+void
+
+
+ges_timeline_title_source_new
+GESTimelineTitleSource*
+void
+
+
+GES_TYPE_KEYFILE_FORMATTER
+#define GES_TYPE_KEYFILE_FORMATTER ges_keyfile_formatter_get_type()
+
+
+GES_KEYFILE_FORMATTER
+#define GES_KEYFILE_FORMATTER(obj) \
+ (G_TYPE_CHECK_INSTANCE_CAST ((obj), GES_TYPE_KEYFILE_FORMATTER, GESKeyfileFormatter))
+
+
+GES_KEYFILE_FORMATTER_CLASS
+#define GES_KEYFILE_FORMATTER_CLASS(klass) \
+ (G_TYPE_CHECK_CLASS_CAST ((klass), GES_TYPE_KEYFILE_FORMATTER, GESKeyfileFormatterClass))
+
+
+GES_IS_KEYFILE_FORMATTER
+#define GES_IS_KEYFILE_FORMATTER(obj) \
+ (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GES_TYPE_KEYFILE_FORMATTER))
+
+
+GES_IS_KEYFILE_FORMATTER_CLASS
+#define GES_IS_KEYFILE_FORMATTER_CLASS(klass) \
+ (G_TYPE_CHECK_CLASS_TYPE ((klass), GES_TYPE_KEYFILE_FORMATTER))
+
+
+GES_KEYFILE_FORMATTER_GET_CLASS
+#define GES_KEYFILE_FORMATTER_GET_CLASS(obj) \
+ (G_TYPE_INSTANCE_GET_CLASS ((obj), GES_TYPE_KEYFILE_FORMATTER, GESKeyfileFormatterClass))
+
+
+GESKeyfileFormatter
+struct _GESKeyfileFormatter {
+ /*< private >*/
+ GESFormatter parent;
+
+ /* Padding for API extension */
+ gpointer _ges_reserved[GES_PADDING];
+};
+
+
+GESKeyfileFormatterClass
+struct _GESKeyfileFormatterClass {
+ /*< private >*/
+ GESFormatterClass parent_class;
+
+ /* Padding for API extension */
+ gpointer _ges_reserved[GES_PADDING];
+};
+
+
+ges_keyfile_formatter_get_type
+GType
+void
+
+
+ges_keyfile_formatter_new
+GESKeyfileFormatter *
+void
+
+
+GES_TYPE_TRACK_FILESOURCE
+#define GES_TYPE_TRACK_FILESOURCE ges_track_filesource_get_type()
+
+
+GES_TRACK_FILESOURCE
+#define GES_TRACK_FILESOURCE(obj) \
+ (G_TYPE_CHECK_INSTANCE_CAST ((obj), GES_TYPE_TRACK_FILESOURCE, GESTrackFileSource))
+
+
+GES_TRACK_FILESOURCE_CLASS
+#define GES_TRACK_FILESOURCE_CLASS(klass) \
+ (G_TYPE_CHECK_CLASS_CAST ((klass), GES_TYPE_TRACK_FILESOURCE, GESTrackFileSourceClass))
+
+
+GES_IS_TRACK_FILESOURCE
+#define GES_IS_TRACK_FILESOURCE(obj) \
+ (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GES_TYPE_TRACK_FILESOURCE))
+
+
+GES_IS_TRACK_FILESOURCE_CLASS
+#define GES_IS_TRACK_FILESOURCE_CLASS(klass) \
+ (G_TYPE_CHECK_CLASS_TYPE ((klass), GES_TYPE_TRACK_FILESOURCE))
+
+
+GES_TRACK_FILESOURCE_GET_CLASS
+#define GES_TRACK_FILESOURCE_GET_CLASS(obj) \
+ (G_TYPE_INSTANCE_GET_CLASS ((obj), GES_TYPE_TRACK_FILESOURCE, GESTrackFileSourceClass))
+
+
+GESTrackFileSourcePrivate
+
+
+GESTrackFileSource
+struct _GESTrackFileSource {
+ /*< private >*/
+ GESTrackSource parent;
+
+ gchar *uri;
+
+ GESTrackFileSourcePrivate *priv;
+
+ /* Padding for API extension */
+ gpointer _ges_reserved[GES_PADDING];
+};
+
+
+GESTrackFileSourceClass
+struct _GESTrackFileSourceClass {
+ /*< private >*/
+ GESTrackSourceClass parent_class;
+
+ /* Padding for API extension */
+ gpointer _ges_reserved[GES_PADDING];
+};
+
+
+ges_track_filesource_get_type
+GType
+void
+
+
+ges_track_filesource_new
+GESTrackFileSource*
+gchar *uri
+
+
+GES_TYPE_TRACK_TEXT_OVERLAY
+#define GES_TYPE_TRACK_TEXT_OVERLAY ges_track_text_overlay_get_type()
+
+
+GES_TRACK_TEXT_OVERLAY
+#define GES_TRACK_TEXT_OVERLAY(obj) \
+ (G_TYPE_CHECK_INSTANCE_CAST ((obj), GES_TYPE_TRACK_TEXT_OVERLAY, GESTrackTextOverlay))
+
+
+GES_TRACK_TEXT_OVERLAY_CLASS
+#define GES_TRACK_TEXT_OVERLAY_CLASS(klass) \
+ (G_TYPE_CHECK_CLASS_CAST ((klass), GES_TYPE_TRACK_TEXT_OVERLAY, GESTrackTextOverlayClass))
+
+
+GES_IS_TRACK_TEXT_OVERLAY
+#define GES_IS_TRACK_TEXT_OVERLAY(obj) \
+ (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GES_TYPE_TRACK_TEXT_OVERLAY))
+
+
+GES_IS_TRACK_TEXT_OVERLAY_CLASS
+#define GES_IS_TRACK_TEXT_OVERLAY_CLASS(klass) \
+ (G_TYPE_CHECK_CLASS_TYPE ((klass), GES_TYPE_TRACK_TEXT_OVERLAY))
+
+
+GES_TRACK_TEXT_OVERLAY_GET_CLASS
+#define GES_TRACK_TEXT_OVERLAY_GET_CLASS(obj) \
+ (G_TYPE_INSTANCE_GET_CLASS ((obj), GES_TYPE_TRACK_TEXT_OVERLAY, GESTrackTextOverlayClass))
+
+
+GESTrackTextOverlayPrivate
+
+
+GESTrackTextOverlay
+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];
+};
+
+
+GESTrackTextOverlayClass
+struct _GESTrackTextOverlayClass {
+ GESTrackOperationClass parent_class;
+
+ /*< private >*/
+
+ /* Padding for API extension */
+ gpointer _ges_reserved[GES_PADDING];
+};
+
+
+ges_track_text_overlay_get_type
+GType
+void
+
+
+ges_track_text_overlay_set_text
+void
+GESTrackTextOverlay *self, const gchar *text
+
+
+ges_track_text_overlay_set_font_desc
+void
+GESTrackTextOverlay *self, const gchar *font_desc
+
+
+ges_track_text_overlay_set_halignment
+void
+GESTrackTextOverlay *self, GESTextHAlign halgn
+
+
+ges_track_text_overlay_set_valignment
+void
+GESTrackTextOverlay *self, GESTextVAlign valign
+
+
+ges_track_text_overlay_new
+GESTrackTextOverlay*
+void
+
diff --git a/docs/libs/ges-sections.txt b/docs/libs/ges-sections.txt
index 5560348e2c..e0181e958e 100644
--- a/docs/libs/ges-sections.txt
+++ b/docs/libs/ges-sections.txt
@@ -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
GES_TRACK_OBJECT_DURATION
GES_TRACK_OBJECT_INPOINT
diff --git a/ges/ges-timeline-file-source.c b/ges/ges-timeline-file-source.c
index 9c63610405..88e3bb7a16 100644
--- a/ges/ges-timeline-file-source.c
+++ b/ges/ges-timeline-file-source.c
@@ -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));
diff --git a/ges/ges-timeline-object.c b/ges/ges-timeline-object.c
index d4167c22eb..f35b01436c 100644
--- a/ges/ges-timeline-object.c
+++ b/ges/ges-timeline-object.c
@@ -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;
diff --git a/ges/ges-timeline-test-source.c b/ges/ges-timeline-test-source.c
index 92e3426948..af2967f696 100644
--- a/ges/ges-timeline-test-source.c
+++ b/ges/ges-timeline-test-source.c
@@ -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));
diff --git a/ges/ges-timeline-text-overlay.c b/ges/ges-timeline-text-overlay.c
index 7e89ac8c2d..c7efd2bfdb 100644
--- a/ges/ges-timeline-text-overlay.c
+++ b/ges/ges-timeline-text-overlay.c
@@ -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);
diff --git a/ges/ges-timeline-title-source.c b/ges/ges-timeline-title-source.c
index 7642ec5808..de44c24b1c 100644
--- a/ges/ges-timeline-title-source.c
+++ b/ges/ges-timeline-title-source.c
@@ -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));
diff --git a/ges/ges-timeline.c b/ges/ges-timeline.c
index 66383a63e4..5bc037ed25 100644
--- a/ges/ges-timeline.c
+++ b/ges/ges-timeline.c
@@ -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);
}
diff --git a/ges/ges-track-audio-test-source.c b/ges/ges-track-audio-test-source.c
index 9383db4dec..9f06e227cf 100644
--- a/ges/ges-track-audio-test-source.c
+++ b/ges/ges-track-audio-test-source.c
@@ -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);
}
diff --git a/ges/ges-track-audio-transition.c b/ges/ges-track-audio-transition.c
index c3696fec0a..4a4ffdbd51 100644
--- a/ges/ges-track-audio-transition.c
+++ b/ges/ges-track-audio-transition.c
@@ -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, };
diff --git a/ges/ges-track-filesource.c b/ges/ges-track-filesource.c
index 602e9431f7..db810b508b 100644
--- a/ges/ges-track-filesource.c
+++ b/ges/ges-track-filesource.c
@@ -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
diff --git a/ges/ges-track-object.c b/ges/ges-track-object.c
index 820061694d..0cf9181a30 100644
--- a/ges/ges-track-object.c
+++ b/ges/ges-track-object.c
@@ -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;
+}
diff --git a/ges/ges-track-object.h b/ges/ges-track-object.h
index a996b8d337..c996c48708 100644
--- a/ges/ges-track-object.h
+++ b/ges/ges-track-object.h
@@ -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);
diff --git a/ges/ges-track-video-test-source.c b/ges/ges-track-video-test-source.c
index ffc11a10c6..94618e85d1 100644
--- a/ges/ges-track-video-test-source.c
+++ b/ges/ges-track-video-test-source.c
@@ -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)
diff --git a/ges/ges-track-video-transition.c b/ges/ges-track-video-transition.c
index e775949793..9a214bfbdc 100644
--- a/ges/ges-track-video-transition.c
+++ b/ges/ges-track-video-transition.c
@@ -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");
diff --git a/ges/ges-track.c b/ges/ges-track.c
index ff353d88a0..474a465d84 100644
--- a/ges/ges-track.c
+++ b/ges/ges-track.c
@@ -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;
}
diff --git a/tests/check/ges/backgroundsource.c b/tests/check/ges/backgroundsource.c
index 2af344d57c..b953759820 100644
--- a/tests/check/ges/backgroundsource.c
+++ b/tests/check/ges/backgroundsource.c
@@ -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);
diff --git a/tests/check/ges/filesource.c b/tests/check/ges/filesource.c
index a33bf31139..5a7c0f3f0d 100644
--- a/tests/check/ges/filesource.c
+++ b/tests/check/ges/filesource.c
@@ -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);
diff --git a/tests/check/ges/layer.c b/tests/check/ges/layer.c
index d025f963ab..3fa40bf53c 100644
--- a/tests/check/ges/layer.c
+++ b/tests/check/ges/layer.c
@@ -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);
diff --git a/tests/check/ges/overlays.c b/tests/check/ges/overlays.c
index 422e3c377f..017b5eb677 100644
--- a/tests/check/ges/overlays.c
+++ b/tests/check/ges/overlays.c
@@ -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);
diff --git a/tests/check/ges/timelineobject.c b/tests/check/ges/timelineobject.c
index 0125326a0d..8bd98c7ab8 100644
--- a/tests/check/ges/timelineobject.c
+++ b/tests/check/ges/timelineobject.c
@@ -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);
diff --git a/tests/check/ges/titles.c b/tests/check/ges/titles.c
index 922e0b8e9e..ea36bed328 100644
--- a/tests/check/ges/titles.c
+++ b/tests/check/ges/titles.c
@@ -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);
diff --git a/tests/check/ges/transition.c b/tests/check/ges/transition.c
index 4c184b1916..53ba6d3a65 100644
--- a/tests/check/ges/transition.c
+++ b/tests/check/ges/transition.c
@@ -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");
diff --git a/tests/examples/overlays.c b/tests/examples/overlays.c
index 8f16dbf5d1..6ecb53b4f0 100644
--- a/tests/examples/overlays.c
+++ b/tests/examples/overlays.c
@@ -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);
diff --git a/tests/examples/test1.c b/tests/examples/test1.c
index e6252932a1..f2e450963b 100644
--- a/tests/examples/test1.c
+++ b/tests/examples/test1.c
@@ -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
diff --git a/tests/examples/text_properties.c b/tests/examples/text_properties.c
index ab63e9e001..0aa93a080a 100644
--- a/tests/examples/text_properties.c
+++ b/tests/examples/text_properties.c
@@ -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);
diff --git a/tests/examples/transition.c b/tests/examples/transition.c
index c7184f86a2..bdbace00ce 100644
--- a/tests/examples/transition.c
+++ b/tests/examples/transition.c
@@ -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);
diff --git a/tools/ges-launch.c b/tools/ges-launch.c
index 053237ed91..aef61a49b5 100644
--- a/tools/ges-launch.c
+++ b/tools/ges-launch.c
@@ -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);