Commit graph

58 commits

Author SHA1 Message Date
Thibault Saunier
aff2b3ea0a launch: Make enabling validate opt-in
Instead of opt-out.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-editing-services/-/merge_requests/264>
2021-09-02 22:34:09 +00:00
Mathieu Duponchelle
5ca6576f5b ges-launcher: add option to forward tags
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-editing-services/-/merge_requests/265>
2021-08-20 00:11:45 +02:00
Mathieu Duponchelle
148c751bc0 ges-launcher: allow using a clip to determine the rendering format
This includes both topology and profile

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-editing-services/-/merge_requests/265>
2021-08-20 00:11:45 +02:00
Mathieu Duponchelle
ee35cba6e8 launcher: don't start the pipeline before we're done updating it
Since 70e3b8ae2a the CommandLineFormatter
also emit "loaded" so we ended up doing this twice, once
as before in `run_pipeline` and another time in the `project:loaded`
callback.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-editing-services/-/merge_requests/265>
2021-08-14 18:07:56 +02:00
Mathieu Duponchelle
e12b3b7cef ges-launcher: don't unref transfer none objects
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-editing-services/-/merge_requests/265>
2021-08-14 18:07:56 +02:00
Philippe Normand
df2cb6104a launcher: Switch to fake{audio,video}sink
Simplifies the code a bit, though introducing runtime dependency on -bad.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-editing-services/-/merge_requests/254>
2021-05-21 14:38:36 +01:00
Seungha Yang
6cd13c3b09 ges: Port to gst_print*
Sync with gst-launch, as g_print* will print broken string on Windows.
See also
https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/258

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-editing-services/-/merge_requests/245>
2021-04-28 01:17:12 +09:00
Thibault Saunier
71fc89e6a8 tools: Fix some naming
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-editing-services/-/merge_requests/227>
2021-02-10 16:14:47 -03:00
Thibault Saunier
42cb09a2c2 tools: Reindent options
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-editing-services/-/merge_requests/227>
2021-02-10 16:14:47 -03:00
Thibault Saunier
6336c1bb53 launch: Add encoding profiles to the project
So it is serialized on `--save`

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-editing-services/-/merge_requests/227>
2021-02-10 16:14:47 -03:00
Thibault Saunier
8094f8cd93 validate: Handle passing timeline desc in .validatetest files
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-editing-services/-/merge_requests/227>
2021-02-10 16:14:47 -03:00
Thibault Saunier
70e3b8ae2a ges: Use a ges: uri to define timeline from description
This way the command line formatter actually uses an URI and not
an ugly hack where were passing a random string instead of an URI.
This also allows the `gessrc` element to handle timelines described
in its URI meaning that you can now use, for example:

   gst-play-1.0 "ges:+test-clip blue d=4.0

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-editing-services/-/merge_requests/227>
2021-02-10 16:14:47 -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
Mathieu Duponchelle
8bbd06c7c6 ges-launcher: do not set rendering details too early
It looks like the _set_rendering_details call is superfluous
in _startup(), as it will get called in run_pipeline.

The problem with calling it before timeline_set_user_options
is that we are going to fail creating a smart profile if
the user selected eg --track-types=video, as the get_smart_profile
method compares the tracks in the asset with those on the timeline.

Reproduce with a video-only clip:

ges-launch-1.0 --track-types=video +clip file://$PWD/jelly.mp4 \
inpoint=15.0 -o foo.mp4 --smart-rendering

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-editing-services/-/merge_requests/228>
2021-01-29 20:42:26 +01:00
Thibault Saunier
d1aa359c2b launch: Ensure to add required ref to profiles from project
We were unreffing something we were not owning

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-editing-services/-/merge_requests/224>
2021-01-05 11:52:43 -03:00
Thibault Saunier
6046a515cd launch: Add an interactive mode where we can seek etc...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-editing-services/-/merge_requests/209>
2020-12-04 09:29:02 -03:00
Jan Schmidt
180c23108b init: Fix initialisation crash
Fix a case where initialisation fails without setting
the passed-in GError and the caller assumes it will be
set, and add a guard to catch the condition in case it
happens again in the future.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-editing-services/-/merge_requests/217>
2020-10-31 20:51:27 +11:00
Fabrice Fontaine
8f3e2e5b84 utils.c: fix static build
Static build fails since version 1.17.1 and
1e488d4311
on:

FAILED: tools/ges-launch-1.0
/srv/storage/autobuild/run/instance-2/output-1/host/bin/arm-linux-gcc  -o tools/ges-launch-1.0 tools/ges-launch-1.0.p/ges-validate.c.o tools/ges-launch-1.0.p/ges-launch.c.o tools/ges-launch-1.0.p/ges-launcher.c.o tools/ges-launch-1.0.p/utils.c.o -Wl,--as-needed -Wl,--no-undefined -Wl,-O1 -Wl,-Bsymbolic-functions -static -Wl,--start-group ges/libges-1.0.a /srv/storage/autobuild/run/instance-2/output-1/host/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/lib/libgstreamer-1.0.a /srv/storage/autobuild/run/instance-2/output-1/host/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/lib/libgobject-2.0.a /srv/storage/autobuild/run/instance-2/output-1/host/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/lib/libglib-2.0.a -pthread /srv/storage/autobuild/run/instance-2/output-1/host/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/lib/libpcre.a /srv/storage/autobuild/run/instance-2/output-1/host/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/lib/libffi.a /srv/storage/autobuild/run/instance-2/output-1/host/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/lib/libgmodule-2.0.a /srv/storage/autobuild/run/instance-2/output-1/host/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/lib/libgstbase-1.0.a /srv/storage/autobuild/run/instance-2/output-1/host/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/lib/libgstvideo-1.0.a /srv/storage/autobuild/run/instance-2/output-1/host/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/lib/libgstpbutils-1.0.a /srv/storage/autobuild/run/instance-2/output-1/host/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/lib/libgstaudio-1.0.a /srv/storage/autobuild/run/instance-2/output-1/host/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/lib/libz.a /srv/storage/autobuild/run/instance-2/output-1/host/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/lib/libgsttag-1.0.a /srv/storage/autobuild/run/instance-2/output-1/host/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/lib/libgstcontroller-1.0.a /srv/storage/autobuild/run/instance-2/output-1/host/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/lib/libgio-2.0.a /srv/storage/autobuild/run/instance-2/output-1/host/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/lib/libmount.a /srv/storage/autobuild/run/instance-2/output-1/host/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/lib/libblkid.a -lm -Wl,--end-group
/srv/storage/autobuild/run/instance-2/output-1/host/opt/ext-toolchain/bin/../lib/gcc/arm-buildroot-linux-uclibcgnueabi/8.3.0/../../../../arm-buildroot-linux-uclibcgnueabi/bin/ld: /srv/storage/autobuild/run/instance-2/output-1/host/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/lib/libc.a(err.os): in function `warn':
err.c:(.text+0x1d8): multiple definition of `warn'; tools/ges-launch-1.0.p/utils.c.o:utils.c:(.text+0x9bc): first defined here

So rename warn function to ges_warn
Also prefix ok, print and printerr function by ges_ for consistancy and
run gst-indent on tools/ges-launcher.c

Fixes:
 - http://autobuild.buildroot.org/results/2a528a1185644f5b23d26eb3f2b342e99aa1e493

Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-editing-services/-/merge_requests/216>
2020-10-19 21:27:17 +00:00
Thibault Saunier
150e58af47 launch: Print more useful information to stdout
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-editing-services/-/merge_requests/198>
2020-07-30 18:44:13 -04:00
Thibault Saunier
e291383237 build: Add an option to disable examples
And make it yield as in other modules

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-editing-services/-/merge_requests/198>
2020-07-30 18:44:13 -04:00
Thibault Saunier
3a6530a127 launcher: Re activate smart rendering support
Trying to get the best encoding profile for smart rendering when
the user didn't specify anything.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-editing-services/-/merge_requests/198>
2020-07-30 18:44:13 -04:00
Thibault Saunier
5bb0b46809 launcher: Delay setting rendering setting to right before rendering
So that user settings have been applied to the timeline taking into
account any `validatetest` arguments

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-editing-services/-/merge_requests/198>
2020-07-30 18:44:13 -04:00
Thibault Saunier
7bef18169a nlecomposition: Fix seeking with stop
And add some tests

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-editing-services/-/merge_requests/166>
2020-04-28 19:14:26 -04:00
Thibault Saunier
f30a127776 launch: Add support for testfiles
Making it simpler to define a test in a single files, including the
configuration etc..

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-editing-services/-/merge_requests/166>
2020-04-27 17:58:40 -04:00
Thibault Saunier
130140d059 launch: Add a way to disable validate at runtime
Also avoid to add useless bin in our sinks
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
f0677291d1 launch: Fix memory management issue with the rendering format 2020-03-25 11:26:29 -03:00
Thibault Saunier
329cbbcba7 launch: Make command line provided sinks override scenario defined ones 2020-03-19 18:45:51 -03:00
Thibault Saunier
f55033223f ges:launch: Handle setting playback information in scenarios
This way we can avoid real sinks when implementing scenarios
2020-02-26 13:36:30 -03:00
Thibault Saunier
4e4473ef8f ges: Plug leaks in new ges-launch and related 2020-02-25 17:44:51 -03:00
Thibault Saunier
1a111e95eb validate: Allow overriding ges-launch options through scenarios
In 99c45d42cf we allowed setting
track-types but in the end we could do it generically using the
following synthax in the scenario 'properties' metadata:

`ges-options={--track-types=video,--disable-mixing}`
2020-02-11 18:30:13 -03:00
Thibault Saunier
c5a2947afa ges-launch: Document timeline description format under --help
Making it simpler for user to get the documentation
2019-10-23 17:51:27 +02:00
Thibault Saunier
6caf9b0a50 launcher: Enhance printed output 2019-10-21 10:25:25 +00:00
Thibault Saunier
1e488d4311 launcher: Use the output URI extension to set encoding format
And print a description of the encoding profile.
2019-10-21 10:25:25 +00:00
Thibault Saunier
29f25c6c43 launch: Add an option to embed nested timelines when saving 2019-09-30 12:58:24 +00:00
Thibault Saunier
f9d7fa36e0 launch: Set user restriction caps even when loading projects 2019-07-26 14:23:55 -04:00
Thibault Saunier
6f9e6d3586 formatter: Enhance error reporting
And add a "loading-error" signal in GESProject so we can report
issue when loading async elements for the timeline.
2019-07-26 13:48:51 -04:00
Thibault Saunier
99c45d42cf validate: Allow scenarios to set track types 2019-07-05 18:30:41 -04:00
Thibault Saunier
dac2d52670 launcher: Remove duplicated track types option 2019-05-23 18:54:42 -04:00
Thibault Saunier
92fdae7cf0 tools: Initialize GStreamer before parsin options
We need it to be initialized to be able to parse our options
2019-05-23 17:16:27 -04:00
Thibault Saunier
ed9cbfed92 tools: Use a proper implementation of get_flags_from_string 2019-05-23 17:16:27 -04:00
Thibault Saunier
bc102d4d9e launch: Fix caps restriction short names 2019-05-05 11:39:09 -04:00
Thibault Saunier
f2c00f6d29 launcher: Add options to set tracks restriction caps 2019-01-29 20:00:41 +00: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
e8d9f9226a ges-launch: Make sure GStreamer is always initialized
https://bugzilla.gnome.org/show_bug.cgi?id=776064
2016-12-13 23:26:23 -03:00
Justin Kim
f8f3444daf ges-launcher: don't leak project uri string
ges_project_get_uri returns a cloned string so it should
be free'd after usage.

Reviewed-by: Thibault Saunier <thibault.saunier@collabora.com>
Reviewed-by: Thibault Saunier <thibault.saunier@collabora.com>
Differential Revision: https://phabricator.freedesktop.org/D381
2016-07-29 11:00:48 -04:00
Justin Kim
61c25a312f ges-launcher: don't leak sanitized_timeline string
Summary:
sanitized_timeline is created when parsing command line,
but it isn't free'd.

Reviewers: thiblahute

Differential Revision: https://phabricator.freedesktop.org/D382
2016-03-09 10:42:14 +01:00
Thibault Saunier
0045cce6fa launcher: Make sure to not activate validate twice when simply loading a scenario 2015-11-04 18:37:34 +01:00
Vineeth TM
fd29e28c71 editing-services: Fix memory leaks when context parse fails
When g_option_context_parse fails, context and error variables are not getting free'd
which results in memory leaks. Free'ing the same.

And replacing g_error_free with g_clear_error, which checks if the error being passed
is not NULL and sets the variable to NULL on free'ing.

https://bugzilla.gnome.org/show_bug.cgi?id=753864
2015-09-30 12:16:15 +02:00
Justin Kim
04bac06fad ges-launcher: don't leak GError
https://bugzilla.gnome.org/show_bug.cgi?id=754858
2015-09-11 11:26:35 +02:00