Commit graph

3217 commits

Author SHA1 Message Date
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
62dba13ccf plugins: Add an a gesdemux element to 'demux' serialized timelines 2019-01-29 00:06:32 +00:00
Thibault Saunier
4b324da3f4 plugins: implement a gessrc element useable from playbin
This is a new simple GstBin that can handle the ges:// uris
and will directly expose the srcppads of the tracks present in the
timeline.
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
044c2a2d75 tests: asset: Add test async asset request with custom GMainContext
... and test call ges_{init/deinit} multiple times in a unit test.
2019-01-28 19:31:52 +09: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
23845faa90 tests: asset: Remove out-of-date comment 2019-01-28 17:35:04 +09:00
Seungha Yang
27212f2d10 tests: asset: Remove pointless gst_init()
It's done by GST_CHECK_MAIN() already
2019-01-28 17:35:04 +09:00
Seungha Yang
78b38f26a7 tests: init/deinit per test case
... in order to verify init/deinit pair.
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
b2c8b23c51 nleoperation: Fix GstPad leak
Returned GstPad by nle_object_remove_ghost_pad() has increased
refcount.
2019-01-18 20:32:02 +00:00
Seungha Yang
98b2d7754f nleghostpad: Fix GstEvent leak 2019-01-18 20:32:02 +00:00
Seungha Yang
783aba17f6 nlecomposition: Don't leak GNode
Clear the last node before update
2019-01-18 20:32:02 +00:00
Seungha Yang
61c2eb6735 tests: nle: Fix various leak
Don't leak GError and GstPad object
2019-01-18 20:32:02 +00:00
Seungha Yang
a157c9fa10 tests: nle: Fix GList leak 2019-01-18 20:32:02 +00:00
Seungha Yang
a799e1be23 tests: ges: Fix various leak 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
0b4a604107 nlecomposition: Clear all members before chaining up to parent on finalize 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
Seungha Yang
691b6f6f04 asset: Use static lock
The mutex life cycle follows processs.
2019-01-18 20:32:02 +00:00
Seungha Yang
e2533a68dc tests: Increase timeout value to 360 sec
Use consistent timeout value with core and other plugins.
Otherwise, valgrind sometimes timed out with default timeout 30sec.
2019-01-18 09:40:25 +09:00
Seungha Yang
8b3e304f15 nlecomposition: Don't try dump null stack
Fixes following assertion
Unexpected critical/warning: g_node_traverse: assertion 'root != NULL' failed
2019-01-17 23:21:34 +09:00
Tim-Philipp Müller
02cdb8b051 Release 1.15.1 2019-01-17 02:30:08 +00:00
Thibault Saunier
463ded894a ges: Register formatters during meta registration
So that formatters implemented outside GES itself are registered
2019-01-14 18:32:38 -03:00
Thibault Saunier
b3332e5ab3 ges: Add a ges_is_initialized function 2019-01-14 18:32:38 -03:00
Thibault Saunier
11334118fa formatter: sink ref of the temporary GESFormatter
To accomodate formatters implemented with bindings/in python
2019-01-14 18:32:38 -03:00
Seungha Yang
3b0da0611c pipeline: Ensure timeline state to be NULL on dispose
The GESTimeline's state might not be synced with parent
2019-01-09 20:25:24 +09:00
Seungha Yang
fd10d69bc5 nlecomposition: Handle state change failure
Whatever the reason for failure, try cleanup child elements
and internal thread.
2019-01-09 20:25:15 +09:00
Alexandru Băluț
a83d539390 ges-meta-container: Fix warning message 2019-01-05 10:58:57 +00:00
Alexandru Băluț
fd7e6aa204 ges-meta-container: Minor documentation fixes 2019-01-05 10:58:57 +00:00