Otherwise we could have not negotiated errors in audiomixer when
the channel/channel-mask do not match
Differential Revision: https://phabricator.freedesktop.org/D493
Reviewed-by: Mathieu Duponchelle <mathieu.duponchelle@opencreed.com>
We just need to make sure they are always serialized in the right
order (which is the case) and de serializing them will lead to the
right behaviour.
We should not serialize the priority as the priority of the source
itself depends on the action having been done on the parent clip,
and we do not serialize the source priorities (and should not, GES
should just do the right thing).
Differential Revision: https://phabricator.freedesktop.org/D491
Summary:
Normally, mixing_operation is created and added to nlecomposition
as a child element so it will be freed when nlecomposition is removed
from a track.
Reviewers: thiblahute
Projects: #gstreamer_editing_services
Differential Revision: https://phabricator.freedesktop.org/D319
Summary:
Manual iteration can be replaced with foreach function.
In addition, this patch fixes mismatched GFunc type for
g_list_foreach and adds debug cateory for gst-asset for
convenient debugging.
Reviewers: thiblahute
Reviewed By: thiblahute
Differential Revision: https://phabricator.freedesktop.org/D312
Summary: A passed GError is re-allocated when discoverer has no information.
Reviewers: thiblahute
Projects: #gstreamer_editing_services
Reviewed By: thiblahute
Differential Revision: https://phabricator.freedesktop.org/D302
Summary:
To dispose properly, a child object should call same function
of parent class.
Reviewers: thiblahute
Differential Revision: https://phabricator.freedesktop.org/D311
Summary:
g_file_new_for_uri never fails so GFile always has valid pointer.
And fix a bug of double unref from D303.
Reviewers: thiblahute
Differential Revision: https://phabricator.freedesktop.org/D310
Summary:
Valgrind reports trivial leakages related to handling
objects and their converted strings.
Reviewers: thiblahute
Differential Revision: https://phabricator.freedesktop.org/D303
Summary:
The backend commits itself automatically in these cases, so track
needs to do so too.
Reviewers: thiblahute
Reviewed By: thiblahute
Differential Revision: https://phabricator.freedesktop.org/D94
In the GESTimeline, TrackElement addition to a clip might get cancelled
(and thus the element gets removed), we need to make sure users do not
get wrong signals.
Also document the fact that user should connect to container::child-added
with g_signal_connect_after.
And fix a computation bug where we would be having mixing order
reversed between layers.
And make sure that the positionner does not mix up Transition handling
of the zorder
Summary:
Making the code simpler and handling the transition case
where elements are in the same layer (which was failing
/setting same zorders until now).
Reviewers: Mathieu_Du
Differential Revision: https://phabricator.freedesktop.org/D237
We should never let 3 objects to overlap at a same position, for that
we introduce a "rollback" feature and whenever such an editing happens,
we rollback object position to whatever it was before the move.
In case of groups, we can have track elements that do not belong
directly to the moved_trackelements but will be moved as others. Never
create transition to all object that have a start > moving group start.
Instead of trying to compute it ourself which might lead to wrong
behaviour when moving between layer.
+ Make sure that when we reset clip children priority (to make space
for effects,) we update the container knowledge of priority offsets
We were computing the priority offset taking the global MIN_NLE_PRIO
(which is a constant == 2 to make space for the mixing elements) instead
of the layer 'track element' relative priority, leading to very big
offsets on layer with a prio > 0. In the end it leaded to effects having
the same priority as the sources which leads to an undefined behaviour
in NLE.
Summary:
The user might want to render only some media type of the timeline,
for example he wants to only render the audio part of the timeline.
It was failing as we were not connecting the track but were still trying
to 'render' it.
Depends on D153
Reviewers: Mathieu_Du
Reviewed By: Mathieu_Du
Differential Revision: http://phabricator.freedesktop.org/D154
This means we need to properly track the layer a clip was in. We now
keep track of the various signal IDs in a dedicated structure and
keep a ref on the layer an object is in.
http://phabricator.freedesktop.org/T88
Summary:
No need to recheck if error exists since it has already been checked by the
conditional above.
Coverity CID #1302832
Reviewers: thiblahute
Differential Revision: http://phabricator.freedesktop.org/D200
Summary:
We use to end up removing the nleobject when the following case happened:
* add an object
* remove that object
* re add the object
* commit the composition
Reviewers: Mathieu_Du
Differential Revision: http://phabricator.freedesktop.org/D193
Summary:
Handle the fact that some new features can be added and that means
generated files will not be fully understandable by older versions of
the formatter.
Make sure that we set the format version to 0.2 when we serialize the
GstEncodingProfile.enabled property.
Add some tests around that.
+ Fix a minor bug in the test-utils
+ Add a meta on the projects to tell in what format version a project
has been serialized/parsed back
API:
GES_META_FORMAT_VERSION
Depends on D178
Reviewers: Mathieu_Du
Differential Revision: http://phabricator.freedesktop.org/D184
Summary:
In case we just removed it from its layer, make sure to
just use the first layer when none specified.
Depends on D177
Reviewers: Mathieu_Du
Differential Revision: http://phabricator.freedesktop.org/D178
Summary:
Giving more details about the issue to the user
Depends on D151
Reviewers: Mathieu_Du
Differential Revision: http://phabricator.freedesktop.org/D176
Summary: It must only be done when the object is commited.
We can do that in constructed though, as the changes will
anyway be commited when the object is added to a composition.
Also update the tests, as we set properties spearately then
check the stop, we can commit the source at its creation without
removing meaning from the tests.
Reviewers: thiblahute
Differential Revision: http://phabricator.freedesktop.org/D84
Summary:
+ [API] GESTrack::commited signal.
+ [API] ges_track_commit_sync
We were emitting commited when timeline_commit was called, which
wasn't very helpful. This commit makes it so we emit commited once
all the compositions have actually been commited.
We also add a synchronous commit method to spare the user
the need to connect to the signal and wait, and update the
documentation.
Reviewers: thiblahute
Differential Revision: http://phabricator.freedesktop.org/D83
Summary:
Otherwise if there was still a reference to the layer when it
is removed from the timeline, it fails when the last reference
is released, because timeline_element_set_timeline calls
timeline_remove_element, which tries to remove the element from
an already disposed hashtable.
Reviewers: thiblahute
Differential Revision: http://phabricator.freedesktop.org/D82
Summary:
+ And freeze notifies while doing so.
We had a race with GstController which isn't MT safe, we can
fix it by propertly disconnecting signals, and making sure
no notifies are emitted while doing so.
Reviewers: thiblahute
Differential Revision: http://phabricator.freedesktop.org/D64
Summary: Before checking if we have a specific constructor for a track type.
Reviewers: thiblahute
Differential Revision: http://phabricator.freedesktop.org/D63
Summary: g-ir-scanner was erroring like crazy on the generated sources.
Reviewers: thiblahute
Differential Revision: http://phabricator.freedesktop.org/D57
And add the new element to the same layer as the last clip that
was added, insted of adding to the last layer of the timeline
(and with the current code, actually adding a new layer each time)
I got some trouble with
arc land
and I wanted to push the 3 commit coming after this revert as 3
different commits but they ended up being all squash into one single
commit, which is clearly not cool for later bisecting and blaming.
Reverting that commit and re pushing those 3 commits as they were
supposed to be.
This reverts commit 9fe15ef435.
GstStructureForeachFunc has a gboolean return value,
and the foreach function will stop unless we return
TRUE here. This meant it was potluck whether all
properties in the structure got set or not.
Fixes setting of text overlay clip text property
in particular.
https://bugzilla.gnome.org/show_bug.cgi?id=743874
Summary:
We should not restrict the CapsFeatures on the track caps.
If someone want to do such a restriction he should add it to
the restriction caps directly
Test Plan: Run testsuite
Reviewers: mathieu.duponchelle
If priv->timeline is False the function does not set any value for
timeline_duration before using it in gap_new (). Initialize the value to aviod
unexpected behaviour.
CID #1268405
The strategy here is to seek at the new end of the composition. And in
GES we always add a 1ns long gap at the end of the tracks so that all
track have the exact same duration, and we have black frames when the
timeline is empty
gpointer useless is indeed useless since we can use GST_DEBUG_REGISTER_FUNCPTR
to avoid having to store the return of the GST_DEBUG_FUNCPTR registration.
CID #1265771