Commit graph

221 commits

Author SHA1 Message Date
Mathieu Duponchelle
8e18fd790c bash-completion: Add support for new ges-launch commands. 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
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
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
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
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
c2583e01b6 tools: Avoid trying to remove a signal handler that has already been removed 2014-12-13 15:14:39 +01:00
Thibault Saunier
ff2ccb71ac validate: Handle long tests in the TestManager
+ Minor bug fixes
2014-12-06 10:34:18 +01:00
Thibault Saunier
c7cceae128 validate: Avoid depending on not stable APIs
And cleanup includes
2014-12-06 10:34:17 +01:00
Thibault Saunier
3b353be8ea ges: Keep backward compatibility for relocated assets CLI
Meaning adding an API for user to add relacation URI paths

API:
    ges_add_missing_uri_relocation_uri
2014-12-06 10:34:16 +01:00
Thibault Saunier
ac3cad47b6 validate: Expose GES Validate action
So other can also make use of those action outside
ges-launch itself

https://bugzilla.gnome.org/show_bug.cgi?id=740718
2014-12-06 10:34:15 +01:00
Thibault Saunier
58d525a4e7 ges: Add an init option to set media paths for moved assets
Allowing user to easily set a set of paths to look for moved
assets instead of needing the to re implement that logic
over and over.

https://bugzilla.gnome.org/show_bug.cgi?id=740714
2014-12-06 10:34:15 +01:00
Thibault Saunier
b14b5d92ca tools: launch: Wait for the project to be loaded to activate gst-validate
Otherwize we could have a race where GstValidate actions are launched
even before the project has been loaded
2014-11-10 16:22:42 +01:00
Thibault Saunier
aac186a742 tools: Never try to propose same URI when we know it is missing URI 2014-11-10 16:22:42 +01:00
Thibault Saunier
903f30cb32 tools:launch: Properly terminate when we get a SIGINT signal 2014-11-10 16:22:41 +01:00
Mathieu Duponchelle
0192c0e237 ges-validate: inform of clip removal. 2014-11-10 16:22:41 +01:00
Thibault Saunier
ca0ce859de validate: Implement validate Action type to handle KeyFrames
New action types:
  * set-control-binding
  * add-keyframe
  * remove-keyframe
2014-11-10 16:22:40 +01:00
Thibault Saunier
6d8f744f7f ges-validate: Add actions to add/remove object from container
+ Add an action to set an asset on a GESTimelineElement
2014-11-10 16:22:39 +01:00
Thibault Saunier
c0a0c1f582 ges-validate: Fix edit_container return code
It used to always return FALSE.

+ Fix minor leaks
+ Do not seek ourself, it is users responsability to seek and
commit these days.
2014-11-10 16:22:39 +01:00
Thibault Saunier
0cdec2c2d0 ges-validate: Add an action type to set restriction caps on track 2014-11-10 16:22:38 +01:00
Thibault Saunier
92cb5811e7 tools: Handle asset relocation for assets from scenario
Allowing us to share scenario and media file!
2014-11-10 16:22:38 +01:00
Thibault Saunier
4691210030 ges-validate: Add support for Layer.auto-transition
+ Fix a bug where the mandatory field name for the name of the clip to
remove in remove-clip did not correspond to what we used in the action
(clip-name vs name).
2014-11-10 16:22:38 +01:00
Thibault Saunier
f362e81a29 ges-validate: Add commit and split-clip action types
And stop commit at the end of other action types, this now
has to be done in the scenario itself.
2014-11-10 16:22:38 +01:00
Thibault Saunier
8a6892ba0a ges-validate: Add start/inpoint/duration params to the add-clip action 2014-11-10 16:22:38 +01:00
Thibault Saunier
f4faa487ba tools:ges-launch: Save the project at the end of execution
So that changes from scenarios are taken into account
2014-11-10 16:22:38 +01:00
Thibault Saunier
2d3769f079 tools:ges-launch: Do not set pipeline state before the timeline is ready
When we are loading a project
2014-11-10 16:22:37 +01:00
Thibault Saunier
cc84b63305 tools:launcher: Avoid commiting when we are not done loading the timeline 2014-10-31 11:58:07 +01:00
Mathieu Duponchelle
5779e68102 ges-validate: issues naming have changed.
Update the override.
2014-10-22 14:15:11 +02:00
Thibault Saunier
7e36a752bc validate: Fix naming of add_action_type to register_action_type
That function was just renamed in Validate
2014-10-16 14:18:16 +02:00
Thibault Saunier
6d06079202 validate: Rename --list-action-types to --inspect-action-type
Making clearer the meaning of the parameter and closer to
the usual naming in the GStreamer land.
2014-10-12 19:46:59 +02:00
Lubosz Sarnecki
79322a452d ges-launch: option to select encoding profile from xml
https://bugzilla.gnome.org/show_bug.cgi?id=735121
2014-09-11 12:28:26 +02:00
Lubosz Sarnecki
b6bc750730 ges-launch: clean up help page
https://bugzilla.gnome.org/show_bug.cgi?id=735121
2014-09-11 12:28:23 +02:00
Thibault Saunier
18e7cb571f validate: gst_validate_print_action_types now takes a const gchar ** 2014-09-05 23:14:10 +02:00
Thibault Saunier
de33101ac0 validate: Add the "ges" as implementer namespace for our action types 2014-09-05 23:09:15 +02:00
Sebastian Dröge
44ef8f200b ges-launch: Fix typo in --help output 2014-09-05 22:09:44 +03:00
Sebastian Dröge
320e2406d1 ges-launch: Fix compiler warnings
ges_validate_print_action_types() takes a const gchar **.
2014-09-05 22:08:49 +03:00
Thibault Saunier
73d9fd70c9 ges-validate: Rename edit-clip to edit-container
So it represent better what the action does at the GES level
2014-09-05 13:54:45 +02:00
Thibault Saunier
9f97c14cea ges-validate: Port to the new GstValidate action registration API 2014-09-05 13:54:40 +02:00
Thibault Saunier
9a07ce7681 tools:validate: Concider seek in PAUSED position being not exact as WARNING
In some corner cases in GNL it is totally correct that a position in a
seek in paused is not perfectly exact
2014-09-05 13:54:34 +02:00
Thibault Saunier
ae60e09a1f ges-validate: Let GstValidate handle assert logs 2014-09-05 13:54:26 +02:00
Thibault Saunier
c7d572aa90 ges:validate: Port to the new handles-states API 2014-09-05 13:54:13 +02:00
Thibault Saunier
a3e87f262b tools: Fix transition handling in ges-launch
https://bugzilla.gnome.org/show_bug.cgi?id=730806
2014-06-09 16:10:41 +02:00
Thibault Saunier
b3a240126d pipeline: Add support to rendering without container
+ Simplify the support in ges-launch as we should not require the
profile desc to start with : in that case

https://bugzilla.gnome.org/show_bug.cgi?id=731245
2014-06-09 16:10:41 +02:00
Thibault Saunier
84f02f288e tools: Handle request state changes from GstValidate 2014-05-18 18:34:26 +02:00
Thibault Saunier
b2c8a9efb3 ges: Do not use freed pointers
COVERTY CID 1212182
COVERTY CID 1212184
COVERTY CID 1212185
2014-05-10 23:00:45 +02:00
Thibault Saunier
9184c7ed7e tool: Add the option to set audiosink
And use gst_parse_bin_from_description to create the sinks letting more
control to users.
2014-05-08 17:28:00 +02:00
Mathieu Duponchelle
6b61c29907 scenarios: update the prototype of ges_validate_activate
if validate is not present.
2014-05-08 17:11:54 +02:00
Mathieu Duponchelle
7138bfb700 ges-launch: add an option to use a custom video sink 2014-05-08 14:28:58 +02:00
Mathieu Duponchelle
324742826b validate: make sure we release our ref when we get_timeline.
Conflicts:
	tools/ges-validate.c
2014-05-08 14:28:45 +02:00
Mathieu Duponchelle
0de6ecebcf scenarios: Check priority before creating a layer. 2014-05-08 14:27:06 +02:00
Mathieu Duponchelle
171710f0c5 ges-launch: Make it so actions are executed directly when needed. 2014-05-08 14:26:49 +02:00
Mathieu Duponchelle
48f3315e9b validate: implement remove / add clip actions
And a helper to get a layer by priority
2014-05-08 14:26:45 +02:00
Mathieu Duponchelle
f16ad15ef3 ges-launch: Only create a layer if needed.
That way scenarios can start with an empty timeline
2014-05-08 14:26:38 +02:00
Mathieu Duponchelle
5d21fb74fe validate: Add add-layer and remove-layer 2014-05-08 14:26:33 +02:00
Mathieu Duponchelle
e8713bbf87 scenarios: add a remove-asset action 2014-05-08 14:26:30 +02:00
Mathieu Duponchelle
3c7b9d0ea4 ges-validate: add an add-asset action
Conflicts:
	tools/ges-validate.c
2014-05-08 14:26:16 +02:00
Mathieu Duponchelle
49a21044ca ges-launch: When a scenario is set, don't request triplets 2014-05-08 14:25:22 +02:00
Tim-Philipp Müller
10820bd41d ges-launch: remove dead code
duration can't be smaller than 0 because it's unsigned,
and it can't be 0 because 0 is transformed to CLOCK_TIME_NONE
earlier.

Coverity CID 1211822.
2014-05-05 11:58:45 +01:00
Thibault Saunier
5785178e52 tools: Add a way to look for moved media sample recursively
In ges-launch let the user set a folder where the media sample that
move can be found recursing into that specified folder.

https://bugzilla.gnome.org/show_bug.cgi?id=729382
2014-05-02 16:59:08 +02:00
Thibault Saunier
2dd59ab53a tools: Add an option to disable mixing
+ Add a a GObject property so that the info is seralized

https://bugzilla.gnome.org/show_bug.cgi?id=729382
2014-05-02 16:59:08 +02:00
Thibault Saunier
92b115d3e0 tools: Always activate gst-validate to have position printing
https://bugzilla.gnome.org/show_bug.cgi?id=729382
2014-05-02 16:58:42 +02:00
Thibault Saunier
36cc9f13ec tools: Handle times as doubles + concider duration=0 as TIME_NONE
https://bugzilla.gnome.org/show_bug.cgi?id=729382
2014-05-02 16:58:42 +02:00
Thibault Saunier
44cbc27cb8 tools: Disable --set-scenario if not compiled against gst-validate
https://bugzilla.gnome.org/show_bug.cgi?id=729382
2014-05-02 16:58:42 +02:00
Thibault Saunier
8601666a5a ges-validate: Add an action to serialize the project
https://bugzilla.gnome.org/show_bug.cgi?id=729382

Conflicts:
	tools/ges-validate.c
2014-05-02 16:58:42 +02:00
Thibault Saunier
4ce52d8a62 tools:validate: Always seek after editing a clip
Otherwize the displayed frame will not be updated when paused.

+ Add a get_timeline internal helper method in ges-validate.c

https://bugzilla.gnome.org/show_bug.cgi?id=729382
2014-05-02 16:58:42 +02:00
Thibault Saunier
9cb7d8e3e7 ges-validate: Add a GstValidate action to set children properties
https://bugzilla.gnome.org/show_bug.cgi?id=729382
2014-05-02 16:58:42 +02:00
Thibault Saunier
87e10c4478 tools:validate: Add an action to allow editing clips
https://bugzilla.gnome.org/show_bug.cgi?id=729382
2014-05-02 16:30:08 +02:00
Thibault Saunier
3197a02487 tools: Position printing is now done at the gst-validate level
https://bugzilla.gnome.org/show_bug.cgi?id=729382
2014-05-02 14:34:00 +02:00
Thibault Saunier
fe69b92455 ges-launch: Not being able to load an asset is an error 2014-03-26 11:45:07 +01:00
Thibault Saunier
1108a2c6ac ges-launch: Format the position printing as in gst-validate and friends 2014-03-20 17:25:53 +01:00
Thibault Saunier
95126cd0ef ges-launch: Play nicely with gst-validate if avalaible 2014-03-20 17:25:53 +01:00
Thibault Saunier
98e1977633 ges-launch: Add a way to mute test video and audio output 2014-03-20 17:25:53 +01:00
Thibault Saunier
fa742de968 ges-launch: Properly handle project loading
So we start the pipeline only when the project is done loading, and we save it when it is
loaded, taking into account possible media URI updates.
2014-03-20 17:25:53 +01:00
Thibault Saunier
f921277ac2 Rename TIMELINE_MODE_XXX to GES_PIPELINE_MODE_XXX so it corresponds to reality
First, it was not in any namespace, second the name of the enum is
GESPipelineFlags.
2014-02-17 12:37:57 +01:00
Alexandru Băluț
df93acc581 ges-pipeline: Rename add_timeline to set_timeline
API BREAKAGE:
        - ges_pipeline_add_timeline
        + ges_pipeline_set_timeline
2014-02-04 14:17:47 +01:00
Thibault Saunier
e7a45f0eef Remove GESSimplerLayer, that API should land into GESLayer in the end
The priority handling of clip is now handled by GESLayer itself, and
handling clip as a ordered list should be implemented in GESLayer itself
too, this way the user can decide to switch mode at any time instead of
2013-11-22 17:50:27 -03:00
Thibault Saunier
e5d28fa86e ges-launch: Let user set the track types to use 2013-11-14 16:17:31 -03:00
Thibault Saunier
4367933747 ges-launch: Dot the pipeline on state changes and warnings 2013-11-09 10:35:13 -03:00
Thibault Saunier
87ca058e3f ges-launch: Remember URIS that we tried to discover
So we do not fail several time trying to discover the same URI

Conflicts:
	tools/ges-launch.c
2013-10-11 17:09:34 -03:00
Thibault Saunier
2414453a0c ges-launch: Handle path for project uri 2013-09-13 20:38:43 -03:00
Thibault Saunier
f661c3ea55 ges-launch: Make it possible to provid pathes to look for moved asset
For example if a project was sent from someone else thus the pates in
there are meaningless on the other computer, we need to be able
to specify a list of pathes where the files are.

+ Fix documentation
2013-09-12 19:07:58 -03:00
Thibault Saunier
d8cb8fec52 launch: Simplify encoding profile description
Use a 'simple' synthax to describe encoding profiles
2013-08-30 20:43:01 -04:00
Thibault Saunier
c97b9f7e04 launch: Make it easier to render project
Now providing an output uri is enough to tell that you want to render.

It will use project rendering infos when possible, missing a way to
specify which info if various are disponnible (we use the first one
right now).

+ Make options more logical now, -l mean --load, and -r means repeat
2013-08-30 20:10:47 -04:00
Lubosz Sarnecki
9f0b0c26e3 Rename GESTimelinePipeline to GESPipeline
rename ges_timeline_pipeline methods to ges_pipeline
2013-07-21 21:42:42 -04:00
Alban Browaeys
6a187e09dd ges-launch: make it portable to all locales.
Call setlocale (LC_ALL, "") as per setlocale man page
to make ges-launch portable to all locales (instead of default
"C" one).

Fixes g_option_context_parse on:
$ ges-launch-1.0 --verbose -r -q /home/prahal/Vidéos/Test3.xges -o
file:///home/prahal/Test3.mpeg
Error initializing: Invalid byte sequence in conversion input

The accentuated character in "Vidéos" the french xdg user directory
for "Videos" is what is choked upon.

https://bugzilla.gnome.org/show_bug.cgi?id=702425
2013-07-01 10:02:10 +02:00
Thibault Saunier
9b14c001b0 ges: Implement GESAudioTrack and GESVideoTrack, subclasses of GESTrack 2013-06-23 17:38:57 -04:00
Thibault Saunier
ea95cb1ee3 ges-launch: Report position while playing back
Giving more feedbacks to the user
2013-06-23 16:33:33 -04:00
Thibault Saunier
6c7b28161c ges-launch: Remove xptv formatter related code
It is not usefull anymore
2013-06-23 16:33:33 -04:00
Thibault Saunier
90f4e571ad ges-launch: Properly add UriClipAssets to the project 2013-06-23 16:33:33 -04:00
Thibault Saunier
f6038e3ad2 ges: Port to the new commit based API in GNL
The GNL API changed to go from a model where user could
enable/disable updates in the composition, which leaded to races
in many places, to a model where any positioning change in the
composition is not directly done but 'cached' and then the user
has to commit those changes so they become effective in the media
processing stack.

The new API in GES is pretty similare and is basically copy
pasting this new design.

We still need to see if in some context it would make sense to add
a mode where we would commit any changes ourself at the end of our
operation for basic use cases.

Removed APIs:
  ges_timeline_enable_update
  ges_timeline_is_updating
  ges_track_enable_update
  ges_track_is_updating

New APIs:
  ges_track_commit
  ges_timeline_commit
2013-06-23 16:33:33 -04:00
Thibault Saunier
be765f564c ges-launch: Make use of assets for uri clips
It avoids races in TrackElement creations.

We should make use of assets everywhere in ges-launch but start using
them for uriclips first for now.
2013-06-12 10:49:50 -04:00
Thibault Saunier
b2b96c743d Rename GESTimelineLayer to GESLayer 2013-04-23 20:22:31 -03:00
Thibault Saunier
70d5680748 pipeline: Add a GError argument 2013-04-18 18:48:19 -03:00
Thibault Saunier
6b8657a04e ges-launch: Do no create "normal" timeline when you load a project 2013-03-30 13:37:43 +01:00
Thibault Saunier
0767f08c7a Always prefer gst_object_(un)ref over g_object_(un)ref
Making the refcount issue debugging easier
2013-03-18 12:48:41 -03:00
Thibault Saunier
0888e5e25b Rename object/tobj/trobj to clip or track_element as necessary
Not really complete but it is a good start!
2013-02-15 16:26:30 -03:00
Thibault Saunier
d21791a8d0 Rename GESTimelineLayer.xxx_object to GESTimelineLayer.xxx_clip 2013-02-15 15:23:15 -03:00