Commit graph

1749 commits

Author SHA1 Message Date
Mart Raudsepp 0c592ad6ac track: Avoid various sorting operations before timeline commit
These are showing up in performance profile of 1000+ clips looped addition.
All this is done at commit time as well, so let that do only one update and
sorting.
2019-04-17 20:17:59 +00:00
Thibault Saunier 6a0f2358ce asset: Do not take an extra ref on asset when already initialized
The task already has a ref so this one doesn't make sense and leads to leaks
2019-04-15 17:11:48 -04:00
Thibault Saunier 2d8be79cb7 xml-formatter: Fix some asset leaks 2019-04-15 17:11:48 -04:00
Thibault Saunier 61a659d298 framepositioner: Plug caps leak 2019-04-15 17:11:48 -04:00
Thibault Saunier 33cf9ec180 xml-formatter: Plug some leaks 2019-04-15 17:11:48 -04:00
Thibault Saunier d04bffc541 timeline: Plug leak of the auto transition asset 2019-04-15 17:11:48 -04:00
Thibault Saunier e31aa62f7b tree: Plug a GList leak 2019-04-15 17:11:48 -04:00
Thibault Saunier 45c2d81a4e pipeline: Plug pad leak 2019-04-15 17:11:48 -04:00
Thibault Saunier cfd5fda38d title: Deprecate method that return newly allocated const gchar*
This is just plain broken 190643508f
but we can't do anything about it.
2019-04-15 17:11:48 -04:00
Thibault Saunier 5c54ba55b7 Plug some GError leaks when loading assets 2019-04-15 17:11:48 -04:00
Thibault Saunier 683f827a8b xml-formatter: Free pending clips on disposal 2019-04-15 17:11:48 -04:00
Thibault Saunier de7c0731f5 asset: Plug a GError leak 2019-04-15 17:11:48 -04:00
Thibault Saunier 61c14b6406 asset: s/unsure/ensure 2019-04-15 17:11:48 -04:00
Thibault Saunier 9d4e0640c7 asset: Plug a leak of EncodingProfiles 2019-04-15 17:11:48 -04:00
Thibault Saunier adc4843f53 xml-formatter: Plug leaks of pending groups 2019-04-15 17:11:48 -04:00
Thibault Saunier 0dcf78f3ec asset: plug a GTask leak 2019-04-15 17:11:48 -04:00
Thibault Saunier 7f0810bae7 Fix splitting control bindings leaks 2019-04-15 17:11:48 -04:00
Thibault Saunier 7d7be4eecd tree: Fixup some GList leaks 2019-04-15 16:18:11 -04:00
Yeongjin Jeong 05d919a2eb uri-asset: Ensure that the discoverer stops on deinit.
Discoverer maintain a referernce on the discoverer object while
the async timeout callback is alive to prevent a potential crash
if the object is freed while the callback is pending.

But if g_main_context is released before calling the timeout callback,
the discoverer pointer which was weak referenced from GESUriClipAssetClass
will not be disposed because the discoverer object is not finalized.
2019-04-15 18:37:58 +09:00
Jakub Adam 0ce4b5cb85 videosource: Expose video-direction child property 2019-03-20 09:17:38 +01:00
Jakub Adam 77dac21488 videosource: auto-flip the image according to image-orientation tag
If there's image-orientation tag, make sure the image is correctly
oriented before we scale it.
2019-03-19 10:01:40 +01:00
Tim-Philipp Müller 64f23a2a80 Fix autotools build 2019-03-16 15:04:29 +00:00
Thibault Saunier 521b0fc8b7 clip: Make sure to set the pasted clip start before adding to layer
And handle the fact that adding to a layer can fail.

Also plug some leaks in the dispose method (and use the dispose
vmethod instead of finalize as appropriate).
2019-03-15 23:51:55 +00:00
Thibault Saunier b294b56a76 clip: Emit signals while splitting in a way the operation is undoable
Basically if we do not emit a "duration" change of the clip being
splitted first when executing the 'reverse' operations would lead
to fully overallaping clips.
2019-03-15 23:51:55 +00:00
Thibault Saunier a46390ff56 Reimplement the timeline editing API
This is implemented on top of a Tree that represents the whole timeline.

SourceClips can not fully overlap anymore and the tests have been
updated to take that into account. Some new tests were added to verify
that behaviour in greater details
2019-03-15 23:51:55 +00:00
Thibault Saunier fa909a7cef timeline: Rename group_id to stream_start_group_id 2019-03-15 23:51:55 +00:00
Thibault Saunier 7c5f2d11b2 timeline-element: Add a method to retrieve layer priority
Each timeline element is in a layer (potentially spanning
over several), it is very often useful to retrieve an element
layer priority (from an app perspective more than the element
priority itself as that is a bit of an implementation detail
in the end).

Port tests to it
2019-03-15 23:51:55 +00:00
Thibault Saunier 694e39186b Add API to get the GESEdge names 2019-03-15 23:51:55 +00:00
Thibault Saunier 69456e4f14 ges: Move GESClipFlags to GESTimelineElementFlags
Keeping it internal

And add an internal method to get layer priority for GESTimelineElements
(dirty implementation to make it simple for now)
2019-03-15 23:51:55 +00:00
Thibault Saunier b4bdf51935 layer: factor out a method to remove an object without signaling it 2019-03-15 23:51:55 +00:00
Thibault Saunier 72519e6c5c timeline: No error when moving an object as part of the context
It will just happen from the context
2019-03-15 23:51:55 +00:00
Thibault Saunier 1a69f0d535 timeline: Not being able to trim and object is an error
So error out when that happens.
2019-03-15 23:51:55 +00:00
Thibault Saunier 100276d02a timeline: Setting duration to the same value is valid
And should not be advertised as if the operation failed.
2019-03-15 23:51:55 +00:00
Thibault Saunier 22ae41e984 timeline: Do not ripple if resulting duration would be 0 2019-03-15 23:51:55 +00:00
Thibault Saunier 1c2784daa6 clip: Add a method to get the priority of the layer it is in
Just an helper method to get the 'priority of a the clip'
2019-03-15 23:51:55 +00:00
Thibault Saunier c901e4289a clip: Rollback moving clips when moving a contained TrackElement fails
And fix unit tests to match the correct behaviour
2019-03-15 23:51:55 +00:00
Thibault Saunier 957d9a01fe Shorten GES_FORMAT output 2019-03-15 23:51:55 +00:00
Thibault Saunier 430719d172 clip: Make sure to remove and re add effects when adding clips to layer
And make re add them in the same order.

And enhance tests to check that
2019-03-15 23:51:55 +00:00
Thibault Saunier 23d3e69f2b source: No checks when linking default elements 2019-03-15 23:51:55 +00:00
Thibault Saunier 85f0e76566 asset-uri: Create a specific discoverer when discovering sync
To allow 'reintrancy'.

This was a 'regression' introduced in bad64296d9

Fixes https://gitlab.gnome.org/GNOME/pitivi/issues/2278
2019-03-14 12:35:23 +00:00
Pat DeSantis ce94db774d Mark ges_timeline_load_from_uri as deprecated 2019-03-12 17:30:02 +00:00
Pat DeSantis 9c14cb33ea Update deprecation warning to match GTK style 2019-03-12 17:30:02 +00:00
Pat DeSantis d352ce911a Mark ges_formatter_save_to_uri as deprecated 2019-03-12 17:30:02 +00:00
Seungha Yang 41597dfdfd ges: Enhance ges_{init/deinit} documentation
Add some init/deinit related comment and make assertion when
ges_deinit() is called from unexpected thread.
2019-03-12 15:17:18 +00:00
Seungha Yang bdbd485ad0 ges-meta-container: Fix g-i annotation
ges-meta-container.c:516: Warning: GES: invalid "allow-none" annotation:
only valid for pointer types and out parameters
2019-02-11 18:27:53 +09:00
Thibault Saunier 9748b963b6 Fix segfault when adding clips to group outside a timeline
Making sure that objects are inside a timeline before adding/removing them from it

Fixes https://gitlab.freedesktop.org/gstreamer/gst-editing-services/issues/35
2019-01-30 20:04:04 +00:00
Yeongjin Jeong 099934c35f layer: Fix asset leak 2019-01-29 16:17:00 +09:00
Yeongjin Jeong 5a4cf445cd effect: Fix string leak 2019-01-29 16:16:55 +09:00
Yeongjin Jeong 70deab616a uri-asset: Implement dispose vmethod for GESUriSourceAsset
... and fix DiscovererStreamInfo leak
2019-01-29 16:16:49 +09:00
Yeongjin Jeong f5f63ecdf3 uri-asset: Don't forget to unref DiscovererInfo on dispose
Dispose() must unref DiscovererInfo ownership
taken by ges_uri_clip_asset_set_info().
2019-01-29 16:16:13 +09:00