Commit graph

3429 commits

Author SHA1 Message Date
reed.lawrence
355d986d80 gstframepositioner: added 'operator' property
The 'operator' property was added to gstframepositioner so that
blending modes in the compositor could be accessed. This was done
by accessing the pad of the compositor class, and referencing the
'operator' property in that pad. Getters and Setters were also
created so that the 'operator' could be accessed by software that
is based on GES, such as Pitivi.

Related to but does not close Issue
https://gitlab.gnome.org/GNOME/pitivi/-/issues/2313

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-editing-services/-/merge_requests/236>
2021-04-21 18:12:30 -05:00
Seungha Yang
1327f428d2 framepositioner: Fix runtime warning
GstCaps is not a GObject!

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-editing-services/-/merge_requests/238>
2021-04-14 15:38:32 +09:00
Adam Leppky
a059031d02 titleclip: Expose draw-shadow child property
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-editing-services/-/merge_requests/235>
2021-04-08 15:35:30 -05:00
Matthew Waters
083ae2b8ed gst: don't use volatile to mean atomic
volatile is not sufficient to provide atomic guarantees and real atomics
should be used instead.  GCC 11 has started warning about using volatile
with atomic operations.

https://gitlab.gnome.org/GNOME/glib/-/merge_requests/1719

Discovered in https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/issues/868

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-editing-services/-/merge_requests/234>
2021-03-19 17:21:22 +11:00
Thibault Saunier
edf58d30e6 ges: doc: Fix wrong vmethod links 2021-03-08 14:50:52 -03:00
Thibault Saunier
cebdfad9fe group: Use proper group constructor
Otherwise we might en up having a group which is not backed by any asset
leading to possible assertion as this should never happen (see
https://gitlab.gnome.org/GNOME/pitivi/-/issues/2526)

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-editing-services/-/merge_requests/232>
2021-03-08 09:58:50 -03:00
Jan Schmidt
22528c4d96 Update check_keyframes_in_compositor_two_sources
Update the validate expectation for videoconvert caps changes in
https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/1033

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-editing-services/-/merge_requests/229>
2021-02-19 21:01:29 +11:00
Thibault Saunier
8a3fadb8ed project: Plug a leak
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-editing-services/-/merge_requests/227>
2021-02-10 16:14:47 -03:00
Thibault Saunier
15af1f2baf xml-formatter: Properly report error parsing restriction caps
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-editing-services/-/merge_requests/227>
2021-02-10 16:14:47 -03:00
Thibault Saunier
78f8ae860e test: Check clip positioning works when specifying track size
Make use of the new 'timeline specification' support 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
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
410fd67045 plugin: Fix is-ges-timeline registration
We need to register it for all subclasses.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-editing-services/-/merge_requests/227>
2021-02-10 16:14:47 -03:00
Thibault Saunier
74460ec221 command-line-formatter: Stop uselessly looping over options
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-editing-services/-/merge_requests/227>
2021-02-10 16:14:47 -03:00
Thibault Saunier
d45e594a31 command-line-formatter: Add a way to format timelines using the format
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
7499d41213 ges: Add keyframe support to 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
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
ba763cfaf3 command-line-formatter: Reindent command line options array
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-editing-services/-/merge_requests/227>
2021-02-09 18:11:25 -03:00
Thibault Saunier
d7764275d8 formatter: Use the new GstEncodingProfile:element-properties property
Cleaning up the code and making everything simpler.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-editing-services/-/merge_requests/227>
2021-02-09 18:11:07 -03:00
Thibault Saunier
7282e1e56c ges: Minor debug logging level and typo fixes
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-editing-services/-/merge_requests/227>
2021-02-09 18:11:07 -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
Thibault Saunier
e3a30744e8 test-source: Respect asset natural size
We had cases where the frame positioner had the default natural size for
video test sources instead of the user provided one.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-editing-services/-/merge_requests/227>
2021-02-09 18:10:33 -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
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
Henry Wilkes
d8dbf50603 command-line-formatter: fix typos
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-editing-services/-/merge_requests/123>
2021-01-26 18:16:50 +00:00
Henry Wilkes
a33a3b145d marker-list: made deserialize reverse of serialize
Changed deserialize method to actually reverse the serialize method by
removing the edge quote marks and reversing g_strescape.

See https://gitlab.freedesktop.org/gstreamer/gstreamer/issues/452

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-editing-services/-/merge_requests/123>
2021-01-26 18:16:50 +00:00
Thibault Saunier
0d95d9258b uri-source: Respect stream-id even on streams muxed in raw
The issue is that we rely on `decodebin::autoplug-select` to `SKIP`
unwanted pads, that signal was first provided to select factories during
autoplugin, not totally thought to avoid exposing pads. For streams
muxed directly in raw, decodebin has nothing to plug after the demuxer
and the pad is exposed right away, meaning that we do not have any
chance to avoid that pad to be exposed. This patch takes that limitation
into account and checks the stream ID of the pads exposed by decodebin
before exposing them itself, so we end up using the right pad even if
more are uselessly exposed by decodebin.

Fixes https://gitlab.freedesktop.org/gstreamer/gst-editing-services/-/issues/126

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-editing-services/-/merge_requests/222>
2021-01-23 04:27:07 +00:00
Thibault Saunier
8e9e95b90a audio-track: Respect track restrictions in our gaps
Avoiding not negotiated errors in specific cases.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-editing-services/-/merge_requests/225>
2021-01-19 11:08:32 -03: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
Jan Schmidt
bdfe6e4477 tests: fix meson test env setup to make sure we use the right gst-plugin-scanner
This is the same fix that was applied in gst-plugins-good in
https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/603
and fixes the testsuite running in gst-build.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-editing-services/-/merge_requests/219>
2020-12-15 13:39:43 +00: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
Nirbheek Chauhan
51c5171005 meson: Enable some MSVC warnings for parity with GCC/Clang
This makes it easier to do development with MSVC by making it warn
on common issues that GCC/Clang error out for in our CI configuration.

Continuation from https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/223

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-editing-services/-/merge_requests/220>
2020-11-04 18:47:28 +05:30
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
Xavier Claessens
e267d06344 Meson: Use pkg-config generator 2020-10-23 11:15:15 -04: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
Antonio Ospite
03a109f5fe meson: actually check glib dependency version
Actually check the version constraint when looking for the glib
dependency.

The version check will make meson use the fallback dependency when the
one from the system is not recent enough, and eventually make the build
succeed even on some older systems like Ubuntu 16.04.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-editing-services/-/merge_requests/212>
2020-10-18 20:11:33 +02:00
Stéphane Cerveau
4f0bb60c91 meson: update glib minimum version to 2.56
In order to support the symbol g_enum_to_string in various
project using GStreamer ( gst-validate etc.), the glib minimum
version should be 2.56.0.

Remove compat code as glib requirement
is now > 2.56

Version used by Ubuntu 18.04 LTS

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-editing-services/-/merge_requests/215>
2020-10-16 13:17:04 +02:00
Thibault Saunier
0030b0833b ges: Do not recreate auto-transitions when changing clip assets
Otherwise we loose the configuration of the auto transition, and
it is not required at all in any case.

Fixes https://gitlab.gnome.org/GNOME/pitivi/-/issues/2380

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-editing-services/-/merge_requests/208>
2020-09-11 10:46:59 +00:00
Thibault Saunier
2ba222c46b ges: Fix a copy/paste mistake in meson file
Passed unnoticed because we built against GstValidate

Fixes https://gitlab.freedesktop.org/gstreamer/gst-editing-services/-/issues/119

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-editing-services/-/merge_requests/211>
2020-09-09 03:17:55 +00:00
Thibault Saunier
27bafd4b81 video-transition: Make smpte props children properties
And deprecate old style accessors.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-editing-services/-/merge_requests/207>
2020-09-09 01:45:11 +00:00
Tim-Philipp Müller
0e55be92a4 ci: include template from gst-ci master branch again 2020-09-08 17:30:53 +01:00
Tim-Philipp Müller
4953fe9f45 Back to development 2020-09-08 16:59:02 +01:00
Tim-Philipp Müller
dba379fa7c Release 1.18.0 2020-09-08 00:09:26 +01:00
Thibault Saunier
0eeb981ec6 demux: Fixate documentation caps
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-editing-services/-/merge_requests/210>
2020-09-04 10:43:05 -04:00
Jan Schmidt
bdbfe6f120 complex_effect_bin_desc: Regenerate expectation for compositor change
Part of: https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/796
2020-08-26 19:49:52 +01:00
Thibault Saunier
c690c8437a tests: Fix running tests fully uninstalled
Fixes https://gitlab.freedesktop.org/gstreamer/gst-editing-services/-/issues/118

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-editing-services/-/merge_requests/206>
2020-08-24 14:25:56 -04:00