Commit graph

41 commits

Author SHA1 Message Date
Thibault Saunier
a5a590ba17 structure-interface: Convert fields type as much as possible
Since 60922c0288 we force string in the
command line parser which broke setting layers on clips for example

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-editing-services/-/merge_requests/253>
2021-05-18 22:16:47 -04:00
Thibault Saunier
ad5626dab8 structured-interface: Move set_control_source from ges-validate
So it can be reused in the command line formatter.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-editing-services/-/merge_requests/227>
2021-02-10 16:14:47 -03:00
Thibault Saunier
811d63439f structured-interface: Factor out method to get element to set property
Used to set properties or keyframes

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-editing-services/-/merge_requests/227>
2021-02-09 18:20:09 -03:00
Thibault Saunier
6c5daf8c81 command-line-formatter: Add track management to timeline description
Instead of having it all handled by the tool, this way we can
set the restriction before clips are added to the timeline,
leading to better behavior in term of video images placement
in the scene.

Without that we would have the clips positioned before setting the
restriction caps which leads to weird behavior for the end users.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-editing-services/-/merge_requests/227>
2021-02-09 18:11:05 -03:00
Henry Wilkes
60922c0288 ges-structure-parser: force string types
Force a string type for structure values obtained through parsing a
serialized timeline by inserting a (string) specifier after a '=',
rather than relying on gst_structure_from_string guessing the type.

As such, the functions that extract clocktimes and properties are
modified to accept string value types.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-editing-services/-/merge_requests/123>
2021-01-26 18:16:50 +00:00
Thibault Saunier
a3a4fb1a3d ges:validate: Allow setting keyframes using the clips directly
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-editing-services/-/merge_requests/204>
2020-07-31 21:36:43 -04:00
Thibault Saunier
c217346fa0 structured-interface: Add support for setting effects inpoint
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-editing-services/-/merge_requests/187>
2020-06-16 18:21:01 -04:00
Thibault Saunier
9b430c22a5 structured-interface: Properly check that setting keyframe works
Fixes CID: 1455490
2020-04-10 11:12:12 -04:00
Thibault Saunier
42fc26ee94 structured-interface: Fix adding clip to layer error reporting 2020-03-25 11:26:29 -03:00
Thibault Saunier
dcb3ad620d ges: Plug some leaks 2020-03-25 11:26:29 -03:00
Thibault Saunier
e835042f04 ges: Add APIs to have a sens of frame numbers
APIs:
   - ges_timeline_get_frame_time
   - ges_timeline_get_frame_at
   - ges_clip_asset_get_frame_time
   - ges_clip_get_timeline_time_from_source_frame

Extracting ges_util_structure_get_clocktime to internal utilities adding
support for specifying timing values in frames with the special
f<frame-number> synthax.
2020-03-25 11:26:29 -03:00
Thibault Saunier
32dae5e3da validate: Handle absolute control binding support when setting keyframes
And minor fix in set-control-source
2020-02-26 13:36:30 -03:00
Thibault Saunier
64bb85e6a1 ges: Fix setting GError when adding children to containers
We were misusing assertion and not properly setting the GError value
2019-10-22 19:25:09 +02:00
Thibault Saunier
29f25c6c43 launch: Add an option to embed nested timelines when saving 2019-09-30 12:58:24 +00:00
Thibault Saunier
448091583a structured-interface: Properly error out when a child property could not be set 2019-08-14 15:49:20 -04:00
Thibault Saunier
ea043c2f0e structured: Enhance error message when no clip duration set 2019-07-30 18:24:07 -07:00
Thibault Saunier
43907adc1d structured-interface: Avoid setting invalid clip duration 2019-07-30 18:22:18 -07:00
Thibault Saunier
a55296314c nle: Handle nested timelines update when file changes
When we have nested timelines, we need to make sure the underlying
formatted file is reloaded when commiting the main composition to
take into account the new timeline.

In other to make the implementation as simple as possible we make
sure that whenever the toplevel composition is commited, the decodebin
holding the gesdemux is torn down so that a new demuxer is created
with the new content of the timeline.

To do that a we do a NleCompositionQueryNeedsTearDown query to which
gesdemux answers leading to a full nlecomposition stack
deactivation/activation cycle.
2019-07-26 13:48:51 -04:00
Thibault Saunier
70d423575d ges:validate: Add a way to execute actions on serialized timelines
This way we can modify nested timelines.
2019-07-26 13:48:51 -04:00
Thibault Saunier
1e23799a24 structured-interface: Handle track-types in clip addition
The field was already expected in the launcher
2019-07-05 17:53:41 -04: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
Thibault Saunier
6d67debc10 ges-launcher: Add support for titles 2018-03-30 18:30:33 -03:00
Justin Kim
abf60df4af structured-interface: introduce TRY_GET_STRING
TRY_GET uses gst_structure_get. However, if boxed or
string pointer is retrieved by gst_structure_get,
it should be freed properly.

https://bugzilla.gnome.org/show_bug.cgi?id=755480
2015-09-28 16:11:03 +02:00
Thibault Saunier
3c127d9622 ges: Do not leak and uselessly create errors
And avoid parenthesis in GstObject names
2015-07-23 12:28:14 +02:00
Thibault Saunier
254c2b1f5e ges: Fix how we handle layer vs layer-priority in the structured interface 2015-07-23 12:28:14 +02:00
Thibault Saunier
d9c596162e structured-interface: Better handle CLOCK_TIME type from GstStructures 2015-07-03 14:06:54 +02:00
Luis de Bethencourt
b86cca00f1 ges: remove dead code
Summary:
No need to recheck if error exists since it has already been checked by the
conditional above.

Coverity CID 

Reviewers: thiblahute

Differential Revision: http://phabricator.freedesktop.org/D200
2015-06-01 13:32:47 +01:00
Thibault Saunier
ff274dee2e ges: If last added clip is not in a layer, get the first layer
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
2015-05-14 15:31:52 +02:00
Thibault Saunier
9843ffeed2 ges: Fix some error settings
Summary: Depends on D176

Reviewers: Mathieu_Du

Differential Revision: http://phabricator.freedesktop.org/D177
2015-05-14 15:31:52 +02:00
Thibault Saunier
2ddab4db57 ges:structured-interface: Use GET_AND_CHECK in more places
Summary:
Giving more details about the issue to the user

Depends on D151

Reviewers: Mathieu_Du

Differential Revision: http://phabricator.freedesktop.org/D176
2015-05-14 15:31:51 +02:00
Mathieu Duponchelle
c271f89d4a ges-launch: Add support for +test-clip
Summary: With the pattern as a mandatory argument.

Reviewers: thiblahute

Differential Revision: http://phabricator.freedesktop.org/D68
2015-04-07 14:15:36 +02:00
Thibault Saunier
d114cc60bd ges: Do not clear potentially NULL errors
And avoid dereferencing NULL errors
2015-03-23 12:41:00 +01:00
Thibault Saunier
20d94bea13 ges: Accept path as URI in the create clip structured interface 2015-03-23 12:41:00 +01:00
Thibault Saunier
e37d8e768f ges: command-line-formatter: Properly error out on invalid arguments 2015-03-20 13:53:42 +01:00
Mathieu Duponchelle
ed0839dd82 structured-interface: Be clever when no layer priority specified.
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)
2015-03-20 13:53:41 +01:00
Mathieu Duponchelle
7cfdc2265d ges-structured-interface: fix build 2015-03-20 13:53:41 +01:00
Thibault Saunier
dbb2368a39 ges: Automatically put clips at the end of layer if no start specified
In the 'structured' interface we should add it at the end of the layer

And make use of the new ges_timeline_get_layer API
2015-03-20 13:53:41 +01:00
Mathieu Duponchelle
761067b685 structure-interface: rename layer-priority to layer.
+ And add a short name for it in ges-launch.
2015-03-20 13:53:41 +01:00
Thibault Saunier
396196dfdf ges: Add layer up to the wanted layer priority in the structure interface
Making the thing easier to use
2015-03-20 13:53:41 +01:00
Thibault Saunier
2ffa9477e9 ges: Handle setting child property on container directly in the structured based interface 2015-03-20 13:53:40 +01:00
Thibault Saunier
3105797913 ges: Add an internal GstStructure based interface
To be use by GstValidate action and ges-launch

Reviewers: Mathieu_Du, thiblahute

Differential Revision: http://phabricator.freedesktop.org/D42
2015-03-20 13:53:35 +01:00