Commit graph

2696 commits

Author SHA1 Message Date
Thibault Saunier
de256fcf13 tools:launch: clean user facing message on wrong timeline description
Summary:
Before:

  $ ../gst-editing-services/tools/ges-launch-1.0 -p
  0:00:00.028629728  8155      0x17e1b60 ERROR                default ges-launcher.c:214:_create_timeline: serialized timeline is   -p

  ** (lt-ges-launch-1.0:8155): ERROR **: Could not create timeline, error: Could not find a suitable formatter
  [1]    8155 trace trap (core dumped)  ../gst-editing-services/tools/ges-launch-1.0 -p

  $

After:

  $ GST_DEBUG=0 ges-launch-1.0 -p

  ERROR: Could not create timeline, error: Could not find a suitable formatter

  $

Reviewers: Mathieu_Du

Differential Revision: http://phabricator.freedesktop.org/D95
2015-04-15 17:53:01 +02:00
Mathieu Duponchelle
506662e2dc nleobject: It is wrong to update object->stop in set_property.
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
2015-04-09 15:40:32 +02:00
Mathieu Duponchelle
2e26a9e926 timeline, track: Emit commited at the correct moment.
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
2015-04-09 14:44:11 +02:00
Mathieu Duponchelle
54190d9dd8 layer: call timeline_element_set_timeline in layer_set_timeline.
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
2015-04-08 23:35:01 +02:00
Edward Hervey
6753ad5bd1 tests: Use AM_TESTS_ENVIRONMENT
Needed by the new automake test runner
2015-04-08 17:05:19 +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
Mathieu Duponchelle
47f1713f1e ges-project: Surface a meaningful error when no suitable formatter.
Reviewers: thiblahute

Differential Revision: http://phabricator.freedesktop.org/D67
2015-04-07 14:15:36 +02:00
Mathieu Duponchelle
44af36026f ges-launch: Add a save-only option.
Summary: + Allows to serialize the timeline without playing it back.

Reviewers: thiblahute

Differential Revision: http://phabricator.freedesktop.org/D66
2015-04-07 14:15:36 +02:00
Tim-Philipp Müller
ea348dccc5 Automatic update of common submodule
From bc76a8b to c8fb372
2015-04-03 18:58:32 +01:00
Mathieu Duponchelle
e89dccc9aa timeline-element: Disconnect child properties handlers.
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
2015-03-31 15:32:08 +02:00
Mathieu Duponchelle
1ea442a021 track: Set any caps features on tmpcaps.
Summary: Before checking if we have a specific constructor for a track type.

Reviewers: thiblahute

Differential Revision: http://phabricator.freedesktop.org/D63
2015-03-31 15:32:08 +02:00
Mathieu Duponchelle
0d3a3eb9d2 pipeline: no reason to disconnect a pad that is NULL anyway.
Reviewers: thiblahute

Differential Revision: http://phabricator.freedesktop.org/D62
2015-03-31 15:31:49 +02:00
Mathieu Duponchelle
4a519bcf5c ges-launch: Better document options.
+ Sort them by topic
+ remove --sample-paths and --sample-paths-recurse.

http://phabricator.freedesktop.org/D58
2015-03-25 19:46:59 +01:00
Mathieu Duponchelle
2c4b92fd98 ges-launch: port to GApplication
Summary: + Extract some utility functions.

Reviewers: thiblahute

Differential Revision: http://phabricator.freedesktop.org/D55
2015-03-25 12:27:52 +01:00
Mathieu Duponchelle
d4deeae5c1 build: no reason to introspect nodist sources.
Summary: g-ir-scanner was erroring like crazy on the generated sources.

Reviewers: thiblahute

Differential Revision: http://phabricator.freedesktop.org/D57
2015-03-25 12:27:02 +01:00
Mathieu Duponchelle
54c5723b75 ges-pitivi-formatter: Don't flood stdout with alarming conclusions.
Reviewers: thiblahute

Differential Revision: http://phabricator.freedesktop.org/D56
2015-03-25 12:23:24 +01:00
Mathieu Duponchelle
4f3b223f98 completions: port to new base gst script 2015-03-24 19:02:58 +01:00
Mathieu Duponchelle
c70f005970 completions: Fix completions after the first command. 2015-03-24 17:13:20 +01:00
Mathieu Duponchelle
b55265c70d Revert "ges-launch: no need for a tmp string pointer"
This reverts commit 44a0924c1f.

There indeed is a need for a tmp string pointer.
2015-03-24 13:01:39 +01:00
Luis de Bethencourt
44a0924c1f ges-launch: no need for a tmp string pointer 2015-03-24 11:21:08 +00:00
Luis de Bethencourt
865634d66c ges-launch: free string before going out of scope
CID #1291632
2015-03-24 11:19:50 +00:00
Mathieu Duponchelle
710d34adf4 build: fix make distcheck. 2015-03-23 12:41:00 +01: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
663824d20f ges-launch: Prefix clip, transition and effect instruction with a +
Slightly changing the CLI so that we have indicators of the timeline
commands adding new objects.
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
Mathieu Duponchelle
7efa8c86a9 ges-launch: Remove useless options, rename some short options. 2015-03-23 12:41:00 +01:00
Mathieu Duponchelle
8e18fd790c bash-completion: Add support for new ges-launch commands. 2015-03-23 12:41:00 +01:00
Mathieu Duponchelle
d77ad923a6 parse.l: Modify command arguments.
+ --clip uri=file:// becomes clip file:// for example.
2015-03-20 13:53:42 +01:00
Thibault Saunier
e37d8e768f ges: command-line-formatter: Properly error out on invalid arguments 2015-03-20 13:53:42 +01:00
Thibault Saunier
28a1e97aa2 ges: Factor out a GESCommandLineFormatter class
This formatter will allow any user to deserialize a timeline using
the new ges-launch command line interface
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
Mathieu Duponchelle
6f1091f84a ges-launch: parse property names longer than 1 char.
+ And finish the previous structure when encountering a setter.
2015-03-20 13:53:41 +01:00
Mathieu Duponchelle
c6dedf2f36 ges-launch: Update lexer / parser to handle set-*
+ cleanup of the lexer
2015-03-20 13:53:40 +01:00
Thibault Saunier
ecf167e95e tools: Implement a new CLI interface for the timeline creation 2015-03-20 13:53:40 +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
5d7b37112f launcher: Add support to --set-property in the parser 2015-03-20 13:53:40 +01:00
Mathieu Duponchelle
abb5f2cc2f ges-launch: Implement a new parser for the commandline.
Summary: + flex-based lexing and manual simplistic parsing.

Test Plan: Use that stuff to make awesome things, see if it breaks.
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
Thibault Saunier
7d0015b973 ges: Fix build for older GLib
The return type of g_hash_table_insert changed from void to boolean
2015-03-19 09:33:18 +01:00
Thibault Saunier
dd47def4e3 container: implement children property handling 2015-03-18 20:36:39 +01:00
Thibault Saunier
42477a5ec3 ges: Move the notion of children properties to GESTimelineElement
Summary:
Deprecate the old GESTrackElement children property handling API.

New APIs:
  * ges_timeline_element_list_children_properties
  * ges_timeline_element_lookup_child
  * ges_timeline_element_get_child_property_by_pspec
  * ges_timeline_element_get_child_property_valist
  * ges_timeline_element_get_child_properties
  * ges_timeline_element_set_child_property_valist
  * ges_timeline_element_set_child_property_by_pspec
  * ges_timeline_element_set_child_properties
  * ges_timeline_element_set_child_property
  * ges_timeline_element_get_child_property
  * ges_timeline_element_add_child_property
  * ges_timeline_element_remove_child_property

Deprecated APIs:
  * ges_track_element_list_children_properties
  * ges_track_element_lookup_child
  * ges_track_element_get_child_property_by_pspec
  * ges_track_element_get_child_property_valist
  * ges_track_element_get_child_properties
  * ges_track_element_set_child_property_valist
  * ges_track_element_set_child_property_by_pspec
  * ges_track_element_set_child_properties
  * ges_track_element_set_child_property
  * ges_track_element_get_child_property
  * ges_track_element_add_child_property

Reviewers: Mathieu_Du

Differential Revision: http://phabricator.freedesktop.org/D40
2015-03-18 20:36:39 +01:00
Thibault Saunier
3e49850e6d timeline: Add API to find a layer with a specific priority in a timeline
Summary:
API:
  * ges_timeline_get_layer

Test Plan: Nan

Reviewers: mathieu.duponchelle
2015-03-18 20:36:38 +01:00
Thibault Saunier
f470222f3d Revert "ges: Move the notion of children properties to GESTimelineElement"
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.
2015-03-18 20:33:48 +01:00
Thibault Saunier
9fe15ef435 ges: Move the notion of children properties to GESTimelineElement
Summary:
Deprecate the old GESTrackElement children property handling API.

New APIs:
  * ges_timeline_element_list_children_properties
  * ges_timeline_element_lookup_child
  * ges_timeline_element_get_child_property_by_pspec
  * ges_timeline_element_get_child_property_valist
  * ges_timeline_element_get_child_properties
  * ges_timeline_element_set_child_property_valist
  * ges_timeline_element_set_child_property_by_pspec
  * ges_timeline_element_set_child_properties
  * ges_timeline_element_set_child_property
  * ges_timeline_element_get_child_property
  * ges_timeline_element_add_child_property
  * ges_timeline_element_remove_child_property

Deprecated APIs:
  * ges_track_element_list_children_properties
  * ges_track_element_lookup_child
  * ges_track_element_get_child_property_by_pspec
  * ges_track_element_get_child_property_valist
  * ges_track_element_get_child_properties
  * ges_track_element_set_child_property_valist
  * ges_track_element_set_child_property_by_pspec
  * ges_track_element_set_child_properties
  * ges_track_element_set_child_property
  * ges_track_element_get_child_property
  * ges_track_element_add_child_property

Reviewers: Mathieu_Du

Reviewed By: Mathieu_Du

Differential Revision: http://phabricator.freedesktop.org/D40
2015-03-18 20:23:55 +01:00
Thibault Saunier
f21132c3d5 ges: Remove all reference to already dead GESSimpleLayer 2015-03-13 10:02:39 +00:00
Luis de Bethencourt
8b4b2562a6 project: remove unnecessary dereference
g_clear_error() already dereferences the error pointer, no need to manually
check and do it.

CID #1257630
2015-03-05 13:53:32 +00:00