platform/upstream/gstreamer.git
11 years agotimeline-element: Add a macro to get element 'end'
Thibault Saunier [Sat, 23 Mar 2013 04:31:23 +0000 (01:31 -0300)]
timeline-element: Add a macro to get element 'end'

11 years agoges: Keep ges-gerror categories simple.
Thibault Saunier [Fri, 22 Mar 2013 20:39:04 +0000 (17:39 -0300)]
ges: Keep ges-gerror categories simple.

11 years agoMisc cleaning
Thibault Saunier [Fri, 22 Mar 2013 01:17:10 +0000 (22:17 -0300)]
Misc cleaning

11 years agotrack-element: Make ges_track_element_set_track internal
Thibault Saunier [Fri, 22 Mar 2013 01:12:47 +0000 (22:12 -0300)]
track-element: Make ges_track_element_set_track internal

Removed API:
  + ges_track_element_set_track

11 years agoges: Make ges_clip_create_track_element(s) internal methods
Thibault Saunier [Fri, 22 Mar 2013 01:03:09 +0000 (22:03 -0300)]
ges: Make ges_clip_create_track_element(s) internal methods

  + Fix tests (we still need a round of modernisation, making use of
      assets where it makes sense)

There is no reason to use those method outside of GES, so remove them,
cleaning the API and making it easier for users.

Removed APIs:
-----------
    * ges_clip_create_track_element
    * ges_clip_create_track_elements

11 years agotests::uriclip: Use a real file to test still images
Thibault Saunier [Fri, 22 Mar 2013 00:42:31 +0000 (21:42 -0300)]
tests::uriclip: Use a real file to test still images

  + Make use of GESAssets

And do proper refactoring

11 years agouri-asset: Properly handle images and do not duplicate the TrackType
Thibault Saunier [Wed, 20 Mar 2013 00:07:58 +0000 (21:07 -0300)]
uri-asset: Properly handle images and do not duplicate the TrackType

11 years agouri-asset: Implement a ges_uri_clip_asset_request_sync method
Thibault Saunier [Tue, 19 Mar 2013 22:49:09 +0000 (19:49 -0300)]
uri-asset: Implement a ges_uri_clip_asset_request_sync method

This way we let the possibility to the user to actually do it, but we avoid him to do it
without knowing it is absolutely not recommanded to.

API:
+ ges_uri_clip_asset_request_sync

11 years agoStart categorizing GError types in GES
Thibault Saunier [Mon, 18 Mar 2013 15:41:06 +0000 (12:41 -0300)]
Start categorizing GError types in GES

11 years agotimeline-element: Do not give a reference to the calles of g_object_get_property
Thibault Saunier [Mon, 18 Mar 2013 13:03:19 +0000 (10:03 -0300)]
timeline-element: Do not give a reference to the calles of g_object_get_property

... for both the "parent" and the "timeline" properties

Making things simpler to handle for the copy method.

11 years agoclip: Make it mandatory that a clip is in a layer to be splittable
Thibault Saunier [Mon, 18 Mar 2013 13:02:10 +0000 (10:02 -0300)]
clip: Make it mandatory that a clip is in a layer to be splittable

Otherwize we will not be able to describe if the returned object has a floating reference or not, and this would screw the introspection.

11 years agoUse gst_object_ref_sink instead of g_object_ref_sink when appropriate
Thibault Saunier [Mon, 18 Mar 2013 12:49:18 +0000 (09:49 -0300)]
Use gst_object_ref_sink instead of g_object_ref_sink when appropriate

Making refcount issue debugging simpler

11 years agoAlways prefer gst_object_(un)ref over g_object_(un)ref
Thibault Saunier [Sat, 16 Mar 2013 22:05:04 +0000 (19:05 -0300)]
Always prefer gst_object_(un)ref over g_object_(un)ref

Making the refcount issue debugging easier

11 years agoclip: Make set/is_moving_from_layer internal
Thibault Saunier [Fri, 15 Mar 2013 15:01:58 +0000 (12:01 -0300)]
clip: Make set/is_moving_from_layer internal

11 years agoclip: Reindent header and make ges_clip_set_layer internal
Thibault Saunier [Fri, 15 Mar 2013 14:58:59 +0000 (11:58 -0300)]
clip: Reindent header and make ges_clip_set_layer internal

11 years agotrack: Cleanup header and add a FIXME
Thibault Saunier [Fri, 15 Mar 2013 14:32:48 +0000 (11:32 -0300)]
track: Cleanup header and add a FIXME

11 years agoRemove GESTrackElements from GESTracks when removing from a GESClip
Thibault Saunier [Fri, 15 Mar 2013 03:01:47 +0000 (00:01 -0300)]
Remove GESTrackElements from GESTracks when removing from a GESClip

... Not the other way round.

  + Add and enhance debugging info on the way

The user should not be responsible for removing the GESTrackElements from
GESTracks, instead, removing it from a GESClip should imply removing
it from any GESTrack it is in.

This patch changes sensibly the behaviour when we remove a
GESTrackElement from a GESTrack, not remoing it from the GESClip it is
in. *But*, users should never remove a GESTrackElement from a GESTrack
anyway. The testsuite has been updated to that new behaviour.

11 years agoges: Make GESTimeline responsible for adding GESTrackElement to GESTrack
Thibault Saunier [Thu, 14 Mar 2013 16:53:25 +0000 (12:53 -0400)]
ges: Make GESTimeline responsible for adding GESTrackElement to GESTrack

+ Fix tests as necessary (Do not use agingtv as it can be "applied" on any TrackType
        and is not representative of what happens IRL)

We already had the infrastructure so the user can have the control over where to add
the elements (through the "select-track-for-object" signal). We now make use of that
signal everytime a GESClip is added to a GESTimelineLayer. This make user's life easier,
and object responsability clearer.

11 years agoAdd a GESEffectAsset class, and make sure to set the GESTrackType asap on effects
Thibault Saunier [Thu, 14 Mar 2013 15:14:31 +0000 (11:14 -0400)]
Add a GESEffectAsset class, and make sure to set the GESTrackType asap on effects

+ Make use of the asset in ges_effect_new

11 years agoges: Use GESAsset in clip contructors when possible
Thibault Saunier [Sun, 3 Mar 2013 14:50:10 +0000 (11:50 -0300)]
ges: Use GESAsset in clip contructors when possible

11 years agotimeline-element: Set asset from the copied element to the new copy
Thibault Saunier [Sun, 3 Mar 2013 14:16:10 +0000 (11:16 -0300)]
timeline-element: Set asset from the copied element to the new copy

11 years agocontainer: Add a ges_container_group method
Thibault Saunier [Sat, 2 Mar 2013 21:35:34 +0000 (18:35 -0300)]
container: Add a ges_container_group method

  + Add some basic unit tests

API:
  GESContainer:group vmethod
  ges_container_group

11 years agotrack: Do not remove a TrackElement from a NULL clip
Thibault Saunier [Sat, 2 Mar 2013 01:26:01 +0000 (22:26 -0300)]
track: Do not remove a TrackElement from a NULL clip

11 years agocontainer: Add a way to ungroup a GESContainer into several GESContainers
Thibault Saunier [Fri, 1 Mar 2013 23:25:17 +0000 (20:25 -0300)]
container: Add a way to ungroup a GESContainer into several GESContainers

  + Add simple unit test

API:
  GESContainerClass::ungroup vmethod
  ges_container_ungroup

11 years agotimeline-element: Make it possible to reset parent to NULL
Thibault Saunier [Sat, 2 Mar 2013 01:05:45 +0000 (22:05 -0300)]
timeline-element: Make it possible to reset parent to NULL

11 years agoFix some documentations
Thibault Saunier [Fri, 1 Mar 2013 22:18:10 +0000 (19:18 -0300)]
Fix some documentations

11 years agoImplement GESContainer
Thibault Saunier [Fri, 1 Mar 2013 01:27:50 +0000 (22:27 -0300)]
Implement GESContainer

  + Fix unit tests
  + Minor enhancement in unit tests

API changes:
-----------
  * ges_track_element_get_clip     -> ges_timeline_element_get_parent
  * ges_clip_add_track_element     -> ges_container_add
  * ges_clip_release_track_element -> ges_container_remove
  * ges_clip_get_track_elements    -> ges_container_get_children
                                      (or GES_CONTAINER_CHILDREN)

11 years agodocs: Remove ges_clip_lock_track_elements
Thibault Saunier [Fri, 1 Mar 2013 14:03:18 +0000 (11:03 -0300)]
docs: Remove ges_clip_lock_track_elements

it does not exist anymore...

11 years agotimeline-element: Enhance debug statement and documentation
Thibault Saunier [Fri, 1 Mar 2013 01:22:35 +0000 (22:22 -0300)]
timeline-element: Enhance debug statement and documentation

    + Accept NULL as a parent

11 years agotimeline-element: Add a "timeline" property
Thibault Saunier [Thu, 28 Feb 2013 18:12:15 +0000 (15:12 -0300)]
timeline-element: Add a "timeline" property

11 years agogitignore: Ignore *.page
Thibault Saunier [Thu, 28 Feb 2013 21:14:22 +0000 (18:14 -0300)]
gitignore: Ignore *.page

11 years agodocs: Add an little explanation about the class hierarchie rework
Thibault Saunier [Thu, 14 Mar 2013 19:09:37 +0000 (16:09 -0300)]
docs: Add an little explanation about the class hierarchie rework

11 years agoAutomatic update of common submodule
Tim-Philipp Müller [Thu, 7 Mar 2013 00:04:38 +0000 (00:04 +0000)]
Automatic update of common submodule

From 2de221c to 04c7a1e

11 years agoges-timeline-element: Fix GST_DEBUG_OBJECT invocations
Руслан Ижбулатов [Wed, 6 Mar 2013 06:27:15 +0000 (10:27 +0400)]
ges-timeline-element: Fix GST_DEBUG_OBJECT invocations

Fixes #695267

11 years agoRename object/tobj/trobj to clip or track_element as necessary
Thibault Saunier [Fri, 15 Feb 2013 02:34:48 +0000 (23:34 -0300)]
Rename object/tobj/trobj to clip or track_element as necessary

Not really complete but it is a good start!

11 years agoFinish renaming tck_obj and derivate to track_element
Thibault Saunier [Sun, 10 Feb 2013 00:49:16 +0000 (21:49 -0300)]
Finish renaming tck_obj and derivate to track_element

11 years agoRename GESTimelineLayer.xxx_object to GESTimelineLayer.xxx_clip
Thibault Saunier [Fri, 8 Feb 2013 20:25:25 +0000 (17:25 -0300)]
Rename GESTimelineLayer.xxx_object to GESTimelineLayer.xxx_clip

11 years agotrack: Rename all GESTrack.xxx_object to GESTrack.xxx_element
Thibault Saunier [Fri, 8 Feb 2013 20:23:18 +0000 (17:23 -0300)]
track: Rename all GESTrack.xxx_object to GESTrack.xxx_element

11 years agoProperly rename object-added to clip-added
Thibault Saunier [Fri, 8 Feb 2013 20:19:39 +0000 (17:19 -0300)]
Properly rename object-added to clip-added

11 years agoFinish renaming timeline object to clip
Thibault Saunier [Fri, 8 Feb 2013 20:11:22 +0000 (17:11 -0300)]
Finish renaming timeline object to clip

11 years agoFinish renaming track object to track element
Thibault Saunier [Fri, 8 Feb 2013 19:39:18 +0000 (16:39 -0300)]
Finish renaming track object to track element

11 years agoAdd GESTimelineElement.{start, inpoint, duration, maxduration, priority} getters
Thibault Saunier [Fri, 1 Feb 2013 20:51:02 +0000 (17:51 -0300)]
Add GESTimelineElement.{start, inpoint, duration, maxduration, priority} getters

11 years agouriclip: Fix wrong acces to object instead of its duration field
Thibault Saunier [Mon, 28 Jan 2013 17:36:06 +0000 (14:36 -0300)]
uriclip: Fix wrong acces to object instead of its duration field

11 years agoReword ges_title_clip_set_color to ges_title_clip_set_text_color
Thibault Saunier [Sun, 27 Jan 2013 19:21:01 +0000 (16:21 -0300)]
Reword ges_title_clip_set_color to ges_title_clip_set_text_color

11 years agoRename ges_title_.*_set_background to set_background_color
Thibault Saunier [Sun, 27 Jan 2013 19:16:27 +0000 (16:16 -0300)]
Rename ges_title_.*_set_background to set_background_color

11 years agotitleclip: Remove useless mute property
Thibault Saunier [Sun, 27 Jan 2013 19:07:12 +0000 (16:07 -0300)]
titleclip: Remove useless mute property

11 years agopitiviformatter: Fix renaming issues
Thibault Saunier [Sun, 27 Jan 2013 19:02:31 +0000 (16:02 -0300)]
pitiviformatter: Fix renaming issues

11 years agoRename overlay_text to text_overlay
Thibault Saunier [Sun, 27 Jan 2013 19:02:19 +0000 (16:02 -0300)]
Rename overlay_text to text_overlay

11 years agoRename GESAssetClip to GESClipAsset
Thibault Saunier [Sun, 27 Jan 2013 15:51:52 +0000 (12:51 -0300)]
Rename GESAssetClip to GESClipAsset

11 years agoRename GESTrackAudioTransition to GESAudioTransition
Thibault Saunier [Sun, 27 Jan 2013 15:44:13 +0000 (12:44 -0300)]
Rename GESTrackAudioTransition to GESAudioTransition

11 years agoRename GESTrackVideoTransition to GESVideoTransition
Thibault Saunier [Sun, 27 Jan 2013 15:41:51 +0000 (12:41 -0300)]
Rename GESTrackVideoTransition to GESVideoTransition

11 years agoRename GESTrackTransition to GESTransition
Thibault Saunier [Sun, 27 Jan 2013 15:31:10 +0000 (12:31 -0300)]
Rename GESTrackTransition to GESTransition

11 years agoRename GESTrackOperation to GESOperation
Thibault Saunier [Sun, 27 Jan 2013 15:27:19 +0000 (12:27 -0300)]
Rename GESTrackOperation to GESOperation

11 years agoRename GESTrackTextOverlay to GESTextOverlay
Thibault Saunier [Sun, 27 Jan 2013 15:24:44 +0000 (12:24 -0300)]
Rename GESTrackTextOverlay to GESTextOverlay

11 years agoRename GESTrackTitleSource to GESTitleSource
Thibault Saunier [Sat, 26 Jan 2013 17:25:14 +0000 (14:25 -0300)]
Rename GESTrackTitleSource to GESTitleSource

11 years agoRename GESTrackImageSource to GESImageSource
Thibault Saunier [Sat, 26 Jan 2013 17:21:56 +0000 (14:21 -0300)]
Rename GESTrackImageSource to GESImageSource

11 years agoRename GESAssetTrackElement to GESTrackElementAsset
Thibault Saunier [Sat, 26 Jan 2013 17:14:57 +0000 (14:14 -0300)]
Rename GESAssetTrackElement to GESTrackElementAsset

11 years agoRename TrackFileSource to UriSource
Thibault Saunier [Sat, 26 Jan 2013 17:07:01 +0000 (14:07 -0300)]
Rename TrackFileSource to UriSource

11 years agoRename GESTrackSource to GESSource
Thibault Saunier [Sat, 26 Jan 2013 16:08:20 +0000 (13:08 -0300)]
Rename GESTrackSource to GESSource

11 years agoRename GESTrackVideoTestSource to GESVideoTestSource
Thibault Saunier [Sat, 26 Jan 2013 16:03:39 +0000 (13:03 -0300)]
Rename GESTrackVideoTestSource to GESVideoTestSource

11 years agoRename GESTrackAudioTestSource to GESAudioTestSource
Thibault Saunier [Sat, 26 Jan 2013 16:02:02 +0000 (13:02 -0300)]
Rename GESTrackAudioTestSource to GESAudioTestSource

11 years agoRename GESTrackParseLaunchEffect to GESEffect
Thibault Saunier [Sat, 26 Jan 2013 15:40:51 +0000 (12:40 -0300)]
Rename GESTrackParseLaunchEffect to GESEffect

11 years agoRename TrackEffect to BaseEffect
Thibault Saunier [Sat, 26 Jan 2013 15:35:19 +0000 (12:35 -0300)]
Rename TrackEffect to BaseEffect

11 years agoRename GESTrackObject to GESTrackElement
Thibault Saunier [Sat, 26 Jan 2013 15:31:33 +0000 (12:31 -0300)]
Rename GESTrackObject to GESTrackElement

11 years agoRename GESStandardEffectClip to GESEffectClip
Thibault Saunier [Fri, 25 Jan 2013 18:51:02 +0000 (15:51 -0300)]
Rename GESStandardEffectClip to GESEffectClip

11 years agoRename GESEffectClip to GESBaseEffectClip
Thibault Saunier [Fri, 25 Jan 2013 18:45:07 +0000 (15:45 -0300)]
Rename GESEffectClip to GESBaseEffectClip

11 years agoRename GESStandardTransitionClip to GESTransitionClip
Thibault Saunier [Fri, 25 Jan 2013 18:16:21 +0000 (15:16 -0300)]
Rename GESStandardTransitionClip to GESTransitionClip

11 years agoRename GESTransitionClip to GESBaseTransitionClip
Thibault Saunier [Fri, 25 Jan 2013 14:26:14 +0000 (11:26 -0300)]
Rename GESTransitionClip to GESBaseTransitionClip

11 years agotimelineelement: Implement the notion of parenting
Thibault Saunier [Sun, 20 Jan 2013 15:58:05 +0000 (12:58 -0300)]
timelineelement: Implement the notion of parenting

11 years agoRename GESTimelineTestSource to GESTestSourceClip
Thibault Saunier [Thu, 17 Jan 2013 03:58:28 +0000 (00:58 -0300)]
Rename GESTimelineTestSource to GESTestSourceClip

11 years agoRename GESTimelineTileSource to GESTitleClip
Thibault Saunier [Thu, 17 Jan 2013 03:55:03 +0000 (00:55 -0300)]
Rename GESTimelineTileSource to GESTitleClip

11 years agoRename GESTimelineTextOverlay to GESTextOverlayClip
Thibault Saunier [Thu, 17 Jan 2013 03:53:26 +0000 (00:53 -0300)]
Rename GESTimelineTextOverlay to GESTextOverlayClip

11 years agoRename GESTimelineOverlay to GESOverlayClip
Thibault Saunier [Thu, 17 Jan 2013 03:49:43 +0000 (00:49 -0300)]
Rename GESTimelineOverlay to GESOverlayClip

11 years agoRename GESTimelineSource to GESSourceClip
Thibault Saunier [Thu, 17 Jan 2013 03:35:39 +0000 (00:35 -0300)]
Rename GESTimelineSource to GESSourceClip

    And GESCustomTimelineSource to GESCustomSourceClip

11 years agoRename GESTimelineOperation to GESOperationClip
Thibault Saunier [Thu, 17 Jan 2013 03:26:35 +0000 (00:26 -0300)]
Rename GESTimelineOperation to GESOperationClip

11 years agoRename GESTimelineParseLaunchEffect to GESStandardEffectClip
Thibault Saunier [Thu, 17 Jan 2013 03:04:41 +0000 (00:04 -0300)]
Rename GESTimelineParseLaunchEffect to GESStandardEffectClip

11 years agoRename GESTimelineStandardTransition to GESStandardTransitionClip
Thibault Saunier [Thu, 17 Jan 2013 02:21:01 +0000 (23:21 -0300)]
Rename GESTimelineStandardTransition to GESStandardTransitionClip

11 years agoRename GESTimelineTransition to GESTransitionClip
Thibault Saunier [Thu, 17 Jan 2013 02:16:02 +0000 (23:16 -0300)]
Rename GESTimelineTransition to GESTransitionClip

11 years agoRename GESTimelineEffect to GESEffectClip
Thibault Saunier [Thu, 17 Jan 2013 02:11:14 +0000 (23:11 -0300)]
Rename GESTimelineEffect to GESEffectClip

11 years agoRename GESTimelineFileSource to GESUriClip
Thibault Saunier [Sun, 20 Jan 2013 15:44:57 +0000 (12:44 -0300)]
Rename GESTimelineFileSource to GESUriClip

Conflicts:
ges/ges-pitivi-formatter.c
ges/ges-uri-clip.c
tests/check/ges/project.c
tests/check/ges/uriclip.c

11 years agoRename GESTimelineObject to GESClip
Thibault Saunier [Sun, 20 Jan 2013 15:42:29 +0000 (12:42 -0300)]
Rename GESTimelineObject to GESClip

11 years agoAdd a GESTimelineElement base class
Thibault Saunier [Tue, 15 Jan 2013 13:52:17 +0000 (10:52 -0300)]
Add a GESTimelineElement base class

    + Port GESTrackObject and GESTimelineObject to the new baseclass

11 years agodocs: Clarify the distinction between Tracks and Layers
Jean-François Fortin Tam [Sun, 10 Feb 2013 17:07:48 +0000 (12:07 -0500)]
docs: Clarify the distinction between Tracks and Layers

11 years agoproject: Update loading asset when a URI is missing
Thibault Saunier [Wed, 30 Jan 2013 23:12:26 +0000 (20:12 -0300)]
project: Update loading asset when a URI is missing

11 years agobuild: replace AM_CONFIG_HEADER with AC_CONFIG_HEADERS to fix build with automake...
Kerrick Staley [Wed, 30 Jan 2013 09:27:17 +0000 (01:27 -0800)]
build: replace AM_CONFIG_HEADER with AC_CONFIG_HEADERS to fix build with automake 1.13

AM_CONFIG_HEADER is deprecated; see
https://lists.gnu.org/archive/html/automake/2012-12/msg00038.html

https://bugzilla.gnome.org/show_bug.cgi?id=692864

11 years agoAutomatic update of common submodule
Stefan Sauer [Mon, 28 Jan 2013 19:46:06 +0000 (20:46 +0100)]
Automatic update of common submodule

From a942293 to 2de221c

11 years agoconfigure: Properly check if PyGObject is present
Thibault Saunier [Tue, 22 Jan 2013 21:44:00 +0000 (18:44 -0300)]
configure: Properly check if PyGObject is present

And make use of the PyGObject overrides if present

11 years agoBump Glib dependency to 2.34
Thibault Saunier [Tue, 22 Jan 2013 21:08:44 +0000 (18:08 -0300)]
Bump Glib dependency to 2.34

We use new APIs (g_list_copy_deep) that appeared in GLib 2.34

11 years agoFix various printf format issues in debug messages
Tim-Philipp Müller [Tue, 22 Jan 2013 19:51:25 +0000 (19:51 +0000)]
Fix various printf format issues in debug messages

11 years agoAutomatic update of common submodule
Tim-Philipp Müller [Tue, 15 Jan 2013 15:09:39 +0000 (15:09 +0000)]
Automatic update of common submodule

From a72faea to a942293

11 years agoBump GStreamer dependency version to current master (1.1.0)
Thibault Saunier [Mon, 14 Jan 2013 12:01:24 +0000 (09:01 -0300)]
Bump GStreamer dependency version to current master (1.1.0)

11 years agopitiviformatter: Handle project metadatas
Thibault Saunier [Sat, 12 Jan 2013 23:49:31 +0000 (20:49 -0300)]
pitiviformatter: Handle project metadatas

11 years agoxmlformatter: Do no allow saving CONSTRUCTONLY properties
Thibault Saunier [Sat, 12 Jan 2013 13:50:24 +0000 (10:50 -0300)]
xmlformatter: Do no allow saving CONSTRUCTONLY properties

11 years agolayer: State assets we create async as loading to the project
Thibault Saunier [Fri, 11 Jan 2013 22:10:31 +0000 (19:10 -0300)]
layer: State assets we create async as loading to the project

11 years agoproject: Track Asset that were loaded with error
Thibault Saunier [Fri, 11 Jan 2013 22:07:22 +0000 (19:07 -0300)]
project: Track Asset that were loaded with error

11 years agoproject: Handle assets that are being loaded
Thibault Saunier [Fri, 11 Jan 2013 14:49:02 +0000 (11:49 -0300)]
project: Handle assets that are being loaded

API:
    ges_project_get_loading_assets

11 years agoges: Documentations fixes
Thibault Saunier [Fri, 11 Jan 2013 18:26:26 +0000 (15:26 -0300)]
ges: Documentations fixes

11 years agoReimplement the auto-transition feature
Thibault Saunier [Thu, 10 Jan 2013 21:50:54 +0000 (18:50 -0300)]
Reimplement the auto-transition feature

  + Actually implement unit tests

11 years agotrackobject: Make the GESTrack (parent track) a GObject property
Thibault Saunier [Thu, 10 Jan 2013 21:09:23 +0000 (18:09 -0300)]
trackobject: Make the GESTrack (parent track) a GObject property

11 years agotimeline: Minor refactoring
Thibault Saunier [Thu, 10 Jan 2013 21:01:33 +0000 (18:01 -0300)]
timeline: Minor refactoring