GESTrackObject: Hide more variables and provide accessors for them

This commit is contained in:
Edward Hervey 2010-12-16 15:00:46 +01:00
parent 4028baaa5b
commit 8ca6f66f4c
31 changed files with 4507 additions and 145 deletions

View file

@ -0,0 +1,646 @@
<INCLUDE>ges/ges.h</INCLUDE>
<SECTION>
<FILE>ges-common</FILE>
<TITLE>Initialization</TITLE>
ges_init
<SUBSECTION Standard>
GES_PADDING
</SECTION>
<SECTION>
<FILE>ges-utils</FILE>
<TITLE>Utilities</TITLE>
</SECTION>
<SECTION>
<FILE>ges-enums</FILE>
<TITLE>GES Enums</TITLE>
GESVideoStandardTransitionType
GESTrackType
GESTextHAlign
DEFAULT_HALIGNMENT
GESTextVAlign
DEFAULT_VALIGNMENT
GESVideoTestPattern
<SUBSECTION Standard>
GES_TYPE_TRACK_TYPE
ges_track_type_get_type
GES_TEXT_HALIGN_TYPE
ges_text_halign_get_type
GES_TEXT_VALIGN_TYPE
ges_text_valign_get_type
GES_VIDEO_TEST_PATTERN_TYPE
ges_video_test_pattern_get_type
GES_VIDEO_STANDARD_TRANSITION_TYPE_TYPE
ges_video_standard_transition_type_get_type
</SECTION>
<SECTION>
<FILE>ges-track</FILE>
<TITLE>GESTrack</TITLE>
GESTrack
ges_track_audio_raw_new
ges_track_video_raw_new
ges_track_new
ges_track_add_object
ges_track_remove_object
ges_track_set_caps
ges_track_get_caps
<SUBSECTION Standard>
GESTrackClass
GESTrackPrivate
ges_track_set_timeline
ges_track_get_timeline
ges_track_get_type
GES_IS_TRACK
GES_IS_TRACK_CLASS
GES_TRACK
GES_TRACK_CLASS
GES_TRACK_GET_CLASS
GES_TYPE_TRACK
</SECTION>
<SECTION>
<FILE>ges-track-object</FILE>
<TITLE>GESTrackObject</TITLE>
GESTrackObject
GESTrackObjectClass
ges_track_object_set_active
ges_track_object_get_track
ges_track_object_get_timeline_object
ges_track_object_get_gnlobject
ges_track_object_get_element
<SUBSECTION Standard>
GES_TRACK_OBJECT_DURATION
GES_TRACK_OBJECT_INPOINT
GES_TRACK_OBJECT_START
ges_track_object_get_priority_offset
GESTrackObjectPrivate
ges_track_object_set_timeline_object
ges_track_object_set_track
ges_track_object_set_duration_internal
ges_track_object_set_inpoint_internal
fges_track_object_set_priority_internal
ges_track_object_set_priority_offset_internal
ges_track_object_set_start_internal
ges_track_object_get_type
GES_IS_TRACK_OBJECT
GES_IS_TRACK_OBJECT_CLASS
GES_TRACK_OBJECT
GES_TRACK_OBJECT_CLASS
GES_TRACK_OBJECT_GET_CLASS
GES_TYPE_TRACK_OBJECT
</SECTION>
<SECTION>
<FILE>ges-track-source</FILE>
<TITLE>GESTrackSource</TITLE>
GESTrackSource
GESTrackSourceClass
<SUBSECTION Standard>
GESTrackSourcePrivate
GES_TRACK_SOURCE
GES_TRACK_SOURCE_CLASS
GES_TRACK_SOURCE_GET_CLASS
GES_TYPE_TRACK_SOURCE
GES_IS_TRACK_SOURCE
GES_IS_TRACK_SOURCE_CLASS
ges_track_source_get_type
</SECTION>
<SECTION>
<FILE>ges-track-operation</FILE>
<TITLE>GESTrackOperation</TITLE>
GESTrackOperation
GESTrackOperationClass
<SUBSECTION Standard>
GESTrackOperationPrivate
ges_track_operation_get_type
GES_IS_TRACK_OPERATION
GES_IS_TRACK_OPERATION_CLASS
GES_TRACK_OPERATION
GES_TRACK_OPERATION_CLASS
GES_TRACK_OPERATION_GET_CLASS
GES_TYPE_TRACK_OPERATION
</SECTION>
<SECTION>
<FILE>ges-track-filesource</FILE>
<TITLE>GESTrackFileSource</TITLE>
GESTrackFileSource
ges_track_filesource_new
<SUBSECTION Standard>
GESTrackFileSourceClass
GESTrackFileSourcePrivate
GES_TRACK_FILESOURCE
GES_TRACK_FILESOURCE_CLASS
GES_TRACK_FILESOURCE_GET_CLASS
GES_TYPE_TRACK_FILESOURCE
GES_IS_TRACK_FILESOURCE
GES_IS_TRACK_FILESOURCE_CLASS
ges_track_filesource_get_type
</SECTION>
<SECTION>
<FILE>ges-track-image-source</FILE>
<TITLE>GESTrackImageSource</TITLE>
GESTrackImageSource
ges_track_image_source_new
<SUBSECTION Standard>
GESTrackImageSourcePrivate
GES_IS_TRACK_IMAGE_SOURCE
GES_IS_TRACK_IMAGE_SOURCE_CLASS
GES_TRACK_IMAGE_SOURCE
GES_TRACK_IMAGE_SOURCE_CLASS
GES_TRACK_IMAGE_SOURCE_GET_CLASS
GES_TYPE_TRACK_IMAGE_SOURCE
GESTrackImageSourceClass
ges_track_image_source_get_type
</SECTION>
<SECTION>
<FILE>ges-track-transition</FILE>
<TITLE>GESTrackTransition</TITLE>
GESTrackTransition
GESTrackTransitionClass
<SUBSECTION Standard>
GESTrackTransitionPrivate
GES_IS_TRACK_TRANSITION
GES_IS_TRACK_TRANSITION_CLASS
GES_TRACK_TRANSITION
GES_TRACK_TRANSITION_CLASS
GES_TRACK_TRANSITION_GET_CLASS
GES_TYPE_TRACK_TRANSITION
ges_track_transition_get_type
</SECTION>
<SECTION>
<FILE>ges-track-audio-transition</FILE>
<TITLE>GESTrackAudioTransition</TITLE>
GESTrackAudioTransition
ges_track_audio_transition_new
<SUBSECTION Standard>
GESTrackAudioTransitionClass
GESTrackAudioTransitionPrivate
GES_IS_TRACK_AUDIO_TRANSITION
ges_track_audio_transition_get_type
GES_IS_TRACK_AUDIO_TRANSITION_CLASS
GES_TRACK_AUDIO_TRANSITION
GES_TRACK_AUDIO_TRANSITION_CLASS
GES_TRACK_AUDIO_TRANSITION_GET_CLASS
GES_TYPE_TRACK_AUDIO_TRANSITION
</SECTION>
<SECTION>
<FILE>ges-track-video-transition</FILE>
<TITLE>GESTrackVideoTransition</TITLE>
GESTrackVideoTransition
ges_track_video_transition_new
ges_track_video_transition_set_type
<SUBSECTION Standard>
GESTrackVideoTransitionClass
GESTrackVideoTransitionPrivate
ges_track_video_transition_get_type
GES_IS_TRACK_VIDEO_TRANSITION
GES_IS_TRACK_VIDEO_TRANSITION_CLASS
GES_TRACK_VIDEO_TRANSITION
GES_TRACK_VIDEO_TRANSITION_CLASS
GES_TRACK_VIDEO_TRANSITION_GET_CLASS
GES_TYPE_TRACK_VIDEO_TRANSITION
</SECTION>
<SECTION>
<FILE>ges-timeline</FILE>
<TITLE>GESTimeline</TITLE>
GESTimeline
ges_timeline_new
ges_timeline_new_audio_video
ges_timeline_new_from_uri
ges_timeline_add_layer
ges_timeline_remove_layer
ges_timeline_add_track
ges_timeline_remove_track
ges_timeline_load_from_uri
ges_timeline_save_to_uri
<SUBSECTION usage>
ges_timeline_get_tracks
ges_timeline_get_track_for_pad
<SUBSECTION Standard>
GESTimelineClass
ges_timeline_get_type
GES_IS_TIMELINE
GES_IS_TIMELINE_CLASS
GES_TIMELINE
GES_TIMELINE_CLASS
GES_TIMELINE_GET_CLASS
GES_TYPE_TIMELINE
</SECTION>
<SECTION>
<FILE>ges-timeline-layer</FILE>
<TITLE>GESTimelineLayer</TITLE>
GESTimelineLayer
GESTimelineLayerClass
ges_timeline_layer_add_object
ges_timeline_layer_new
ges_timeline_layer_remove_object
ges_timeline_layer_set_priority
ges_timeline_layer_get_priority
ges_timeline_layer_get_objects
<SUBSECTION Standard>
GESTimelineLayerPrivate
ges_timeline_layer_set_timeline
ges_timeline_layer_get_type
GES_IS_TIMELINE_LAYER
GES_IS_TIMELINE_LAYER_CLASS
GES_TIMELINE_LAYER
GES_TIMELINE_LAYER_CLASS
GES_TIMELINE_LAYER_GET_CLASS
GES_TYPE_TIMELINE_LAYER
</SECTION>
<SECTION>
<FILE>ges-timeline-object</FILE>
<TITLE>GESTimelineObject</TITLE>
GESTimelineObject
GESTimelineObjectClass
GESCreateTrackObjectFunc
GESCreateTrackObjectsFunc
GESFillTrackObjectFunc
ges_timeline_object_set_inpoint
ges_timeline_object_set_start
ges_timeline_object_set_duration
ges_timeline_object_get_layer
ges_timeline_object_find_track_object
ges_timeline_object_add_track_object
<SUBSECTION Standard>
GES_TIMELINE_OBJECT_DURATION
GES_TIMELINE_OBJECT_INPOINT
GES_TIMELINE_OBJECT_PRIORITY
GES_TIMELINE_OBJECT_START
GES_TIMELINE_OBJECT_HEIGHT
ges_timeline_object_create_track_objects
ges_timeline_object_create_track_object
ges_timeline_object_fill_track_object
ges_timeline_object_release_track_object
ges_timeline_object_get_track_objects
ges_timeline_object_set_layer
ges_timeline_object_set_priority
GESTimelineObjectPrivate
GES_IS_TIMELINE_OBJECT
GES_IS_TIMELINE_OBJECT_CLASS
GES_TIMELINE_OBJECT
GES_TIMELINE_OBJECT_CLASS
GES_TIMELINE_OBJECT_GET_CLASS
GES_TYPE_TIMELINE_OBJECT
ges_timeline_object_get_type
</SECTION>
<SECTION>
<FILE>ges-timeline-pipeline</FILE>
<TITLE>GESTimelinePipeline</TITLE>
GESTimelinePipeline
GESPipelineFlags
ges_timeline_pipeline_new
ges_timeline_pipeline_add_timeline
ges_timeline_pipeline_set_mode
ges_timeline_pipeline_set_render_settings
ges_timeline_pipeline_get_thumbnail_buffer
ges_timeline_pipeline_get_thumbnail_rgb24
ges_timeline_pipeline_save_thumbnail
<SUBSECTION Standard>
GESTimelinePipelineClass
GESTimelinePipelinePrivate
ges_play_sink_convert_frame
ges_timeline_pipeline_get_type
GES_TIMELINE_PIPELINE
GES_TIMELINE_PIPELINE_CLASS
GES_TIMELINE_PIPELINE_GET_CLASS
GES_IS_TIMELINE_PIPELINE
GES_IS_TIMELINE_PIPELINE_CLASS
GES_TYPE_TIMELINE_PIPELINE
</SECTION>
<SECTION>
<FILE>ges-timeline-source</FILE>
<TITLE>GESTimelineSource</TITLE>
GESTimelineSource
GESTimelineSourceClass
<SUBSECTION Standard>
GESTimelineSourcePrivate
ges_timeline_source_get_type
GES_IS_TIMELINE_SOURCE
GES_IS_TIMELINE_SOURCE_CLASS
GES_TIMELINE_SOURCE
GES_TIMELINE_SOURCE_CLASS
GES_TIMELINE_SOURCE_GET_CLASS
GES_TYPE_TIMELINE_SOURCE
</SECTION>
<SECTION>
<FILE>ges-timeline-filesource</FILE>
<TITLE>GESTimelineFileSource</TITLE>
GESTimelineFileSource
ges_timeline_filesource_new
<SUBSECTION Standard>
GESTimelineFileSourceClass
ges_timeline_filesource_get_type
GES_IS_TIMELINE_FILE_SOURCE
GES_IS_TIMELINE_FILE_SOURCE_CLASS
GES_TIMELINE_FILE_SOURCE
GES_TIMELINE_FILE_SOURCE_CLASS
GES_TIMELINE_FILE_SOURCE_GET_CLASS
GES_TYPE_TIMELINE_FILE_SOURCE
</SECTION>
<SECTION>
<FILE>ges-timeline-operation</FILE>
<TITLE>GESTimelineOperation</TITLE>
GESTimelineOperation
<SUBSECTION Standard>
GESTimelineOperationClass
GESTimelineOperationPrivate
GES_TIMELINE_OPERATION
GES_IS_TIMELINE_OPERATION
GES_TYPE_TIMELINE_OPERATION
ges_timeline_operation_get_type
GES_TIMELINE_OPERATION_CLASS
GES_IS_TIMELINE_OPERATION_CLASS
GES_TIMELINE_OPERATION_GET_CLASS
</SECTION>
<SECTION>
<FILE>ges-timeline-overlay</FILE>
<TITLE>GESTimelineOverlay</TITLE>
GESTimelineOverlay
GESTimelineOverlayClass
<SUBSECTION Standard>
GESTimelineOverlayPrivate
ges_timeline_overlay_get_type
GES_IS_TIMELINE_OVERLAY
GES_IS_TIMELINE_OVERLAY_CLASS
GES_TIMELINE_OVERLAY
GES_TIMELINE_OVERLAY_CLASS
GES_TIMELINE_OVERLAY_GET_CLASS
GES_TYPE_TIMELINE_OVERLAY
</SECTION>
<SECTION>
<FILE>ges-timeline-transition</FILE>
<TITLE>GESTimelineTransition</TITLE>
GESTimelineTransition
<SUBSECTION Standard>
GESTimelineTransitionClass
GESTimelineTransitionPrivate
GES_TIMELINE_TRANSITION
GES_IS_TIMELINE_TRANSITION
GES_TYPE_TIMELINE_TRANSITION
ges_timeline_transition_get_type
GES_TIMELINE_TRANSITION_CLASS
GES_IS_TIMELINE_TRANSITION_CLASS
GES_TIMELINE_TRANSITION_GET_CLASS
</SECTION>
<SECTION>
<FILE>ges-timeline-standard-transition</FILE>
<TITLE>GESTimelineStandardTransition</TITLE>
GESTimelineStandardTransition
ges_timeline_standard_transition_new
ges_timeline_standard_transition_new_for_nick
<SUBSECTION Standard>
GESTimelineStandardTransitionClass
GESTimelineStandardTransitionPrivate
GES_IS_TIMELINE_STANDARD_TRANSITION
GES_IS_TIMELINE_STANDARD_TRANSITION_CLASS
GES_TIMELINE_STANDARD_TRANSITION
GES_TIMELINE_STANDARD_TRANSITION_CLASS
GES_TIMELINE_STANDARD_TRANSITION_GET_CLASS
GES_TYPE_TIMELINE_STANDARD_TRANSITION
ges_timeline_standard_transition_get_type
</SECTION>
<SECTION>
<FILE>ges-custom-timeline-source</FILE>
<TITLE>GESCustomTimelineSource</TITLE>
GESCustomTimelineSource
GESFillTrackObjectUserFunc
ges_custom_timeline_source_new
<SUBSECTION Standard>
GESCustomTimelineSourceClass
ges_custom_timeline_source_get_type
GESCustomTimelineSourcePrivate
GES_CUSTOM_TIMELINE_SOURCE
GES_CUSTOM_TIMELINE_SOURCE_CLASS
GES_CUSTOM_TIMELINE_SOURCE_GET_CLASS
GES_IS_CUSTOM_TIMELINE_SOURCE
GES_IS_CUSTOM_TIMELINE_SOURCE_CLASS
GES_TYPE_CUSTOM_TIMELINE_SOURCE
</SECTION>
<SECTION>
<FILE>ges-simple-timeline-layer</FILE>
<TITLE>GESSimpleTimelineLayer</TITLE>
GESSimpleTimelineLayer
ges_simple_timeline_layer_new
ges_simple_timeline_layer_add_object
ges_simple_timeline_layer_move_object
ges_simple_timeline_layer_nth
ges_simple_timeline_layer_is_valid
<SUBSECTION Standard>
GESSimpleTimelineLayerClass
ges_simple_timeline_layer_get_type
GESSimpleTimelineLayerPrivate
GES_IS_SIMPLE_TIMELINE_LAYER
GES_IS_SIMPLE_TIMELINE_LAYER_CLASS
GES_SIMPLE_TIMELINE_LAYER
GES_SIMPLE_TIMELINE_LAYER_CLASS
GES_SIMPLE_TIMELINE_LAYER_GET_CLASS
GES_TYPE_SIMPLE_TIMELINE_LAYER
</SECTION>
<SECTION>
<FILE>ges-timeline-test-source</FILE>
<TITLE>GESTimelineTestSource</TITLE>
GESTimelineTestSource
GESTimelineTestSourceClass
ges_timeline_test_source_new
ges_timeline_test_source_new_for_nick
<SUBSECTION Standard>
GESTimelineTestSourcePrivate
ges_timeline_test_source_get_type
GES_TYPE_TIMELINE_TEST_SOURCE
GES_IS_TIMELINE_TEST_SOURCE
GES_IS_TIMELINE_TEST_SOURCE_CLASS
GES_TIMELINE_TEST_SOURCE
GES_TIMELINE_TEST_SOURCE_CLASS
GES_TIMELINE_TEST_SOURCE_GET_CLASS
</SECTION>
<SECTION>
<FILE>ges-timeline-title-source</FILE>
<TITLE>GESTimelineTitleSource</TITLE>
GESTimelineTitleSource
ges_timeline_title_source_new
<SUBSECTION Standard>
GESTimelineTitleSourceClass
GESTimelineTitleSourcePrivate
ges_timeline_title_source_get_type
GES_IS_TIMELINE_TITLE_SOURCE
GES_IS_TIMELINE_TITLE_SOURCE_CLASS
GES_TIMELINE_TITLE_SOURCE
GES_TIMELINE_TITLE_SOURCE_CLASS
GES_TIMELINE_TITLE_SOURCE_GET_CLASS
</SECTION>
<SECTION>
<FILE>ges-timeline-text-overlay</FILE>
<TITLE>GESTimelineTextOverlay</TITLE>
GESTimelineTextOverlay
ges_timeline_text_overlay_new
<SUBSECTION Standard>
GESTimelineTextOverlayClass
GESTimelineTextOverlayPrivate
ges_timeline_text_overlay_get_type
GES_IS_TIMELINE_TEXT_OVERLAY
GES_IS_TIMELINE_TEXT_OVERLAY_CLASS
GES_TIMELINE_TEXT_OVERLAY
GES_TIMELINE_TEXT_OVERLAY_CLASS
GES_TIMELINE_TEXT_OVERLAY_GET_CLASS
GES_TYPE_TIMELINE_TEXT_OVERLAY
</SECTION>
<SECTION>
<FILE>ges-track-video-test-source</FILE>
<TITLE>GESTrackVideoTestSource</TITLE>
GESTrackVideoTestSource
ges_track_video_test_source_new
ges_track_video_test_source_set_pattern
<SUBSECTION Standard>
GESTrackVideoTestSourceClass
GESTrackVideoTestSourcePrivate
ges_track_video_test_source_get_type
GES_IS_TRACK_VIDEO_TEST_SOURCE
GES_IS_TRACK_VIDEO_TEST_SOURCE_CLASS
GES_TRACK_VIDEO_TEST_SOURCE
GES_TRACK_VIDEO_TEST_SOURCE_CLASS
GES_TRACK_VIDEO_TEST_SOURCE_GET_CLASS
GES_TYPE_TRACK_VIDEO_TEST_SOURCE
</SECTION>
<SECTION>
<FILE>ges-track-audio-test-source</FILE>
<TITLE>GESTrackAudioTestSource</TITLE>
GESTrackAudioTestSource
ges_track_audio_test_source_new
ges_track_audio_test_source_set_freq
ges_track_audio_test_source_set_volume
<SUBSECTION Standard>
GESTrackAudioTestSourceClass
GESTrackAudioTestSourcePrivate
ges_track_audio_test_source_get_type
GES_TRACK_AUDIO_TEST_SOURCE
GES_TRACK_AUDIO_TEST_SOURCE_CLASS
GES_TRACK_AUDIO_TEST_SOURCE_GET_CLASS
GES_TYPE_TRACK_AUDIO_TEST_SOURCE
GES_IS_TRACK_AUDIO_TEST_SOURCE
GES_IS_TRACK_AUDIO_TEST_SOURCE_CLASS
</SECTION>
<SECTION>
<FILE>ges-track-title-source</FILE>
<TITLE>GESTrackTitleSource</TITLE>
GESTrackTitleSource
ges_track_title_source_set_text
ges_track_title_source_set_font_desc
ges_track_title_source_set_halignment
ges_track_title_source_set_valignment
ges_track_title_source_new
<SUBSECTION Standard>
GESTrackTitleSourceClass
GESTrackTitleSourcePrivate
ges_track_title_source_get_type
GES_TRACK_TITLE_SOURCE
GES_TRACK_TITLE_SOURCE_CLASS
GES_TRACK_TITLE_SOURCE_GET_CLASS
GES_TYPE_TIMELINE_TITLE_SOURCE
GES_TYPE_TRACK_TITLE_SOURCE
GES_IS_TRACK_TITLE_SOURCE
GES_IS_TRACK_TITLE_SOURCE_CLASS
</SECTION>
<SECTION>
<FILE>ges-track-text-overlay</FILE>
<TITLE>GESTrackTextOverlay</TITLE>
GESTrackTextOverlay
ges_track_text_overlay_new
ges_track_text_overlay_set_font_desc
ges_track_text_overlay_set_halignment
ges_track_text_overlay_set_text
ges_track_text_overlay_set_valignment
<SUBSECTION Standard>
GESTrackTextOverlayClass
GESTrackTextOverlayPrivate
ges_track_text_overlay_get_type
GES_IS_TRACK_TEXT_OVERLAY
GES_IS_TRACK_TEXT_OVERLAY_CLASS
GES_TRACK_TEXT_OVERLAY
GES_TRACK_TEXT_OVERLAY_CLASS
GES_TRACK_TEXT_OVERLAY_GET_CLASS
GES_TYPE_TRACK_TEXT_OVERLAY
</SECTION>
<SECTION>
<FILE>ges-formatter</FILE>
<TITLE>GESFormatter</TITLE>
GESFormatter
GESFormatterClass
GESFormatterLoadFromURIMethod
GESFormatterSaveToURIMethod
ges_default_formatter_new
ges_formatter_load_from_uri
ges_formatter_save_to_uri
ges_formatter_new_for_uri
ges_formatter_can_load_uri
ges_formatter_can_save_uri
<SUBSECTION Standard>
ges_formatter_get_type
GES_FORMATTER
GES_FORMATTER_CLASS
GES_FORMATTER_GET_CLASS
GES_IS_FORMATTER
GES_IS_FORMATTER_CLASS
GES_TYPE_FORMATTER
<SUBSECTION Private>
ges_formatter_load
ges_formatter_save
ges_formatter_set_data
ges_formatter_clear_data
ges_formatter_get_data
GESFormatterCanLoadURIMethod
GESFormatterCanSaveURIMethod
GESFormatterLoadMethod
GESFormatterSaveMethod
</SECTION>
<SECTION>
<FILE>ges-keyfile-formatter</FILE>
<TITLE>GESKeyFileFormatter</TITLE>
GESKeyfileFormatter
ges_keyfile_formatter_new
<SUBSECTION Standard>
GESKeyfileFormatterClass
GES_IS_KEYFILE_FORMATTER
GES_IS_KEYFILE_FORMATTER_CLASS
GES_KEYFILE_FORMATTER
GES_KEYFILE_FORMATTER_CLASS
GES_KEYFILE_FORMATTER_GET_CLASS
GES_TYPE_KEYFILE_FORMATTER
ges_keyfile_formatter_get_type
</SECTION>

View file

@ -0,0 +1 @@
bilboed@hostia.28194:1287103486

View file

@ -0,0 +1,690 @@
<SECTION>
<FILE>ges-track-transition</FILE>
<TITLE>GESTrackTransition</TITLE>
GESTrackTransitionPrivate
GESTrackTransition
GESTrackTransitionClass
<SUBSECTION Standard>
GES_TRACK_TRANSITION
GES_IS_TRACK_TRANSITION
GES_TYPE_TRACK_TRANSITION
ges_track_transition_get_type
GES_TRACK_TRANSITION_CLASS
GES_IS_TRACK_TRANSITION_CLASS
GES_TRACK_TRANSITION_GET_CLASS
</SECTION>
<SECTION>
<FILE>ges-timeline-source</FILE>
<TITLE>GESTimelineSource</TITLE>
GESTimelineSourcePrivate
GESTimelineSource
GESTimelineSourceClass
<SUBSECTION Standard>
GES_TIMELINE_SOURCE
GES_IS_TIMELINE_SOURCE
GES_TYPE_TIMELINE_SOURCE
ges_timeline_source_get_type
GES_TIMELINE_SOURCE_CLASS
GES_IS_TIMELINE_SOURCE_CLASS
GES_TIMELINE_SOURCE_GET_CLASS
</SECTION>
<SECTION>
<FILE>ges-formatter</FILE>
<TITLE>GESFormatter</TITLE>
GESFormatter
GESFormatterCanLoadURIMethod
GESFormatterCanSaveURIMethod
GESFormatterLoadFromURIMethod
GESFormatterSaveToURIMethod
GESFormatterSaveMethod
GESFormatterLoadMethod
GESFormatterClass
ges_formatter_new_for_uri
ges_default_formatter_new
ges_formatter_can_load_uri
ges_formatter_can_save_uri
ges_formatter_load_from_uri
ges_formatter_save_to_uri
ges_formatter_load
ges_formatter_save
ges_formatter_set_data
ges_formatter_get_data
ges_formatter_clear_data
<SUBSECTION Standard>
GES_FORMATTER
GES_IS_FORMATTER
GES_TYPE_FORMATTER
ges_formatter_get_type
GES_FORMATTER_CLASS
GES_IS_FORMATTER_CLASS
GES_FORMATTER_GET_CLASS
</SECTION>
<SECTION>
<FILE>ges-track-operation</FILE>
<TITLE>GESTrackOperation</TITLE>
GESTrackOperationPrivate
GESTrackOperation
GESTrackOperationClass
<SUBSECTION Standard>
GES_TRACK_OPERATION
GES_IS_TRACK_OPERATION
GES_TYPE_TRACK_OPERATION
ges_track_operation_get_type
GES_TRACK_OPERATION_CLASS
GES_IS_TRACK_OPERATION_CLASS
GES_TRACK_OPERATION_GET_CLASS
</SECTION>
<SECTION>
<FILE>ges-timeline-text-overlay</FILE>
<TITLE>GESTimelineTextOverlay</TITLE>
GESTimelineTextOverlayPrivate
GESTimelineTextOverlay
GESTimelineTextOverlayClass
ges_timeline_text_overlay_new
<SUBSECTION Standard>
GES_TIMELINE_TEXT_OVERLAY
GES_IS_TIMELINE_TEXT_OVERLAY
GES_TYPE_TIMELINE_TEXT_OVERLAY
ges_timeline_text_overlay_get_type
GES_TIMELINE_TEXT_OVERLAY_CLASS
GES_IS_TIMELINE_TEXT_OVERLAY_CLASS
GES_TIMELINE_TEXT_OVERLAY_GET_CLASS
</SECTION>
<SECTION>
<FILE>ges-timeline-transition</FILE>
<TITLE>GESTimelineTransition</TITLE>
GESTimelineTransitionPrivate
GESTimelineTransition
GESTimelineTransitionClass
<SUBSECTION Standard>
GES_TIMELINE_TRANSITION
GES_IS_TIMELINE_TRANSITION
GES_TYPE_TIMELINE_TRANSITION
ges_timeline_transition_get_type
GES_TIMELINE_TRANSITION_CLASS
GES_IS_TIMELINE_TRANSITION_CLASS
GES_TIMELINE_TRANSITION_GET_CLASS
</SECTION>
<SECTION>
<FILE>ges-track-audio-test-source</FILE>
<TITLE>GESTrackAudioTestSource</TITLE>
GESTrackAudioTestSourcePrivate
GESTrackAudioTestSource
GESTrackAudioTestSourceClass
ges_track_audio_test_source_new
ges_track_audio_test_source_set_freq
ges_track_audio_test_source_set_volume
<SUBSECTION Standard>
GES_TRACK_AUDIO_TEST_SOURCE
GES_IS_TRACK_AUDIO_TEST_SOURCE
GES_TYPE_TRACK_AUDIO_TEST_SOURCE
ges_track_audio_test_source_get_type
GES_TRACK_AUDIO_TEST_SOURCE_CLASS
GES_IS_TRACK_AUDIO_TEST_SOURCE_CLASS
GES_TRACK_AUDIO_TEST_SOURCE_GET_CLASS
</SECTION>
<SECTION>
<FILE>ges-timeline-standard-transition</FILE>
<TITLE>GESTimelineStandardTransition</TITLE>
GESTimelineStandardTransitionPrivate
GESTimelineStandardTransition
GESTimelineStandardTransitionClass
ges_timeline_standard_transition_new
ges_timeline_standard_transition_new_for_nick
<SUBSECTION Standard>
GES_TIMELINE_STANDARD_TRANSITION
GES_IS_TIMELINE_STANDARD_TRANSITION
GES_TYPE_TIMELINE_STANDARD_TRANSITION
ges_timeline_standard_transition_get_type
GES_TIMELINE_STANDARD_TRANSITION_CLASS
GES_IS_TIMELINE_STANDARD_TRANSITION_CLASS
GES_TIMELINE_STANDARD_TRANSITION_GET_CLASS
</SECTION>
<SECTION>
<FILE>ges-track-source</FILE>
<TITLE>GESTrackSource</TITLE>
GESTrackSourcePrivate
GESTrackSource
GESTrackSourceClass
<SUBSECTION Standard>
GES_TRACK_SOURCE
GES_IS_TRACK_SOURCE
GES_TYPE_TRACK_SOURCE
ges_track_source_get_type
GES_TRACK_SOURCE_CLASS
GES_IS_TRACK_SOURCE_CLASS
GES_TRACK_SOURCE_GET_CLASS
</SECTION>
<SECTION>
<FILE>ges-track</FILE>
<TITLE>GESTrack</TITLE>
GESTrackPrivate
GESTrack
GESTrackClass
ges_track_new
ges_track_set_timeline
ges_track_set_caps
ges_track_get_caps
ges_track_get_timeline
ges_track_add_object
ges_track_remove_object
ges_track_video_raw_new
ges_track_audio_raw_new
<SUBSECTION Standard>
GES_TRACK
GES_IS_TRACK
GES_TYPE_TRACK
ges_track_get_type
GES_TRACK_CLASS
GES_IS_TRACK_CLASS
GES_TRACK_GET_CLASS
</SECTION>
<SECTION>
<FILE>ges-track-video-test-source</FILE>
<TITLE>GESTrackVideoTestSource</TITLE>
GESTrackVideoTestSourcePrivate
GESTrackVideoTestSource
GESTrackVideoTestSourceClass
ges_track_video_test_source_new
ges_track_video_test_source_set_pattern
<SUBSECTION Standard>
GES_TRACK_VIDEO_TEST_SOURCE
GES_IS_TRACK_VIDEO_TEST_SOURCE
GES_TYPE_TRACK_VIDEO_TEST_SOURCE
ges_track_video_test_source_get_type
GES_TRACK_VIDEO_TEST_SOURCE_CLASS
GES_IS_TRACK_VIDEO_TEST_SOURCE_CLASS
GES_TRACK_VIDEO_TEST_SOURCE_GET_CLASS
</SECTION>
<SECTION>
<FILE>ges-timeline</FILE>
<TITLE>GESTimeline</TITLE>
GESTimeline
GESTimelineClass
ges_timeline_new
ges_timeline_new_from_uri
ges_timeline_load_from_uri
ges_timeline_save_to_uri
ges_timeline_add_layer
ges_timeline_remove_layer
ges_timeline_add_track
ges_timeline_remove_track
ges_timeline_get_track_for_pad
ges_timeline_get_tracks
<SUBSECTION Standard>
GES_TIMELINE
GES_IS_TIMELINE
GES_TYPE_TIMELINE
ges_timeline_get_type
GES_TIMELINE_CLASS
GES_IS_TIMELINE_CLASS
GES_TIMELINE_GET_CLASS
</SECTION>
<SECTION>
<FILE>ges-timeline-test-source</FILE>
<TITLE>GESTimelineTestSource</TITLE>
GESTimelineTestSourcePrivate
GESTimelineTestSource
GESTimelineTestSourceClass
ges_timeline_test_source_new
ges_timeline_test_source_new_for_nick
<SUBSECTION Standard>
GES_TIMELINE_TEST_SOURCE
GES_IS_TIMELINE_TEST_SOURCE
GES_TYPE_TIMELINE_TEST_SOURCE
ges_timeline_test_source_get_type
GES_TIMELINE_TEST_SOURCE_CLASS
GES_IS_TIMELINE_TEST_SOURCE_CLASS
GES_TIMELINE_TEST_SOURCE_GET_CLASS
</SECTION>
<SECTION>
<FILE>ges-timeline-object</FILE>
<TITLE>GESTimelineObject</TITLE>
GESTimelineObjectPrivate
GESFillTrackObjectFunc
GESCreateTrackObjectFunc
GESCreateTrackObjectsFunc
GES_TIMELINE_OBJECT_START
GES_TIMELINE_OBJECT_INPOINT
GES_TIMELINE_OBJECT_DURATION
GES_TIMELINE_OBJECT_PRIORITY
GES_TIMELINE_OBJECT_HEIGHT
GESTimelineObject
GESTimelineObjectClass
ges_timeline_object_set_start
ges_timeline_object_set_inpoint
ges_timeline_object_set_duration
ges_timeline_object_set_priority
ges_timeline_object_set_layer
ges_timeline_object_create_track_object
ges_timeline_object_create_track_objects
ges_timeline_object_release_track_object
ges_timeline_object_fill_track_object
ges_timeline_object_find_track_object
ges_timeline_object_get_track_objects
ges_timeline_object_get_layer
ges_timeline_object_add_track_object
<SUBSECTION Standard>
GES_TIMELINE_OBJECT
GES_IS_TIMELINE_OBJECT
GES_TYPE_TIMELINE_OBJECT
ges_timeline_object_get_type
GES_TIMELINE_OBJECT_CLASS
GES_IS_TIMELINE_OBJECT_CLASS
GES_TIMELINE_OBJECT_GET_CLASS
</SECTION>
<SECTION>
<FILE>ges-simple-timeline-layer</FILE>
<TITLE>GESSimpleTimelineLayer</TITLE>
GESSimpleTimelineLayerPrivate
GESSimpleTimelineLayer
GESSimpleTimelineLayerClass
ges_simple_timeline_layer_new
ges_simple_timeline_layer_add_object
ges_simple_timeline_layer_move_object
ges_simple_timeline_layer_is_valid
ges_simple_timeline_layer_nth
<SUBSECTION Standard>
GES_SIMPLE_TIMELINE_LAYER
GES_IS_SIMPLE_TIMELINE_LAYER
GES_TYPE_SIMPLE_TIMELINE_LAYER
ges_simple_timeline_layer_get_type
GES_SIMPLE_TIMELINE_LAYER_CLASS
GES_IS_SIMPLE_TIMELINE_LAYER_CLASS
GES_SIMPLE_TIMELINE_LAYER_GET_CLASS
</SECTION>
<SECTION>
<FILE>ges-track-image-source</FILE>
<TITLE>GESTrackImageSource</TITLE>
GESTrackImageSourcePrivate
GESTrackImageSource
GESTrackImageSourceClass
ges_track_image_source_new
<SUBSECTION Standard>
GES_TRACK_IMAGE_SOURCE
GES_IS_TRACK_IMAGE_SOURCE
GES_TYPE_TRACK_IMAGE_SOURCE
ges_track_image_source_get_type
GES_TRACK_IMAGE_SOURCE_CLASS
GES_IS_TRACK_IMAGE_SOURCE_CLASS
GES_TRACK_IMAGE_SOURCE_GET_CLASS
</SECTION>
<SECTION>
<FILE>ges-timeline-layer</FILE>
<TITLE>GESTimelineLayer</TITLE>
GESTimelineLayerPrivate
GESTimelineLayer
GESTimelineLayerClass
ges_timeline_layer_new
ges_timeline_layer_set_timeline
ges_timeline_layer_add_object
ges_timeline_layer_remove_object
ges_timeline_layer_set_priority
ges_timeline_layer_get_priority
ges_timeline_layer_get_objects
<SUBSECTION Standard>
GES_TIMELINE_LAYER
GES_IS_TIMELINE_LAYER
GES_TYPE_TIMELINE_LAYER
ges_timeline_layer_get_type
GES_TIMELINE_LAYER_CLASS
GES_IS_TIMELINE_LAYER_CLASS
GES_TIMELINE_LAYER_GET_CLASS
</SECTION>
<SECTION>
<FILE>ges-track-video-transition</FILE>
<TITLE>GESTrackVideoTransition</TITLE>
GESTrackVideoTransitionPrivate
GESTrackVideoTransition
GESTrackVideoTransitionClass
ges_track_video_transition_set_type
ges_track_video_transition_new
<SUBSECTION Standard>
GES_TRACK_VIDEO_TRANSITION
GES_IS_TRACK_VIDEO_TRANSITION
GES_TYPE_TRACK_VIDEO_TRANSITION
ges_track_video_transition_get_type
GES_TRACK_VIDEO_TRANSITION_CLASS
GES_IS_TRACK_VIDEO_TRANSITION_CLASS
GES_TRACK_VIDEO_TRANSITION_GET_CLASS
</SECTION>
<SECTION>
<FILE>ges-timeline-file-source</FILE>
<TITLE>GESTimelineFileSource</TITLE>
GESTimelineFileSource
GESTimelineFileSourceClass
ges_timeline_filesource_new
<SUBSECTION Standard>
GES_TIMELINE_FILE_SOURCE
GES_IS_TIMELINE_FILE_SOURCE
GES_TYPE_TIMELINE_FILE_SOURCE
ges_timeline_filesource_get_type
GES_TIMELINE_FILE_SOURCE_CLASS
GES_IS_TIMELINE_FILE_SOURCE_CLASS
GES_TIMELINE_FILE_SOURCE_GET_CLASS
</SECTION>
<SECTION>
<FILE>ges-track-object</FILE>
<TITLE>GESTrackObject</TITLE>
GES_TRACK_OBJECT_START
GES_TRACK_OBJECT_INPOINT
GES_TRACK_OBJECT_DURATION
GESTrackObjectPrivate
GESTrackObject
GESTrackObjectClass
ges_track_object_set_track
ges_track_object_set_timeline_object
ges_track_object_set_start_internal
ges_track_object_set_inpoint_internal
ges_track_object_set_duration_internal
ges_track_object_set_priority_internal
ges_track_object_set_priority_offset_internal
ges_track_object_get_priority_offset
ges_track_object_set_active
<SUBSECTION Standard>
GES_TRACK_OBJECT
GES_IS_TRACK_OBJECT
GES_TYPE_TRACK_OBJECT
ges_track_object_get_type
GES_TRACK_OBJECT_CLASS
GES_IS_TRACK_OBJECT_CLASS
GES_TRACK_OBJECT_GET_CLASS
</SECTION>
<SECTION>
<FILE>ges-timeline-pipeline</FILE>
<TITLE>GESTimelinePipeline</TITLE>
GESTimelinePipelinePrivate
GESPipelineFlags
GESTimelinePipeline
GESTimelinePipelineClass
ges_timeline_pipeline_new
ges_timeline_pipeline_add_timeline
ges_timeline_pipeline_set_render_settings
ges_timeline_pipeline_set_mode
ges_timeline_pipeline_get_thumbnail_buffer
ges_timeline_pipeline_get_thumbnail_rgb24
ges_timeline_pipeline_save_thumbnail
<SUBSECTION Standard>
GES_TIMELINE_PIPELINE
GES_IS_TIMELINE_PIPELINE
GES_TYPE_TIMELINE_PIPELINE
ges_timeline_pipeline_get_type
GES_TIMELINE_PIPELINE_CLASS
GES_IS_TIMELINE_PIPELINE_CLASS
GES_TIMELINE_PIPELINE_GET_CLASS
</SECTION>
<SECTION>
<FILE>ges-timeline-operation</FILE>
<TITLE>GESTimelineOperation</TITLE>
GESTimelineOperationPrivate
GESTimelineOperation
GESTimelineOperationClass
<SUBSECTION Standard>
GES_TIMELINE_OPERATION
GES_IS_TIMELINE_OPERATION
GES_TYPE_TIMELINE_OPERATION
ges_timeline_operation_get_type
GES_TIMELINE_OPERATION_CLASS
GES_IS_TIMELINE_OPERATION_CLASS
GES_TIMELINE_OPERATION_GET_CLASS
</SECTION>
<SECTION>
<FILE>ges-timeline-overlay</FILE>
<TITLE>GESTimelineOverlay</TITLE>
GESTimelineOverlayPrivate
GESTimelineOverlay
GESTimelineOverlayClass
<SUBSECTION Standard>
GES_TIMELINE_OVERLAY
GES_IS_TIMELINE_OVERLAY
GES_TYPE_TIMELINE_OVERLAY
ges_timeline_overlay_get_type
GES_TIMELINE_OVERLAY_CLASS
GES_IS_TIMELINE_OVERLAY_CLASS
GES_TIMELINE_OVERLAY_GET_CLASS
</SECTION>
<SECTION>
<FILE>ges-custom-timeline-source</FILE>
<TITLE>GESCustomTimelineSource</TITLE>
GESCustomTimelineSourcePrivate
GESFillTrackObjectUserFunc
GESCustomTimelineSource
GESCustomTimelineSourceClass
ges_custom_timeline_source_new
<SUBSECTION Standard>
GES_CUSTOM_TIMELINE_SOURCE
GES_IS_CUSTOM_TIMELINE_SOURCE
GES_TYPE_CUSTOM_TIMELINE_SOURCE
ges_custom_timeline_source_get_type
GES_CUSTOM_TIMELINE_SOURCE_CLASS
GES_IS_CUSTOM_TIMELINE_SOURCE_CLASS
GES_CUSTOM_TIMELINE_SOURCE_GET_CLASS
</SECTION>
<SECTION>
<FILE>ges-track-title-source</FILE>
<TITLE>GESTrackTitleSource</TITLE>
GESTrackTitleSourcePrivate
GESTrackTitleSource
GESTrackTitleSourceClass
ges_track_title_source_set_text
ges_track_title_source_set_font_desc
ges_track_title_source_set_halignment
ges_track_title_source_set_valignment
ges_track_title_source_new
<SUBSECTION Standard>
GES_TRACK_TITLE_SOURCE
GES_IS_TRACK_TITLE_SOURCE
GES_TYPE_TRACK_TITLE_SOURCE
ges_track_title_source_get_type
GES_TRACK_TITLE_SOURCE_CLASS
GES_IS_TRACK_TITLE_SOURCE_CLASS
GES_TRACK_TITLE_SOURCE_GET_CLASS
</SECTION>
<SECTION>
<FILE>ges-track-audio-transition</FILE>
<TITLE>GESTrackAudioTransition</TITLE>
GESTrackAudioTransitionPrivate
GESTrackAudioTransition
GESTrackAudioTransitionClass
ges_track_audio_transition_new
<SUBSECTION Standard>
GES_TRACK_AUDIO_TRANSITION
GES_IS_TRACK_AUDIO_TRANSITION
GES_TYPE_TRACK_AUDIO_TRANSITION
ges_track_audio_transition_get_type
GES_TRACK_AUDIO_TRANSITION_CLASS
GES_IS_TRACK_AUDIO_TRANSITION_CLASS
GES_TRACK_AUDIO_TRANSITION_GET_CLASS
</SECTION>
<SECTION>
<FILE>ges-timeline-title-source</FILE>
<TITLE>GESTimelineTitleSource</TITLE>
GESTimelineTitleSourcePrivate
GESTimelineTitleSource
GESTimelineTitleSourceClass
ges_timeline_title_source_new
<SUBSECTION Standard>
GES_TIMELINE_TITLE_SOURCE
GES_IS_TIMELINE_TITLE_SOURCE
GES_TYPE_TIMELINE_TITLE_SOURCE
ges_timeline_title_source_get_type
GES_TIMELINE_TITLE_SOURCE_CLASS
GES_IS_TIMELINE_TITLE_SOURCE_CLASS
GES_TIMELINE_TITLE_SOURCE_GET_CLASS
</SECTION>
<SECTION>
<FILE>ges-keyfile-formatter</FILE>
<TITLE>GESKeyfileFormatter</TITLE>
GESKeyfileFormatter
GESKeyfileFormatterClass
ges_keyfile_formatter_new
<SUBSECTION Standard>
GES_KEYFILE_FORMATTER
GES_IS_KEYFILE_FORMATTER
GES_TYPE_KEYFILE_FORMATTER
ges_keyfile_formatter_get_type
GES_KEYFILE_FORMATTER_CLASS
GES_IS_KEYFILE_FORMATTER_CLASS
GES_KEYFILE_FORMATTER_GET_CLASS
</SECTION>
<SECTION>
<FILE>ges-track-filesource</FILE>
<TITLE>GESTrackFileSource</TITLE>
GESTrackFileSourcePrivate
GESTrackFileSource
GESTrackFileSourceClass
ges_track_filesource_new
<SUBSECTION Standard>
GES_TRACK_FILESOURCE
GES_IS_TRACK_FILESOURCE
GES_TYPE_TRACK_FILESOURCE
ges_track_filesource_get_type
GES_TRACK_FILESOURCE_CLASS
GES_IS_TRACK_FILESOURCE_CLASS
GES_TRACK_FILESOURCE_GET_CLASS
</SECTION>
<SECTION>
<FILE>ges-track-text-overlay</FILE>
<TITLE>GESTrackTextOverlay</TITLE>
GESTrackTextOverlayPrivate
GESTrackTextOverlay
GESTrackTextOverlayClass
ges_track_text_overlay_set_text
ges_track_text_overlay_set_font_desc
ges_track_text_overlay_set_halignment
ges_track_text_overlay_set_valignment
ges_track_text_overlay_new
<SUBSECTION Standard>
GES_TRACK_TEXT_OVERLAY
GES_IS_TRACK_TEXT_OVERLAY
GES_TYPE_TRACK_TEXT_OVERLAY
ges_track_text_overlay_get_type
GES_TRACK_TEXT_OVERLAY_CLASS
GES_IS_TRACK_TEXT_OVERLAY_CLASS
GES_TRACK_TEXT_OVERLAY_GET_CLASS
</SECTION>
<SECTION>
<FILE>ges-types</FILE>
GES_PADDING
GESCustomTimelineSource
GESCustomTimelineSourceClass
GESSimpleTimelineLayer
GESSimpleTimelineLayerClass
GESTimeline
GESTimelineClass
GESTimelineLayer
GESTimelineLayerClass
GESTimelineObject
GESTimelineObjectClass
GESTimelineOperation
GESTimelineOperationClass
GESTimelinePipeline
GESTimelinePipelineClass
GESTimelineSource
GESTimelineSourceClass
GESTimelineFileSource
GESTimelineFileSourceClass
GESTimelineTransition
GESTimelineTransitionClass
GESTimelineStandardTransition
GESTimelineStandardTransitionClass
GESTimelineTestSource
GESTimelineTestSourceClass
GESTimelineTitleSource
GESTimelineTitleSourceClass
GESTimelineOverlay
GESTimelineOverlayClass
GESTimelineTextOverlay
GESTimelineTextOverlayClass
GESTrack
GESTrackClass
GESTrackObject
GESTrackObjectClass
GESTrackSource
GESTrackSourceClass
GESTrackOperation
GESTrackOperationClass
GESTrackFileSource
GESTrackFileSourceClass
GESTrackImageSource
GESTrackImageSourceClass
GESTrackTransition
GESTrackTransitionClass
GESTrackAudioTransition
GESTrackVideoTransition
GESTrackVideoTestSource
GESTrackAudioTestSource
GESTrackTitleSource
GESTrackTextOverlay
GESFormatter
GESFormatterClass
GESKeyfileFormatter
GESKeyfileFormatterClass
</SECTION>
<SECTION>
<FILE>ges</FILE>
ges_init
</SECTION>
<SECTION>
<FILE>ges-enums</FILE>
GES_TYPE_TRACK_TYPE
ges_track_type_get_type
GESTrackType
GESVideoStandardTransitionType
GES_VIDEO_STANDARD_TRANSITION_TYPE_TYPE
ges_video_standard_transition_type_get_type
GESTextVAlign
DEFAULT_VALIGNMENT
GES_TEXT_VALIGN_TYPE
ges_text_valign_get_type
GESTextHAlign
DEFAULT_HALIGNMENT
GES_TEXT_HALIGN_TYPE
ges_text_halign_get_type
GESVideoTestPattern
GES_VIDEO_TEST_PATTERN_TYPE
ges_video_test_pattern_get_type
</SECTION>
<SECTION>
<FILE>ges-screenshot</FILE>
ges_play_sink_convert_frame
</SECTION>
<SECTION>
<FILE>ges-utils</FILE>
ges_timeline_new_audio_video
</SECTION>

2919
docs/libs/ges-decl.txt.bak Normal file

File diff suppressed because it is too large Load diff

View file

@ -68,6 +68,10 @@ GES_TYPE_TRACK
GESTrackObject GESTrackObject
GESTrackObjectClass GESTrackObjectClass
ges_track_object_set_active ges_track_object_set_active
ges_track_object_get_track
ges_track_object_get_timeline_object
ges_track_object_get_gnlobject
ges_track_object_get_element
<SUBSECTION Standard> <SUBSECTION Standard>
GES_TRACK_OBJECT_DURATION GES_TRACK_OBJECT_DURATION
GES_TRACK_OBJECT_INPOINT GES_TRACK_OBJECT_INPOINT

View file

@ -211,7 +211,7 @@ ges_timeline_filesource_set_mute (GESTimelineFileSource * self, gboolean mute)
for (tmp = trackobjects; tmp; tmp = tmp->next) { for (tmp = trackobjects; tmp; tmp = tmp->next) {
GESTrackObject *trackobject = (GESTrackObject *) tmp->data; 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); ges_track_object_set_active (trackobject, !mute);
g_object_unref (GES_TRACK_OBJECT (tmp->data)); g_object_unref (GES_TRACK_OBJECT (tmp->data));

View file

@ -540,9 +540,12 @@ ges_timeline_object_find_track_object (GESTimelineObject * object,
if (G_LIKELY (object->priv->trackobjects)) { if (G_LIKELY (object->priv->trackobjects)) {
GList *tmp; GList *tmp;
GESTrackObject *otmp;
for (tmp = object->priv->trackobjects; tmp; tmp = g_list_next (tmp)) for (tmp = object->priv->trackobjects; tmp; tmp = g_list_next (tmp)) {
if (GES_TRACK_OBJECT (tmp->data)->track == track) { otmp = (GESTrackObject *) tmp->data;
if (ges_track_object_get_track (otmp) == track) {
if ((type != G_TYPE_NONE) && !G_TYPE_CHECK_INSTANCE_TYPE (tmp->data, if ((type != G_TYPE_NONE) && !G_TYPE_CHECK_INSTANCE_TYPE (tmp->data,
type)) type))
continue; continue;
@ -551,6 +554,7 @@ ges_timeline_object_find_track_object (GESTimelineObject * object,
g_object_ref (ret); g_object_ref (ret);
break; break;
} }
}
} }
return ret; return ret;

View file

@ -202,7 +202,7 @@ ges_timeline_test_source_set_mute (GESTimelineTestSource * self, gboolean mute)
for (tmp = trackobjects; tmp; tmp = tmp->next) { for (tmp = trackobjects; tmp; tmp = tmp->next) {
GESTrackObject *trackobject = (GESTrackObject *) tmp->data; 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); ges_track_object_set_active (trackobject, !mute);
g_object_unref (GES_TRACK_OBJECT (tmp->data)); g_object_unref (GES_TRACK_OBJECT (tmp->data));

View file

@ -230,7 +230,7 @@ ges_timeline_text_overlay_set_text (GESTimelineTextOverlay * self,
for (tmp = trackobjects; tmp; tmp = tmp->next) { for (tmp = trackobjects; tmp; tmp = tmp->next) {
GESTrackObject *trackobject = (GESTrackObject *) tmp->data; 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 ges_track_text_overlay_set_text (GES_TRACK_TEXT_OVERLAY
(trackobject), self->text); (trackobject), self->text);
@ -257,7 +257,7 @@ ges_timeline_text_overlay_set_font_desc (GESTimelineTextOverlay * self,
for (tmp = trackobjects; tmp; tmp = tmp->next) { for (tmp = trackobjects; tmp; tmp = tmp->next) {
GESTrackObject *trackobject = (GESTrackObject *) tmp->data; 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 ges_track_text_overlay_set_font_desc (GES_TRACK_TEXT_OVERLAY
(trackobject), self->font_desc); (trackobject), self->font_desc);
@ -282,7 +282,7 @@ ges_timeline_text_overlay_set_halign (GESTimelineTextOverlay * self,
for (tmp = trackobjects; tmp; tmp = tmp->next) { for (tmp = trackobjects; tmp; tmp = tmp->next) {
GESTrackObject *trackobject = (GESTrackObject *) tmp->data; 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 ges_track_text_overlay_set_halignment (GES_TRACK_TEXT_OVERLAY
(trackobject), self->halign); (trackobject), self->halign);
@ -307,7 +307,7 @@ ges_timeline_text_overlay_set_valign (GESTimelineTextOverlay * self,
for (tmp = trackobjects; tmp; tmp = tmp->next) { for (tmp = trackobjects; tmp; tmp = tmp->next) {
GESTrackObject *trackobject = (GESTrackObject *) tmp->data; 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 ges_track_text_overlay_set_valignment (GES_TRACK_TEXT_OVERLAY
(trackobject), self->valign); (trackobject), self->valign);

View file

@ -356,7 +356,7 @@ ges_timeline_title_source_set_mute (GESTimelineTitleSource * self,
for (tmp = trackobjects; tmp; tmp = tmp->next) { for (tmp = trackobjects; tmp; tmp = tmp->next) {
GESTrackObject *trackobject = (GESTrackObject *) tmp->data; 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); ges_track_object_set_active (trackobject, !mute);
g_object_unref (GES_TRACK_OBJECT (tmp->data)); g_object_unref (GES_TRACK_OBJECT (tmp->data));

View file

@ -564,10 +564,10 @@ layer_object_removed_cb (GESTimelineLayer * layer, GESTimelineObject * object,
GST_DEBUG ("Trying to remove TrackObject %p", trobj); GST_DEBUG ("Trying to remove TrackObject %p", trobj);
if (G_LIKELY (g_list_find_custom (timeline->tracks, if (G_LIKELY (g_list_find_custom (timeline->tracks,
(gconstpointer) trobj->track, ges_track_object_get_track (trobj),
(GCompareFunc) custom_find_track))) { (GCompareFunc) custom_find_track))) {
GST_DEBUG ("Belongs to one of the tracks we control"); 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); ges_timeline_object_release_track_object (object, trobj);
} }

View file

@ -116,10 +116,9 @@ void
ges_track_audio_test_source_set_freq (GESTrackAudioTestSource * self, ges_track_audio_test_source_set_freq (GESTrackAudioTestSource * self,
gdouble freq) gdouble freq)
{ {
GstElement *element; GstElement *element = ges_track_object_get_element (GES_TRACK_OBJECT (self));
self->freq = freq; self->freq = freq;
element = ((GESTrackObject *) self)->element;
if (element) if (element)
g_object_set (element, "freq", (gdouble) freq, NULL); g_object_set (element, "freq", (gdouble) freq, NULL);
} }
@ -128,10 +127,9 @@ void
ges_track_audio_test_source_set_volume (GESTrackAudioTestSource * self, ges_track_audio_test_source_set_volume (GESTrackAudioTestSource * self,
gdouble volume) gdouble volume)
{ {
GstElement *element; GstElement *element = ges_track_object_get_element (GES_TRACK_OBJECT (self));
self->volume = volume; self->volume = volume;
element = ((GESTrackObject *) self)->element;
if (element) if (element)
g_object_set (element, "volume", (gdouble) volume, NULL); g_object_set (element, "volume", (gdouble) volume, NULL);
} }

View file

@ -249,7 +249,7 @@ ges_track_audio_transition_duration_changed (GESTrackObject * object,
guint64 duration) guint64 duration)
{ {
GESTrackAudioTransition *self; GESTrackAudioTransition *self;
GstElement *gnlobj = object->gnlobject; GstElement *gnlobj = ges_track_object_get_gnlobject (object);
GValue zero = { 0, }; GValue zero = { 0, };
GValue one = { 0, }; GValue one = { 0, };

View file

@ -85,14 +85,15 @@ ges_track_filesource_dispose (GObject * object)
G_OBJECT_CLASS (ges_track_filesource_parent_class)->dispose (object); G_OBJECT_CLASS (ges_track_filesource_parent_class)->dispose (object);
} }
static gboolean static GstElement *
ges_track_filesource_create_gnl_object (GESTrackObject * object) ges_track_filesource_create_gnl_object (GESTrackObject * object)
{ {
object->gnlobject = gst_element_factory_make ("gnlurisource", NULL); GstElement *gnlobject;
g_object_set (object->gnlobject, "uri", ((GESTrackFileSource *) object)->uri,
NULL);
return TRUE; gnlobject = gst_element_factory_make ("gnlurisource", NULL);
g_object_set (gnlobject, "uri", ((GESTrackFileSource *) object)->uri, NULL);
return gnlobject;
} }
static void static void

View file

@ -55,6 +55,22 @@ struct _GESTrackObjectPrivate
/* cache the base priority and offset */ /* cache the base priority and offset */
guint32 base_priority; guint32 base_priority;
guint32 priority_offset; 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 enum
@ -68,8 +84,8 @@ enum
PROP_ACTIVE PROP_ACTIVE
}; };
static gboolean static GstElement *ges_track_object_create_gnl_object_func (GESTrackObject *
ges_track_object_create_gnl_object_func (GESTrackObject * object); object);
void gnlobject_start_cb (GstElement * gnlobject, GParamSpec * arg void gnlobject_start_cb (GstElement * gnlobject, GParamSpec * arg
G_GNUC_UNUSED, GESTrackObject * obj); G_GNUC_UNUSED, GESTrackObject * obj);
@ -225,7 +241,7 @@ ges_track_object_class_init (GESTrackObjectClass * klass)
/** /**
* GESTrackObject:priority-offset * 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_object_class_install_property (object_class, PROP_PRIORITY_OFFSET,
g_param_spec_uint ("priority-offset", "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); GES_TYPE_TRACK_OBJECT, GESTrackObjectPrivate);
/* Sane default values */ /* Sane default values */
self->pending_start = 0; self->priv->pending_start = 0;
self->pending_inpoint = 0; self->priv->pending_inpoint = 0;
self->pending_duration = GST_SECOND; self->priv->pending_duration = GST_SECOND;
self->pending_gnl_priority = 1; self->priv->pending_gnl_priority = 1;
self->pending_active = TRUE; self->priv->pending_active = TRUE;
} }
gboolean gboolean
@ -265,13 +281,13 @@ ges_track_object_set_start_internal (GESTrackObject * object, guint64 start)
GST_DEBUG ("object:%p, start:%" GST_TIME_FORMAT, GST_DEBUG ("object:%p, start:%" GST_TIME_FORMAT,
object, GST_TIME_ARGS (start)); object, GST_TIME_ARGS (start));
if (object->gnlobject != NULL) { if (object->priv->gnlobject != NULL) {
if (G_UNLIKELY (start == object->start)) if (G_UNLIKELY (start == object->start))
return FALSE; return FALSE;
g_object_set (object->gnlobject, "start", start, NULL); g_object_set (object->priv->gnlobject, "start", start, NULL);
} else } else
object->pending_start = start; object->priv->pending_start = start;
return TRUE; return TRUE;
}; };
@ -282,13 +298,13 @@ ges_track_object_set_inpoint_internal (GESTrackObject * object, guint64 inpoint)
GST_DEBUG ("object:%p, inpoint:%" GST_TIME_FORMAT, GST_DEBUG ("object:%p, inpoint:%" GST_TIME_FORMAT,
object, GST_TIME_ARGS (inpoint)); object, GST_TIME_ARGS (inpoint));
if (object->gnlobject != NULL) { if (object->priv->gnlobject != NULL) {
if (G_UNLIKELY (inpoint == object->inpoint)) if (G_UNLIKELY (inpoint == object->inpoint))
return FALSE; return FALSE;
g_object_set (object->gnlobject, "media-start", inpoint, NULL); g_object_set (object->priv->gnlobject, "media-start", inpoint, NULL);
} else } else
object->pending_inpoint = inpoint; object->priv->pending_inpoint = inpoint;
return TRUE; return TRUE;
} }
@ -300,14 +316,14 @@ ges_track_object_set_duration_internal (GESTrackObject * object,
GST_DEBUG ("object:%p, duration:%" GST_TIME_FORMAT, GST_DEBUG ("object:%p, duration:%" GST_TIME_FORMAT,
object, GST_TIME_ARGS (duration)); object, GST_TIME_ARGS (duration));
if (object->gnlobject != NULL) { if (object->priv->gnlobject != NULL) {
if (G_UNLIKELY (duration == object->duration)) if (G_UNLIKELY (duration == object->duration))
return FALSE; return FALSE;
g_object_set (object->gnlobject, "duration", duration, "media-duration", g_object_set (object->priv->gnlobject, "duration", duration,
duration, NULL); "media-duration", duration, NULL);
} else } else
object->pending_duration = duration; object->priv->pending_duration = duration;
return TRUE; 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, GST_DEBUG ("object:%p, base:%d, offset:%d: gnl:%d", object, priority, offset,
gnl); gnl);
if (object->gnlobject != NULL) { if (object->priv->gnlobject != NULL) {
if (G_UNLIKELY (gnl == object->gnl_priority)) if (G_UNLIKELY (gnl == object->gnl_priority))
return FALSE; return FALSE;
g_object_set (object->gnlobject, "priority", gnl, NULL); g_object_set (object->priv->gnlobject, "priority", gnl, NULL);
} else } else
object->pending_gnl_priority = gnl; object->priv->pending_gnl_priority = gnl;
return TRUE; 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 gboolean
ges_track_object_set_active (GESTrackObject * object, gboolean active) ges_track_object_set_active (GESTrackObject * object, gboolean active)
{ {
GST_DEBUG ("object:%p, active:%d", object, active); GST_DEBUG ("object:%p, active:%d", object, active);
if (object->gnlobject != NULL) { if (object->priv->gnlobject != NULL) {
if (G_UNLIKELY (active == object->active)) if (G_UNLIKELY (active == object->active))
return FALSE; return FALSE;
g_object_set (object->gnlobject, "active", active, NULL); g_object_set (object->priv->gnlobject, "active", active, NULL);
} else } else
object->pending_active = active; object->priv->pending_active = active;
return TRUE; return TRUE;
} }
@ -498,7 +524,7 @@ gnlobject_active_cb (GstElement * gnlobject, GParamSpec * arg G_GNUC_UNUSED,
/* default 'create_gnl_object' virtual method implementation */ /* default 'create_gnl_object' virtual method implementation */
static gboolean static GstElement *
ges_track_object_create_gnl_object_func (GESTrackObject * self) ges_track_object_create_gnl_object_func (GESTrackObject * self)
{ {
GESTrackObjectClass *klass = NULL; GESTrackObjectClass *klass = NULL;
@ -507,7 +533,7 @@ ges_track_object_create_gnl_object_func (GESTrackObject * self)
klass = GES_TRACK_OBJECT_GET_CLASS (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; goto already_have_gnlobject;
if (G_UNLIKELY (klass->gnlobject_factorytype == NULL)) if (G_UNLIKELY (klass->gnlobject_factorytype == NULL))
@ -532,13 +558,11 @@ ges_track_object_create_gnl_object_func (GESTrackObject * self)
goto add_failure; goto add_failure;
GST_DEBUG ("Succesfully got the element to put in the gnlobject"); GST_DEBUG ("Succesfully got the element to put in the gnlobject");
self->element = child; self->priv->element = child;
} }
self->gnlobject = gnlobject;
GST_DEBUG ("done"); GST_DEBUG ("done");
return TRUE; return gnlobject;
/* ERROR CASES */ /* ERROR CASES */
@ -546,28 +570,28 @@ ges_track_object_create_gnl_object_func (GESTrackObject * self)
already_have_gnlobject: already_have_gnlobject:
{ {
GST_ERROR ("Already controlling a GnlObject %s", GST_ERROR ("Already controlling a GnlObject %s",
GST_ELEMENT_NAME (self->gnlobject)); GST_ELEMENT_NAME (self->priv->gnlobject));
return FALSE; return NULL;
} }
no_gnlfactory: no_gnlfactory:
{ {
GST_ERROR ("No GESTrackObject::gnlobject_factorytype implementation!"); GST_ERROR ("No GESTrackObject::gnlobject_factorytype implementation!");
return FALSE; return NULL;
} }
no_gnlobject: no_gnlobject:
{ {
GST_ERROR ("Error creating a gnlobject of type '%s'", GST_ERROR ("Error creating a gnlobject of type '%s'",
klass->gnlobject_factorytype); klass->gnlobject_factorytype);
return FALSE; return NULL;
} }
child_failure: child_failure:
{ {
GST_ERROR ("create_element returned NULL"); GST_ERROR ("create_element returned NULL");
gst_object_unref (gnlobject); gst_object_unref (gnlobject);
return FALSE; return NULL;
} }
add_failure: add_failure:
@ -575,7 +599,7 @@ add_failure:
GST_ERROR ("Error adding the contents to the gnlobject"); GST_ERROR ("Error adding the contents to the gnlobject");
gst_object_unref (child); gst_object_unref (child);
gst_object_unref (gnlobject); gst_object_unref (gnlobject);
return FALSE; return NULL;
} }
} }
@ -583,10 +607,11 @@ static gboolean
ensure_gnl_object (GESTrackObject * object) ensure_gnl_object (GESTrackObject * object)
{ {
GESTrackObjectClass *class; GESTrackObjectClass *class;
gboolean res; GstElement *gnlobject;
gboolean res = TRUE;
if (object->gnlobject && object->valid) if (object->priv->gnlobject && object->priv->valid)
return TRUE; return FALSE;
/* 1. Create the GnlObject */ /* 1. Create the GnlObject */
GST_DEBUG ("Creating GnlObject"); GST_DEBUG ("Creating GnlObject");
@ -601,74 +626,108 @@ ensure_gnl_object (GESTrackObject * object)
GST_DEBUG ("Calling virtual method"); GST_DEBUG ("Calling virtual method");
/* call the create_gnl_object 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 GST_ERROR
("'create_gnl_object' implementation returned TRUE but no GnlObject is available"); ("'create_gnl_object' implementation returned TRUE but no GnlObject is available");
return FALSE; return FALSE;
} }
object->priv->gnlobject = gnlobject;
/* Connect to property notifications */ /* 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_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_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_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_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); G_CALLBACK (gnlobject_active_cb), object);
/* 2. Fill in the GnlObject */ /* 2. Fill in the GnlObject */
if (res) { if (gnlobject) {
GST_DEBUG ("Got a valid GnlObject, now filling it in"); GST_DEBUG ("Got a valid GnlObject, now filling it in");
res = res =
ges_timeline_object_fill_track_object (object->timelineobj, object, ges_timeline_object_fill_track_object (object->priv->timelineobj,
object->gnlobject); object, object->priv->gnlobject);
if (res) { if (res) {
/* Set some properties on the GnlObject */ /* Set some properties on the GnlObject */
g_object_set (object->gnlobject, g_object_set (object->priv->gnlobject,
"caps", ges_track_get_caps (object->track), "caps", ges_track_get_caps (object->priv->track),
"duration", object->pending_duration, "duration", object->priv->pending_duration,
"media-duration", object->pending_duration, "media-duration", object->priv->pending_duration,
"start", object->pending_start, "start", object->priv->pending_start,
"media-start", object->pending_inpoint, "media-start", object->priv->pending_inpoint,
"priority", object->pending_gnl_priority, "priority", object->priv->pending_gnl_priority,
"active", object->pending_active, NULL); "active", object->priv->pending_active, NULL);
} }
} }
object->valid = res; object->priv->valid = res;
GST_DEBUG ("Returning res:%d", res); GST_DEBUG ("Returning res:%d", res);
return res; return res;
} }
/* INTERNAL USAGE */
gboolean gboolean
ges_track_object_set_track (GESTrackObject * object, GESTrack * track) ges_track_object_set_track (GESTrackObject * object, GESTrack * track)
{ {
GST_DEBUG ("object:%p, track:%p", object, 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 ensure_gnl_object (object);
return TRUE; 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 void
ges_track_object_set_timeline_object (GESTrackObject * object, ges_track_object_set_timeline_object (GESTrackObject * object,
GESTimelineObject * tlobj) GESTimelineObject * tlobj)
{ {
GST_DEBUG ("object:%p, timeline-object:%p", object, 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 guint32
@ -676,3 +735,28 @@ ges_track_object_get_priority_offset (GESTrackObject * object)
{ {
return object->priv->priority_offset; 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;
}

View file

@ -74,9 +74,6 @@ typedef struct _GESTrackObjectPrivate GESTrackObjectPrivate;
/** /**
* GESTrackObject: * 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. * @start: Position (in nanoseconds) of the object the track.
* @inpoint: in-point (in nanoseconds) of the object in the track. * @inpoint: in-point (in nanoseconds) of the object in the track.
* @duration: Duration of the object. * @duration: Duration of the object.
@ -89,11 +86,6 @@ struct _GESTrackObject {
GObject parent; GObject parent;
/*< public >*/ /*< public >*/
GESTimelineObject *timelineobj;
GESTrack *track;
gboolean valid;
/* Cached values of the gnlobject properties */ /* Cached values of the gnlobject properties */
guint64 start; guint64 start;
guint64 inpoint; guint64 inpoint;
@ -102,16 +94,6 @@ struct _GESTrackObject {
gboolean active; gboolean active;
/*< private >*/ /*< 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; GESTrackObjectPrivate *priv;
/* Padding for API extension */ /* Padding for API extension */
@ -122,7 +104,6 @@ struct _GESTrackObject {
* GESTrackObjectClass: * GESTrackObjectClass:
* @gnlobject_factorytype: name of the GNonLin GStElementFactory type to use. * @gnlobject_factorytype: name of the GNonLin GStElementFactory type to use.
* @create_gnl_object: method to create the GNonLin container object. * @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 * The default implementation will create an object of type @gnlobject_factorytype
* and call @create_element. * and call @create_element.
* @create_element: method to return the GstElement to put in the gnlobject. * @create_element: method to return the GstElement to put in the gnlobject.
@ -142,7 +123,7 @@ struct _GESTrackObjectClass {
/*< public >*/ /*< public >*/
/* virtual methods for subclasses */ /* virtual methods for subclasses */
const gchar *gnlobject_factorytype; const gchar *gnlobject_factorytype;
gboolean (*create_gnl_object) (GESTrackObject * object); GstElement* (*create_gnl_object) (GESTrackObject * object);
GstElement* (*create_element) (GESTrackObject * object); GstElement* (*create_element) (GESTrackObject * object);
void (*start_changed) (GESTrackObject *object, guint64 start); void (*start_changed) (GESTrackObject *object, guint64 start);
@ -161,8 +142,14 @@ struct _GESTrackObjectClass {
GType ges_track_object_get_type (void); 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); 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 */ /* Private methods for GESTimelineObject's usage only */
gboolean ges_track_object_set_start_internal (GESTrackObject * object, guint64 start); gboolean ges_track_object_set_start_internal (GESTrackObject * object, guint64 start);

View file

@ -77,9 +77,8 @@ void
ges_track_video_test_source_set_pattern (GESTrackVideoTestSource ges_track_video_test_source_set_pattern (GESTrackVideoTestSource
* self, GESVideoTestPattern pattern) * 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; self->pattern = pattern;
if (element) if (element)

View file

@ -296,7 +296,7 @@ ges_track_video_transition_duration_changed (GESTrackObject * object,
{ {
GValue start_value = { 0, }; GValue start_value = { 0, };
GValue end_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); GESTrackVideoTransition *self = GES_TRACK_VIDEO_TRANSITION (object);
GST_LOG ("updating controller"); GST_LOG ("updating controller");

View file

@ -104,7 +104,8 @@ ges_track_dispose (GObject * object)
while (priv->trackobjects) { while (priv->trackobjects) {
GESTrackObject *trobj = GES_TRACK_OBJECT (priv->trackobjects->data); GESTrackObject *trobj = GES_TRACK_OBJECT (priv->trackobjects->data);
ges_track_remove_object (track, trobj); 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) { if (priv->composition) {
@ -306,13 +307,16 @@ ges_track_add_object (GESTrack * track, GESTrackObject * object)
GST_DEBUG ("track:%p, object:%p", track, 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"); GST_WARNING ("Object already belongs to another track");
return FALSE; return FALSE;
} }
if (G_UNLIKELY (object->gnlobject != NULL)) { /* At this point, the track object shouldn't have any gnlobject since
GST_ERROR ("TrackObject doesn't have a gnlobject !"); * 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; return FALSE;
} }
@ -323,9 +327,8 @@ ges_track_add_object (GESTrack * track, GESTrackObject * object)
GST_DEBUG ("Adding object to ourself"); 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), 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"); GST_WARNING ("Couldn't add object to the GnlComposition");
return FALSE; return FALSE;
} }
@ -349,6 +352,7 @@ gboolean
ges_track_remove_object (GESTrack * track, GESTrackObject * object) ges_track_remove_object (GESTrack * track, GESTrackObject * object)
{ {
GESTrackPrivate *priv; GESTrackPrivate *priv;
GstElement *gnlobject;
g_return_val_if_fail (GES_IS_TRACK (track), FALSE); g_return_val_if_fail (GES_IS_TRACK (track), FALSE);
g_return_val_if_fail (GES_IS_TRACK_OBJECT (object), 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; 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"); GST_WARNING ("Object belongs to another track");
return FALSE; return FALSE;
} }
if (G_LIKELY (object->gnlobject != NULL)) { if ((gnlobject = ges_track_object_get_gnlobject (object))) {
GST_DEBUG ("Removing GnlObject from composition"); 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"); GST_WARNING ("Failed to remove gnlobject from composition");
return FALSE; return FALSE;
} }

View file

@ -81,7 +81,8 @@ GST_START_TEST (test_test_source_properties)
assert_equals_uint64 (GES_TRACK_OBJECT_INPOINT (trackobject), 12); assert_equals_uint64 (GES_TRACK_OBJECT_INPOINT (trackobject), 12);
/* And let's also check that it propagated correctly to GNonLin */ /* 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 */ /* Change more properties, see if they propagate */
g_object_set (object, "start", (guint64) 420, "duration", (guint64) 510, 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); assert_equals_uint64 (GES_TRACK_OBJECT_INPOINT (trackobject), 120);
/* And let's also check that it propagated correctly to GNonLin */ /* 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 */ /* Test mute support */
g_object_set (object, "mute", TRUE, NULL); 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); 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); ges_timeline_object_release_track_object (object, trackobject);
g_object_unref (object); g_object_unref (object);

View file

@ -118,7 +118,8 @@ GST_START_TEST (test_filesource_properties)
assert_equals_uint64 (GES_TRACK_OBJECT_INPOINT (trackobject), 12); assert_equals_uint64 (GES_TRACK_OBJECT_INPOINT (trackobject), 12);
/* And let's also check that it propagated correctly to GNonLin */ /* 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 */ /* Change more properties, see if they propagate */
g_object_set (object, "start", (guint64) 420, "duration", (guint64) 510, 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); assert_equals_uint64 (GES_TRACK_OBJECT_INPOINT (trackobject), 120);
/* And let's also check that it propagated correctly to GNonLin */ /* 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 */ /* Test mute support */
g_object_set (object, "mute", TRUE, NULL); 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); 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); ges_timeline_object_release_track_object (object, trackobject);

View file

@ -104,32 +104,38 @@ GST_START_TEST (test_layer_properties)
assert_equals_uint64 (GES_TIMELINE_OBJECT_DURATION (object), 51); assert_equals_uint64 (GES_TIMELINE_OBJECT_DURATION (object), 51);
assert_equals_uint64 (GES_TIMELINE_OBJECT_INPOINT (object), 12); assert_equals_uint64 (GES_TIMELINE_OBJECT_INPOINT (object), 12);
assert_equals_uint64 (GES_TIMELINE_OBJECT_PRIORITY (object), 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);
/* Change the priority of the layer */ /* Change the priority of the layer */
g_object_set (layer, "priority", 1, NULL); g_object_set (layer, "priority", 1, NULL);
assert_equals_int (ges_timeline_layer_get_priority (layer), 1); assert_equals_int (ges_timeline_layer_get_priority (layer), 1);
assert_equals_uint64 (GES_TIMELINE_OBJECT_PRIORITY (object), 10); 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 */ /* Change it to an insanely high value */
g_object_set (layer, "priority", 1000000, NULL); g_object_set (layer, "priority", 1000000, NULL);
assert_equals_int (ges_timeline_layer_get_priority (layer), 1000000); assert_equals_int (ges_timeline_layer_get_priority (layer), 1000000);
assert_equals_uint64 (GES_TIMELINE_OBJECT_PRIORITY (object), 10000000); 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 */ /* and back to 0 */
g_object_set (layer, "priority", 0, NULL); g_object_set (layer, "priority", 0, NULL);
assert_equals_int (ges_timeline_layer_get_priority (layer), 0); assert_equals_int (ges_timeline_layer_get_priority (layer), 0);
assert_equals_uint64 (GES_TIMELINE_OBJECT_PRIORITY (object), 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 */ /* check priority offsets */
assert_equals_int (GES_TIMELINE_OBJECT_HEIGHT (object), 1); assert_equals_int (GES_TIMELINE_OBJECT_HEIGHT (object), 1);
g_object_set (trackobject, "priority-offset", (guint32) 3, NULL); 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); 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); assert_equals_int (GES_TIMELINE_OBJECT_HEIGHT (object), 4);
g_object_unref (trackobject); g_object_unref (trackobject);

View file

@ -80,7 +80,8 @@ GST_START_TEST (test_overlay_properties)
assert_equals_uint64 (GES_TRACK_OBJECT_INPOINT (trackobject), 12); assert_equals_uint64 (GES_TRACK_OBJECT_INPOINT (trackobject), 12);
/* And let's also check that it propagated correctly to GNonLin */ /* 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 */ /* Change more properties, see if they propagate */
g_object_set (object, "start", (guint64) 420, "duration", (guint64) 510, 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); assert_equals_uint64 (GES_TRACK_OBJECT_INPOINT (trackobject), 120);
/* And let's also check that it propagated correctly to GNonLin */ /* 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); ges_timeline_object_release_track_object (object, trackobject);
g_object_unref (object); g_object_unref (object);

View file

@ -88,7 +88,8 @@ GST_START_TEST (test_object_properties)
assert_equals_uint64 (GES_TRACK_OBJECT_INPOINT (trackobject), 12); assert_equals_uint64 (GES_TRACK_OBJECT_INPOINT (trackobject), 12);
/* And let's also check that it propagated correctly to GNonLin */ /* 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 */ /* Change more properties, see if they propagate */
g_object_set (object, "start", (guint64) 420, "duration", (guint64) 510, 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); assert_equals_uint64 (GES_TRACK_OBJECT_INPOINT (trackobject), 120);
/* And let's also check that it propagated correctly to GNonLin */ /* 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); ges_timeline_object_release_track_object (object, trackobject);

View file

@ -81,7 +81,8 @@ GST_START_TEST (test_title_source_properties)
assert_equals_uint64 (GES_TRACK_OBJECT_INPOINT (trackobject), 12); assert_equals_uint64 (GES_TRACK_OBJECT_INPOINT (trackobject), 12);
/* And let's also check that it propagated correctly to GNonLin */ /* 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 */ /* Change more properties, see if they propagate */
g_object_set (object, "start", (guint64) 420, "duration", (guint64) 510, 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); assert_equals_uint64 (GES_TRACK_OBJECT_INPOINT (trackobject), 120);
/* And let's also check that it propagated correctly to GNonLin */ /* 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 */ /* Test mute support */
g_object_set (object, "mute", TRUE, NULL); 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); 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); ges_timeline_object_release_track_object (object, trackobject);
g_object_unref (object); g_object_unref (object);

View file

@ -111,7 +111,8 @@ GST_START_TEST (test_transition_properties)
assert_equals_uint64 (GES_TRACK_OBJECT_INPOINT (trackobject), 12); assert_equals_uint64 (GES_TRACK_OBJECT_INPOINT (trackobject), 12);
/* And let's also check that it propagated correctly to GNonLin */ /* 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 */ /* Change more properties, see if they propagate */
g_object_set (object, "start", (guint64) 420, "duration", (guint64) 510, 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); assert_equals_uint64 (GES_TRACK_OBJECT_INPOINT (trackobject), 120);
/* And let's also check that it propagated correctly to GNonLin */ /* 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 */ /* test changing vtype */
GST_DEBUG ("Setting to crossfade"); GST_DEBUG ("Setting to crossfade");

View file

@ -84,7 +84,7 @@ print_transition_data (GESTimelineObject * tr)
trackobjects = ges_timeline_object_get_track_objects (tr); trackobjects = ges_timeline_object_get_track_objects (tr);
trackobj = GES_TRACK_OBJECT (trackobjects->data); trackobj = GES_TRACK_OBJECT (trackobjects->data);
gnlobj = trackobj->gnlobject; gnlobj = ges_track_object_get_gnlobject (trackobj);
g_object_get (gnlobj, "start", &start, "duration", &duration, g_object_get (gnlobj, "start", &start, "duration", &duration,
"priority", &priority, "name", &name, NULL); "priority", &priority, "name", &name, NULL);

View file

@ -27,14 +27,15 @@ fill_customsrc (GESTimelineObject * object, GESTrackObject * trobject,
{ {
GstElement *src; GstElement *src;
guint var = GPOINTER_TO_UINT (user_data); 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 /* Based on the Track type, we will either put a videotestsrc
* or an audiotestsrc */ * 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); src = gst_element_factory_make ("videotestsrc", NULL);
g_object_set (src, "pattern", var, 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); src = gst_element_factory_make ("audiotestsrc", NULL);
g_object_set (src, "freq", 440.0 * (var + 1), NULL); g_object_set (src, "freq", 440.0 * (var + 1), NULL);
} else } else

View file

@ -68,7 +68,7 @@ print_transition_data (GESTimelineObject * tr)
trackobjects = ges_timeline_object_get_track_objects (tr); trackobjects = ges_timeline_object_get_track_objects (tr);
trackobj = GES_TRACK_OBJECT (trackobjects->data); trackobj = GES_TRACK_OBJECT (trackobjects->data);
gnlobj = trackobj->gnlobject; gnlobj = ges_track_object_get_gnlobject (trackobj);
g_object_get (gnlobj, "start", &start, "duration", &duration, g_object_get (gnlobj, "start", &start, "duration", &duration,
"priority", &priority, "name", &name, NULL); "priority", &priority, "name", &name, NULL);

View file

@ -69,7 +69,7 @@ print_transition_data (GESTimelineObject * tr)
trackobjects = ges_timeline_object_get_track_objects (tr); trackobjects = ges_timeline_object_get_track_objects (tr);
trackobj = GES_TRACK_OBJECT (trackobjects->data); trackobj = GES_TRACK_OBJECT (trackobjects->data);
gnlobj = trackobj->gnlobject; gnlobj = ges_track_object_get_gnlobject (trackobj);
g_object_get (gnlobj, "start", &start, "duration", &duration, g_object_get (gnlobj, "start", &start, "duration", &duration,
"priority", &priority, "name", &name, NULL); "priority", &priority, "name", &name, NULL);

View file

@ -97,7 +97,7 @@ pattern_source_fill_func (GESTimelineObject * object,
GESTrackObject * trobject, GstElement * gnlobj, gpointer user_data) GESTrackObject * trobject, GstElement * gnlobj, gpointer user_data)
{ {
guint pattern = GPOINTER_TO_UINT (user_data); guint pattern = GPOINTER_TO_UINT (user_data);
GESTrack *track = trobject->track; GESTrack *track = ges_track_object_get_track (trobject);
GstElement *testsrc; GstElement *testsrc;
g_assert (track); g_assert (track);