Commit graph

1865 commits

Author SHA1 Message Date
Thibault Saunier 85e966963e project: Add a signal to notify when a new timeline is starting to load 2019-05-23 18:54:42 -04:00
Sebastian Dröge acf3e31907 timeline-element: Mark edit() as Since: 1.18 2019-05-16 15:09:51 +03:00
Sebastian Dröge 214987bd8a ges: Sprinkle around some Since: 1.16 markers 2019-05-16 15:09:13 +03:00
Thibault Saunier 99cee9218b ges: Deprecate ges_play_sink_convert_frame
It has nothing to do in our namespace/API
2019-05-13 17:00:00 -04:00
Thibault Saunier fcfa18ac76 More porting to markdown 2019-05-13 10:30:35 -04:00
Thibault Saunier 4cd054dea0 title-clip: Enhance documentation 2019-05-13 10:30:35 -04:00
Thibault Saunier e7816eba1d doc: Build documentation with hotdoc 2019-05-13 10:30:35 -04:00
Thibault Saunier 5caf822526 docs: Minor fixes 2019-05-13 10:30:19 -04:00
Thibault Saunier d87578c843 element: Make return value of setters mean something
Setters return values should return %FALSE **only** when the value
could not be set, not when unchanged or when the subclass handled
it itself!

This patches makes it so the return value is meaningul by allowing
subclasses return anything different than `TRUE` or `FALSE` (convention
is -1) to let the subclass now that it took care of everything and
no signal should be emited.
2019-05-02 12:10:11 -04:00
Thibault Saunier 2ab26ab306 ges: Move ges_container_edit to GESTimelineElement
Now that the notion of layer has been moved down to #GESTimelineElement
(through the new #ges_timeline_element_get_layer_priority method), this
method make much more sense directly in the base class.
2019-05-01 12:24:30 -04:00
Thibault Saunier b09ed0d0c3 asset: Avoid unrefing a task we do not own 2019-04-18 16:44:41 -04:00
Alexandru Băluț 056198b15e clip: Optimize set_top_effect_index by checking parent sooner 2019-04-17 21:56:21 +00:00
Alexandru Băluț 5e008dbc77 clip: Return TRUE when the the effect index does not change 2019-04-17 21:56:21 +00:00
Alexandru Băluț 547a340629 clip: Remove obsolete FIXME 2019-04-17 21:56:21 +00:00
Alexandru Băluț 07ee386d30 container: Call _remove_child when cannot set parent
ges_container_add removes the child being added if the call to
ges_timeline_element_set_parent fails. In this case, subclasses should
be given the chance to revert the effects of the add_child vmethod which
has just been called.
2019-04-17 21:56:21 +00:00
Alexandru Băluț 134e2ffae1 ges: Remove unused nb_effects field 2019-04-17 21:56:21 +00:00
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
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
Seungha Yang 691b6f6f04 asset: Use static lock
The mutex life cycle follows processs.
2019-01-18 20:32:02 +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
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
Thibault Saunier 9a20b4cfe9 track-element: Ignore writability for whitlisted children props
If the property was explicitely whitelisted, we should expose it
in any case.

This was a regression from 835d693749
2019-01-04 12:36:20 +01:00
Tim-Philipp Müller 84651fcac7 ges: avoid use of G_DECLARE_FINAL_TYPE which requires GLib 2.44
Fixes https://gitlab.freedesktop.org/gstreamer/gst-editing-services/issues/48
2018-12-30 19:49:44 +00:00
Seungha Yang 1ba5911890 container: Fix GHashTable leak 2018-12-27 10:57:30 +09:00
Seungha Yang f77eb964dd container: Fix wrong finalize() usage
finalize must chain up to parent's finalize(), not dispose()
2018-12-27 00:18:04 +09:00
Seungha Yang acbd7e7bc5 timeline-element: Chain up to parent impl. on dispose()
... as documented in glib
2018-12-27 00:14:03 +09:00
Tim-Philipp Müller a7347ca8f7 WIP: ges: fix API export/import and 'inconsistent linkage' on MSVC
Export GES library API in headers when we're building the
library itself, otherwise import the API from the headers.

This fixes linker warnings on Windows when building with MSVC.

Fix up some missing config.h includes when building the lib which
is needed to get the export api define from config.h

Fixes https://gitlab.freedesktop.org/gstreamer/gst-editing-services/issues/42
2018-12-15 00:14:51 +00:00
Matthew Waters 059af7ba32 build: also allow building static libraries for e.g. Android/iOS 2018-12-10 13:28:16 +11:00
Thibault Saunier 906ee53a36 Add a way to disable xptv support
This formatter is in very bad shape and is generally not useful.

It has been deprecated since 1.0... and I bet noone uses it.
2018-11-30 15:40:43 -03:00
Thibault Saunier 1b75f8e5b1 track: Fix documentation about "binding_type" 2018-11-27 13:49:56 -03:00
Thibault Saunier f85a1bd3a3 validate: cleanup the playback-time from validate structures
Otherwise we might fail on them in the ges-structure-interface
2018-11-26 14:50:03 -03:00
Thibault Saunier f1baf1a739 effect: Create ghost pads ourself
As we can have effects with several pads and the default ghosting
doesn't allow that.

This way we also filter the pads to ghost to match our track type.
2018-11-23 11:44:14 -03:00
Thibault Saunier 8cf4605b92 effect: Consider the "Filter" classification to determine effect media type 2018-11-23 11:20:00 -03: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
Víctor Manuel Jáquez Leal c04342e4f1 timeline-element: Fix compilation errors
There were some code errors introduced in commit 6b738b7a
2018-11-05 13:58:06 +01:00
Corentin Noël 6b738b7aa4 timeline-element: Align virtual methods and invokers prototypes 2018-11-05 11:00:58 +01:00
Thibault Saunier acc294bf5a ges: Check the thread from which our API is used
And add some missing API guards
2018-11-03 08:27:58 -03:00
Thibault Saunier 534855d42e ges: Mark GValue in child property setters as const
We can't change the vmethod at this point so just cast. This makes
the API more explicit so it is better in all cases.
2018-11-02 09:43:50 -03:00
Thibault Saunier 412fd0107c Keep GESSmartVideoMixer out of the Gir and add geseffectasset.h to ges.h
Fixing gstreamer-sys rust bindings.
2018-10-31 10:40:33 -03:00
Thibault Saunier 023bc72d9e Fix the package name in the gir to match the .pc filename 2018-10-31 10:06:08 -03:00
Thibault Saunier 3c7f488fc2 video-transition: Port to the new 'operator' API in compositor
Now subclassing a ghostpad with an alpha property so that
we can multiply the alpha of the frame positioning meta
and the alpha of that pad, setting it on the compositor pad.

https://bugzilla.gnome.org/show_bug.cgi?id=797169
2018-10-29 13:50:16 +00:00
Thibault Saunier b64dd33661 Revert "video-transition: Make use of the new compositor::crossfade-ratio property"
This reverts commit 57be9b6799.
2018-10-28 15:33:31 +00:00
Thibault Saunier 77f8107d64 nlecomposition: Add a function that prints stacks as debug info 2018-10-28 13:23:49 +00:00
Sebastian Dröge ee7c2d07b8 ges: Fix compilation with latest GLib
g_clear_pointer() is now preserving the type of its arguments for the
free function.

ges-xml-formatter.c: In function ‘_dispose’:
ges-xml-formatter.c:1635:7: error: function called through a non-compatible type [-Werror]
       (GDestroyNotify) g_hash_table_unref);
/usr/include/glib-2.0/glib/gmem.h:121:8: note: in definition of macro ‘g_clear_pointer’
       (destroy) (_ptr);                                                        \
        ^~~~~~~

https://bugzilla.gnome.org/show_bug.cgi?id=797310
2018-10-22 08:14:28 +01:00
Thibault Saunier 13b8c8554d Update for g_type_class_add_private() deprecation in recent GLib 2018-09-05 22:57:27 -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
Thibault Saunier e71e1cc9fb ges: Check that nle is avalaible when initializing 2018-09-03 12:37:59 -03:00
Nirbheek Chauhan 67f2be1987 meson: Maintain macOS ABI through dylib versioning
Requires Meson 0.48, but the feature will be ignored on older versions
so it's safe to add it without bumping the requirement.

Documentation:
https://github.com/mesonbuild/meson/blob/master/docs/markdown/Reference-manual.md#shared_library
2018-08-31 14:44:58 +05:30
Thibault Saunier e4d4e0df1e formatter: Fix mixup in variable check 2018-07-29 16:26:49 -04:00
Thibault Saunier 2381090378 xml-formatter: Bump format version
Previous commit makes the format not forward compat.
2018-07-28 14:29:11 -04:00
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 5f5cbd111c project: Compute relocation URIs in missing-uri signal
Until know we were doing it outside of the signal and subclasses didn't
have a chance to know that some assets was relocated.

This is required so that Pitivi can handle proxy delation and relocated
assets.

Required for https://gitlab.gnome.org/GNOME/pitivi/issues/2203
2018-07-27 22:56:23 -04:00
Thibault Saunier fd029e1251 pitivi-formatter: Do not g_file_test on a NULL pointer 2018-07-21 12:03:28 -04:00
Thibault Saunier ad4eb9a065 project: Do not emit 'error-loading-asset' when we are trying to update the ID 2018-07-21 12:02:35 -04:00
Thibault Saunier ab22f339e6 track: Set restriction caps when update_restriction before caps being set
And stop leaking intermediary restriction caps.

https://bugzilla.gnome.org/show_bug.cgi?id=796802
2018-07-12 15:47:13 -04:00
Bastian Köcher 2a190557cf meson: fix install dir for configure files
Nixos configures a custom includedir.

https://bugzilla.gnome.org/show_bug.cgi?id=794856
2018-07-07 12:55:16 +02:00
Thibault Saunier d6018ebaf5 Set GLib log domain to GES 2018-07-01 16:22:39 -04:00
Thibault Saunier 6e5e263306 group: Handle clips that get readded to a layer and inside a group 2018-07-01 12:42:18 -04:00
Mathieu Duponchelle 38a78651e2 asset: documentation fix 2018-06-26 16:21:22 +02: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 3be03c13c1 pipeline: Properly error out when linking fails
In the rendering case we were getting random issues and often the
pipeline was not be able to preroll as some pad were not linked inside
encodebin.

https://bugzilla.gnome.org/show_bug.cgi?id=795422
2018-04-20 19:24:56 -03:00
Thibault Saunier 835d693749 track-element: Fix the way we look for properties on simple elements
Refactor so that the same code is used to add children properties from
bin children and when inspecting a single element.
2018-04-20 19:24:56 -03:00
Thibault Saunier 561fcfb576 pipeline: Update caps only when rendering as comment suggests
We used to update caps for any more because of missing brackets.
2018-04-20 19:24:56 -03:00
Thibault Saunier 05115da59e effect: Allow setting properties on any element specified by the user
Those are the elements he cares about and we should expose their APIs
as is, event if they are not classified as effects. For example if
the user want to use a capsfilter as effect, he should be able to set
its caps.
2018-04-20 19:24:56 -03:00
Thibault Saunier f3762035e7 xml-formatter: Print error if an effect can't be set when deserializing 2018-04-20 19:24:56 -03: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 11b24922a1 timeline: Add a method to move layers around
summary_:
This way the timeline can handle all priorities for the user
making the API simpler to use.

API:
  + ges_timeline_move_layer

reviewers_: Mathieu_Du
Differential Revision: https://phabricator.freedesktop.org/D232
2018-03-31 11:28:09 -03:00
Thibault Saunier dc36dd1afe timeline-element: Fix ABI breakage
New fields in structure should be added in place of the padding
2018-03-31 11:24:37 -03:00
Thibault Saunier 6d67debc10 ges-launcher: Add support for titles 2018-03-30 18:30:33 -03:00
Thibault Saunier 0f486de0d9 command-line-formatter: Refactor to generate the documentation automatically
https://bugzilla.gnome.org/show_bug.cgi?id=794837
2018-03-30 18:27:51 -03:00
Thibault Saunier 15782c6ecd ges: Update the media-duration-factor each time a child property is set
Otherwise the changes won't be reflected in the NLE backend.

This makes speed changes working inside ges-launch-1.0

  ges-launch-1.0 +clip /path/to/file i=10 d=5 +effect videorate set-rate 5.0

https://bugzilla.gnome.org/show_bug.cgi?id=794699
2018-03-26 12:39:55 -03:00