Commit graph

1722 commits

Author SHA1 Message Date
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
Yeongjin Jeong
e36ae315dc video-transition: Fix GstPad leak
Returned Gstpad by link_element_to_mixer_with_smpte()
has increased refcount in ges_smart_mixer_get_mixer_pad().
2019-01-29 16:15:03 +09:00
Alexandru Băluț
c750345c75 timeline: Better handle loading inconsistent timelines
Auto transition when having 3 overlapping clips in a same point in the
timeline is not supported as we can't handle it in a nice way. Before we
to avoid creating 2 overlapping transitions (which is plain broken in
NLE) were completely disabling `auto-transition` and removing all
auto-transitions in the timeline but this is pretty weird for the end
user. This commit changes and now makes sure 2 transitions are not
created in the same place.

Also cleanup previous test case.
2019-01-28 21:32:58 -03:00
Thibault Saunier
aa2f29bad3 s/accured/occurred/g 2019-01-29 00:06:32 +00:00
Thibault Saunier
d9f457c578 xml-formatter: Minor debug enhancement 2019-01-29 00:06:32 +00:00
Thibault Saunier
bad64296d9 uri-asset: Use the same code path for sync discovery as the async one
And start handling relocated assets.

Also expose the discoverer callback as a vmethod so that we can
overridde the discoverer when necessary (to handle discovering of
timeline through gesdemux for example)
2019-01-29 00:06:32 +00:00
Thibault Saunier
c596f80c63 nlecomposition: Get overall pipeline position by recursing up
And handle NLEComposition inside NLEComposition

Fixes https://gitlab.freedesktop.org/gstreamer/gst-editing-services/issues/39
2019-01-29 00:06:32 +00:00
Thibault Saunier
d8f2a406a7 videomixer: Drop allocation query after the compositor
Working around https://gitlab.freedesktop.org/gstreamer/gstreamer/issues/310
2019-01-29 00:06:31 +00:00
Thibault Saunier
dea6f0df98 layer: Resort clips before syncing priorities
We set the priorities making the assumption that `start_clips` is properly
ordered by start!

Fixes https://gitlab.gnome.org/GNOME/pitivi/issues/2254
2019-01-28 19:19:46 -03:00
Seungha Yang
fa2d6f360a Revert "ges: Add missing type unref on deinit"
This reverts commit e939cfebaf.

Class might not be initialized if they were already registered
when ges_init() was called, but were not created until ges_deinit() called.
2019-01-28 17:39:31 +09:00
Seungha Yang
702c298122 ges: Add check sync/async discoverer
To support ges_{init/deinit} multiple times in a process,
there should be a method for setting up internal object/table of
GESUriClipAssetClass. because *_class_init() will be called
only once in process lifecycle.
2019-01-28 17:37:10 +09:00
Seungha Yang
173badbccf uri-asset: Add missing GHashTable cleanup
... and use g_object_unref() for GFile object, it's not a GstObject.
2019-01-28 17:35:04 +09:00
Seungha Yang
d623411a26 ges: Print initialize error reasons 2019-01-28 17:35:04 +09:00
Seungha Yang
2f491b60c8 ges: Simplify init/deinit flag
In theory, GES can be init/deinit multiple times in a process.
To simplify that use-case, let's trace only "ges_initialized" flag.
2019-01-28 17:35:04 +09:00
Corentin Noël
87925a72da uri-asset: Add ges_uri_clip_asset_finish to get better introspection
Vala requires a matching _finish function to correctly bind the method with the right finish method.
2019-01-23 11:51:08 +00:00
Corentin Noël
e7f63b03f8 timeline: fix two issues in the documentation 2019-01-21 14:15:14 +01:00
Thibault Saunier
031803e947 xml-formatter: Do not forget to serialize clips metadata 2019-01-20 14:06:28 +00:00
Thibault Saunier
1f1b1c8cba xml-formatter: Serialize groups metadatas 2019-01-20 14:06:28 +00:00
Seungha Yang
c883f98961 uri-asset: Don't leak GstDiscovererInfo 2019-01-18 20:32:02 +00:00
Seungha Yang
5a46f2eae9 uri-asset: Impl. dispose vfunc
... and fix GList/GESAsset leak
2019-01-18 20:32:02 +00:00
Seungha Yang
075a5df24f transition-clip: Don't leak GESAsset
Returned GESAsset from ges_asset_request should be freed since
ges_extractable_set_asset doesn't take ownership
2019-01-18 20:32:02 +00:00
Seungha Yang
f850da7e4b framepositioner: Fix invalid memory access
The GstFramePositioner might be finalized before the notify callback

Without this commit,
gst-editing-services / ges_basic / test_ges_timeline_remove_track
can reproduce the case.
2019-01-18 20:32:02 +00:00
Seungha Yang
e1fff8f864 asset: Fix various leak 2019-01-18 20:32:02 +00:00
Seungha Yang
eb226bc544 enums: Add missing unref 2019-01-18 20:32:02 +00:00
Seungha Yang
580f45dddb structure-parser: Add missig chain up code 2019-01-18 20:32:02 +00:00
Seungha Yang
e939cfebaf ges: Add missing type unref on deinit 2019-01-18 20:32:02 +00:00
Seungha Yang
ef173bb7c4 ges: Cleanup internal hash table on deinit
System-wide once allocated but it makes tracing leak hard
2019-01-18 20:32:02 +00:00
Seungha Yang
15c891e76a ges: Make init/deinit thread safe
Although it might be uncommon use case, init/deinit could be called
in non-main thread.
2019-01-18 20:32:02 +00:00