Commit graph

477 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
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
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
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
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
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
Alexandru Băluț
f987db47a7 clip: Emit additional signals after child-removed
When removing an effect from a clip, first the notify::priority signals
were being emitted for the remaining effects which changed priority, and only
at the end the child-removed signal. Now the child-removed signal is emitted
first.
2018-11-07 09:09:22 -03:00
Thibault Saunier
2443b1a413 clip: Resync priorities when removing an effect
When removing a top effect in the list of top effects, other
effects priorities need to take that into account to avoid
holes in the indices.
2018-09-05 21:52:37 -03:00
Nirbheek Chauhan
6a806a0dd7 meson: There is no gstreamer-plugins-good-1.0.pc
There is no installed version of that, only an uninstalled version.
2018-08-15 19:15:02 +05:30
Thibault Saunier
bfb943be1b formatter: Serialize Transition border and invert properties
Marking them as children properties and properly allow serializing
clips children properties.

This doesn't handle several TrackElement of a same type with
different property values but this require more worked already
marked as fixme to allow specifying full path of elements in the
children properties API.

See https://gitlab.gnome.org/GNOME/pitivi/issues/1687
2018-07-28 14:25:07 -04:00
Thibault Saunier
e6a270c80c tests: Minor assertion enahncements 2018-07-21 12:03:02 -04:00
Thibault Saunier
db827dbd00 python: Fix GES.Timelineset_child_property
Implementing it in the overrides as PyGObject won't be able to properly
convert python values to GValues in some cases. Using
g_object_set_property works as some logic is implemented inside
PyGObject for that particular case. This is a "regression" due
to https://bugzilla.gnome.org/review?bug=769789&attachment=348766 were
we end up with an OverflowError while setting G_TYPE_UINT children
properties.
2018-07-08 16:02:28 -04:00
Thibault Saunier
1ddc54ee05 tests: Use gst-validate-launcher to run python tests 2018-06-15 18:09:37 -04:00
Thibault Saunier
33d6490308 clip: Make sure to never snap when splitting clips
It makes no sense to snap in that context.

https://gitlab.gnome.org/GNOME/pitivi/issues/2193
2018-05-14 10:42:56 -04:00
Thibault Saunier
136456e180 Deprecate ges_layer_set_priority
Keep old behaviour but deprecate the method and property as
ges_timeline_move_layer should be used instead.
2018-03-31 13:44:14 -03:00
Thibault Saunier
bd142e285d clip: Make sure to create transition after a clip is splitted
In the (now tested) scenario where we have a transition on the right
side of a clip we are splitting, auto transitions can't be created
because we resize the clip after adding the new one, meaning that
there are 3 elements in the "transition zone", we need to force
auto transition creation after the splitting.

Fixes https://gitlab.gnome.org/GNOME/pitivi/issues/2142
2018-03-18 11:31:17 -03:00
Thibault Saunier
f219111631 test: Plug minor leaks 2018-02-27 10:00:32 -03:00
Edward Hervey
da9b08c618 check: Fix minor leak in test 2017-12-20 14:28:33 +01:00
Edward Hervey
af40ec08fc check: Actually define a registry to use for tests
Otherwise every single run of every single test would recreate
a registry
2017-11-23 15:49:48 +01:00
Thibault Saunier
4db3800f98 Revert "timeline: Return FALSE when commiting an empty timeline"
This commit means that we do not get ASYNC_DONE anymore when commiting
an empty timeline, which means that we need to special case that.

This actually broke some code and does not bring in much.

Fixes https://phabricator.freedesktop.org/T7802
Fixes https://phabricator.freedesktop.org/T7797

This reverts commit e570d1e080.

Thanks @stefanzzz for investigating!
2017-08-29 22:27:42 -03:00
Tim-Philipp Müller
7bec37a755 tests: don't use private debug category in asset test
That will lead to undefined symbol errors once it no
longer gets exported.
2017-08-11 22:24:28 +01:00
Thibault Saunier
5e4770ccb9 tests: Initialize GES only once in the main process
Fixing calling deinit in a process where init was not called
when libcheck is forking.
2017-07-11 11:40:55 -04:00
Thibault Saunier
797ee730b0 meson: Do not use path separator in test names
Avoiding warnings like:

    WARNING: Target "elements/audioamplify" has a path separator in its name.
2017-06-07 12:51:17 -04:00
Thibault Saunier
6a37782549 meson: Use get_pkgconfig_variable instead of calling pkg-config ourself
It is avalaible in meson 0.36 which is now are requirement

Nothing happens on not found dependencies.
2017-03-28 14:29:26 -03:00
Thibault Saunier
f57ca17a22 meson: test: Fix environment object usage
And make sure to bring -good plugins in.
2017-03-28 11:29:37 -03:00
suhas2go
6dc0cd0dec layer: Add ability to get clips in a given interval
Reviewed-by: Alex Băluț <<alexandru.balut@gmail.com>>
Reviewed-by: Thibault Saunier <thibault.saunier@collabora.com>
Differential Revision: https://phabricator.freedesktop.org/D1689
2017-03-28 11:29:37 -03:00
Thibault Saunier
e570d1e080 timeline: Return FALSE when commiting an empty timeline
Meaning that ASYNC_DONE/COMMITED is always emited when TRUE is returned
2017-03-06 12:19:16 -03:00
Guillaume Desmottes
da851b254d mixers: fix leaks in tests
- GstMessage and GstBus references were lost
- Need to call gst_bus_remove_signal_watch() for each
gst_bus_add_signal_watch_full() call

https://bugzilla.gnome.org/show_bug.cgi?id=778248
2017-02-06 11:44:48 -03:00
Guillaume Desmottes
53c5bc069c introduce ges_deinit()
GstDiscoverer objects were leaked by tests making the leaks detector
unusable.
Introduce ges_deinit(), similiar to gst_deinit(), doing some cleanup
before exiting the process.

https://bugzilla.gnome.org/show_bug.cgi?id=776805
2017-02-06 09:49:20 -03:00
Thibault Saunier
ab7865d41c clip: Make sure that clip start change is notified before children changes
Fixes https://phabricator.freedesktop.org/T7577

Differential Revision: https://phabricator.freedesktop.org/D1600
2017-01-09 19:49:19 -03:00
Alexandru Băluț
00d6c1e5ae tests_: Check the order of signals when a transition is created
Reviewed-by: Thibault Saunier <thibault.saunier@collabora.com>
Differential Revision: https://phabricator.freedesktop.org/D1391
2017-01-09 19:49:17 -03:00
Thibault Saunier
054ac40473 tests: Remove now meaningless empty testsuite 2016-12-16 14:04:28 -03:00
Thibault Saunier
9dd859403d tests: Make sure tests can be listed
Initializing GstCheck before creating the testsuite
2016-12-14 09:13:18 -03:00
Thibault Saunier
b6b640d046 test:nle: Soften check on refcount
The composition might already have taken a new ref processing the
source.
2016-12-01 15:52:37 -03:00
Thibault Saunier
3ac6f84259 tests: Fix running python unit tests
Adding missing nose2-junit-xml.cfg.in file and minor fixes in
the way we call nose2 also making sure the .xunit files end
up in the right place.
2016-11-15 19:11:39 -03:00
Alexandru Băluț
d88cee856e tests_: Use nose2 instead of nosetests
Differential Revision: https://phabricator.freedesktop.org/D1394
2016-11-09 18:35:41 -03:00
Mathieu Duponchelle
73cf36fa25 timeline: reimplement snap_to_position a bit more appropriately.
It could yet be made be simpler, but it would require
touching the rest of the timeline editing code.

Fixes https://phabricator.freedesktop.org/T7587

Reviewed-by: Thibault Saunier <thibault.saunier@collabora.com>
Differential Revision: https://phabricator.freedesktop.org/D657
2016-11-09 18:35:12 -03:00
Thibault Saunier
1b5c3cb865 timeline: Avoid creating extra transition when rippling clips
In some cases when rippling clip we could get the algo lost because
a transition existed between two clips (for example at the end of c1
and at the begining of c2) but while rippling it would have required
a transition at the end of c2 and beginning of c1, and we were properly
not destroying the old one (as the two clips were in the moving context)
but we were still creating the other transition in the end...

Reviewed-by: Alex Băluț <alexandru.balut@gmail.com>
Differential Revision: https://phabricator.freedesktop.org/D1362
2016-11-04 15:56:36 -03:00
Thibault Saunier
a2ae8762af timeline: Make sure transitions between rippled clips are never deleted
Reviewed-by: Alex Băluț <alexandru.balut@gmail.com>
Differential Revision: https://phabricator.freedesktop.org/D1361
2016-11-04 15:56:34 -03:00
Thibault Saunier
e31b8627ef timeline: Destroy transition if a neighbor is not being moved to a layer
And make sure that we move the transition to the right layer, not trying
to figure it out.

Differential Revision: https://phabricator.freedesktop.org/D1360
2016-11-04 15:56:31 -03:00
Alexandru Băluț
ad6aab49ae tests_: Check transition is gone when editing clip to another layer
Differential Revision: https://phabricator.freedesktop.org/D1359
2016-11-04 15:56:30 -03:00
Nirbheek Chauhan
b63d64cb85 Revert "meson: move gstreamer-check-1.0 dependency to tests/check"
This reverts commit 5665c2bfc9.

Does not actually work. See:
https://bugzilla.gnome.org/show_bug.cgi?id=773114#c31
2016-10-25 11:48:35 +05:30
Thibault Saunier
5665c2bfc9 meson: move gstreamer-check-1.0 dependency to tests/check 2016-10-21 05:49:18 -03:00
Thibault Saunier
1d6167f07d meson: Use environment object to setup test environment variables
Bump meson requirement to 0.35
2016-10-14 17:44:00 +02:00