platform/upstream/gst-editing-services.git
3 years agoxml-formatter: Add support for metadata on sources
Piotrek Brzeziński [Fri, 9 Jul 2021 14:15:01 +0000 (16:15 +0200)]
xml-formatter: Add support for metadata on sources

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-editing-services/-/merge_requests/260>

3 years agomarker-list: Add flags (de)serialization
Piotrek Brzeziński [Fri, 9 Jul 2021 14:14:19 +0000 (16:14 +0200)]
marker-list: Add flags (de)serialization

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-editing-services/-/merge_requests/260>

3 years agoges: freeze commit during render
Stéphane Cerveau [Tue, 3 Aug 2021 09:31:07 +0000 (11:31 +0200)]
ges: freeze commit during render

In render mode, do not commit the timeline
as the position can be invalid and lead to
missing frames.

Fixes #136

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-editing-services/-/merge_requests/262>

3 years agotimeline: Check if metadata value holds object on marker snapping
Piotrek Brzeziński [Thu, 5 Aug 2021 20:59:07 +0000 (22:59 +0200)]
timeline: Check if metadata value holds object on marker snapping

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-editing-services/-/merge_requests/263>

3 years agotimeline: Implement snapping to markers
Piotrek Brzeziński [Sun, 20 Jun 2021 21:51:02 +0000 (23:51 +0200)]
timeline: Implement snapping to markers

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-editing-services/-/merge_requests/259>

3 years agoCheck mandatory ClockTime arguments
François Laignel [Wed, 16 Jun 2021 15:12:11 +0000 (17:12 +0200)]
Check mandatory ClockTime arguments

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-editing-services/-/merge_requests/258>

3 years agoUse g_memdup2() where available and add fallback for older GLib versions
Tim-Philipp Müller [Sat, 22 May 2021 17:41:08 +0000 (18:41 +0100)]
Use g_memdup2() where available and add fallback for older GLib versions

Size is constant here, so no problem in any case, but g_memdup() is
now deprecated and we don't want deprecation warnings.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-editing-services/-/merge_requests/257>

3 years agoBack to development
Tim-Philipp Müller [Tue, 1 Jun 2021 14:29:10 +0000 (15:29 +0100)]
Back to development

3 years agoRelease 1.19.1
Tim-Philipp Müller [Mon, 31 May 2021 23:16:05 +0000 (00:16 +0100)]
Release 1.19.1

3 years agouriclip: Add an error message when creating a clip failed
Thibault Saunier [Tue, 18 May 2021 15:42:22 +0000 (11:42 -0400)]
uriclip: Add an error message when creating a clip failed

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-editing-services/-/merge_requests/252>

3 years agoexamples: c: Sensibly simplify the simple example
Thibault Saunier [Tue, 18 May 2021 15:31:19 +0000 (11:31 -0400)]
examples: c: Sensibly simplify the simple example

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-editing-services/-/merge_requests/252>

3 years agoexamples: python: Simplify the simple example
Thibault Saunier [Tue, 18 May 2021 15:16:02 +0000 (11:16 -0400)]
examples: python: Simplify the simple example

We shouldn't show assets usage in the simplest example we have
as it is useful for more advanced use cases.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-editing-services/-/merge_requests/252>

3 years agotests: Update expectation files with sorted structure fields
Thibault Saunier [Fri, 21 May 2021 19:26:03 +0000 (15:26 -0400)]
tests: Update expectation files with sorted structure fields

3 years agotests/check: Use fake{audio,video}sink
Philippe Normand [Thu, 20 May 2021 15:47:41 +0000 (16:47 +0100)]
tests/check: Use fake{audio,video}sink

The tests already depend on -bad, so this should be OK.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-editing-services/-/merge_requests/254>

3 years agolauncher: Switch to fake{audio,video}sink
Philippe Normand [Thu, 20 May 2021 15:45:43 +0000 (16:45 +0100)]
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>

3 years agostructure-interface: Convert fields type as much as possible
Thibault Saunier [Wed, 19 May 2021 01:31:38 +0000 (21:31 -0400)]
structure-interface: Convert fields type as much as possible

Since 60922c02889cf1ebcfaca4501936be689c342e01 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>

3 years agovalidate: Add support to check properties of object properties
Thibault Saunier [Wed, 19 May 2021 02:04:48 +0000 (22:04 -0400)]
validate: Add support to check properties of object properties

And recursively

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-editing-services/-/merge_requests/253>

3 years agosmart-mixer: Add support for d3d11compositor and glvideomixer
Seungha Yang [Fri, 23 Apr 2021 07:08:48 +0000 (16:08 +0900)]
smart-mixer: Add support for d3d11compositor and glvideomixer

Some hardware compositor elements (d3d11compositor and glvideomixer)
consist of wrapper bin with internal mixer element.
So, we need special handling for such elements.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-editing-services/-/merge_requests/242>

3 years agoframepositioner: Install operator property only when compositor is used
Seungha Yang [Fri, 23 Apr 2021 15:55:45 +0000 (00:55 +0900)]
framepositioner: Install operator property only when compositor is used

Other compositor/mixer elements might not have the property. For instance,
d3d11compositor and glvideomixer define graphics API specific blending
properties, instead of simple "operator" one.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-editing-services/-/merge_requests/242>

3 years agoxml-formatter: Write xml directly to file
Doug Nazar [Wed, 12 May 2021 21:43:46 +0000 (17:43 -0400)]
xml-formatter: Write xml directly to file

Skip allocation of temp buffer (which was undersized).

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-editing-services/-/merge_requests/250>

3 years agotests: Run ges-launch tests non-interactively
Doug Nazar [Sat, 1 May 2021 23:18:15 +0000 (19:18 -0400)]
tests: Run ges-launch tests non-interactively

It's not needed for the tests and fixes an occasional issue where
the terminal is left in -echo mode.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-editing-services/-/merge_requests/248>

3 years agotrack-element: Fix and cleanup annotations
Thibault Saunier [Thu, 25 Feb 2021 02:49:06 +0000 (23:49 -0300)]
track-element: Fix and cleanup annotations

Making the class subclass able by bindings

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-editing-services/-/merge_requests/231>

3 years agoges: Move GESVideo/AudioSource::create_source to GESSource
Thibault Saunier [Thu, 25 Feb 2021 02:37:28 +0000 (23:37 -0300)]
ges: Move GESVideo/AudioSource::create_source to GESSource

Deprecating the old variants which were not introspectable
and cleaning a bit the API.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-editing-services/-/merge_requests/231>

3 years agoUse gst_element_request_pad_simple...
François Laignel [Wed, 21 Apr 2021 08:47:51 +0000 (10:47 +0200)]
Use gst_element_request_pad_simple...

Instead of the deprecated gst_element_get_request_pad.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-editing-services/-/merge_requests/240>

3 years agoges: Port to gst_print*
Seungha Yang [Tue, 27 Apr 2021 15:57:35 +0000 (00:57 +0900)]
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>

3 years agoframepositioner: Allow ANY caps features
Seungha Yang [Fri, 23 Apr 2021 07:42:26 +0000 (16:42 +0900)]
framepositioner: Allow ANY caps features

framepositioner will not touch raw video data and therefore should
be able to accept ANY caps features

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-editing-services/-/merge_requests/243>

3 years agogstframepositioner: fix operator magic number
reed.lawrence [Fri, 23 Apr 2021 14:01:35 +0000 (09:01 -0500)]
gstframepositioner: fix operator magic number

In gst_frame_positioner_init, there was the magic number 1
when assigning the default value of the operator. Now it
has the default value for the operator pulled from the
compositor.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-editing-services/-/merge_requests/241>

3 years agogstframepositioner: added 'operator' property
reed.lawrence [Wed, 21 Apr 2021 23:12:30 +0000 (18:12 -0500)]
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>

3 years agoframepositioner: Fix runtime warning
Seungha Yang [Wed, 14 Apr 2021 03:58:30 +0000 (12:58 +0900)]
framepositioner: Fix runtime warning

GstCaps is not a GObject!

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-editing-services/-/merge_requests/238>

3 years agotitleclip: Expose draw-shadow child property
Adam Leppky [Thu, 8 Apr 2021 20:35:30 +0000 (15:35 -0500)]
titleclip: Expose draw-shadow child property

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-editing-services/-/merge_requests/235>

3 years agogst: don't use volatile to mean atomic
Matthew Waters [Fri, 19 Mar 2021 06:21:01 +0000 (17:21 +1100)]
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>

3 years agoges: doc: Fix wrong vmethod links
Thibault Saunier [Mon, 8 Mar 2021 17:50:52 +0000 (14:50 -0300)]
ges: doc: Fix wrong vmethod links

3 years agogroup: Use proper group constructor
Thibault Saunier [Mon, 8 Mar 2021 12:56:49 +0000 (09:56 -0300)]
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>

3 years agoUpdate check_keyframes_in_compositor_two_sources
Jan Schmidt [Wed, 17 Feb 2021 10:34:22 +0000 (21:34 +1100)]
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>

3 years agoproject: Plug a leak
Thibault Saunier [Tue, 19 Jan 2021 14:00:22 +0000 (11:00 -0300)]
project: Plug a leak

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-editing-services/-/merge_requests/227>

3 years agoxml-formatter: Properly report error parsing restriction caps
Thibault Saunier [Tue, 19 Jan 2021 13:29:09 +0000 (10:29 -0300)]
xml-formatter: Properly report error parsing restriction caps

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-editing-services/-/merge_requests/227>

3 years agotest: Check clip positioning works when specifying track size
Thibault Saunier [Fri, 15 Jan 2021 18:29:47 +0000 (15:29 -0300)]
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>

3 years agotools: Fix some naming
Thibault Saunier [Fri, 15 Jan 2021 18:28:34 +0000 (15:28 -0300)]
tools: Fix some naming

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-editing-services/-/merge_requests/227>

3 years agotools: Reindent options
Thibault Saunier [Fri, 15 Jan 2021 18:28:17 +0000 (15:28 -0300)]
tools: Reindent options

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-editing-services/-/merge_requests/227>

3 years agolaunch: Add encoding profiles to the project
Thibault Saunier [Fri, 15 Jan 2021 18:27:30 +0000 (15:27 -0300)]
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>

3 years agovalidate: Handle passing timeline desc in .validatetest files
Thibault Saunier [Fri, 15 Jan 2021 18:26:36 +0000 (15:26 -0300)]
validate: Handle passing timeline desc in .validatetest files

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-editing-services/-/merge_requests/227>

3 years agoplugin: Fix `is-ges-timeline` registration
Thibault Saunier [Fri, 15 Jan 2021 18:25:12 +0000 (15:25 -0300)]
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>

3 years agocommand-line-formatter: Stop uselessly looping over options
Thibault Saunier [Fri, 15 Jan 2021 18:23:13 +0000 (15:23 -0300)]
command-line-formatter: Stop uselessly looping over options

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-editing-services/-/merge_requests/227>

3 years agocommand-line-formatter: Add a way to format timelines using the format
Thibault Saunier [Fri, 15 Jan 2021 18:21:06 +0000 (15:21 -0300)]
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>

3 years agoges: Use a `ges:` uri to define timeline from description
Thibault Saunier [Fri, 15 Jan 2021 18:03:20 +0000 (15:03 -0300)]
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>

3 years agoges: Add keyframe support to the command line formatter
Thibault Saunier [Fri, 15 Jan 2021 12:27:31 +0000 (09:27 -0300)]
ges: Add keyframe support to the command line formatter

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-editing-services/-/merge_requests/227>

3 years agostructured-interface: Move set_control_source from ges-validate
Thibault Saunier [Fri, 15 Jan 2021 12:25:11 +0000 (09:25 -0300)]
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>

3 years agostructured-interface: Factor out method to get element to set property
Thibault Saunier [Fri, 15 Jan 2021 12:13:59 +0000 (09:13 -0300)]
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>

3 years agocommand-line-formatter: Reindent command line options array
Thibault Saunier [Fri, 15 Jan 2021 11:49:20 +0000 (08:49 -0300)]
command-line-formatter: Reindent command line options array

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-editing-services/-/merge_requests/227>

3 years agoformatter: Use the new `GstEncodingProfile:element-properties` property
Thibault Saunier [Fri, 15 Jan 2021 11:47:10 +0000 (08:47 -0300)]
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>

3 years agoges: Minor debug logging level and typo fixes
Thibault Saunier [Thu, 14 Jan 2021 11:05:59 +0000 (08:05 -0300)]
ges: Minor debug logging level and typo fixes

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-editing-services/-/merge_requests/227>

3 years agocommand-line-formatter: Add track management to timeline description
Thibault Saunier [Tue, 12 Jan 2021 18:55:52 +0000 (15:55 -0300)]
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>

3 years agotest-source: Respect asset natural size
Thibault Saunier [Wed, 13 Jan 2021 18:18:04 +0000 (15:18 -0300)]
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>

3 years agoges-launcher: do not set rendering details too early
Mathieu Duponchelle [Fri, 29 Jan 2021 19:42:26 +0000 (20:42 +0100)]
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>

3 years agoges-structure-parser: force string types
Henry Wilkes [Tue, 29 Oct 2019 17:03:14 +0000 (17:03 +0000)]
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>

3 years agocommand-line-formatter: fix typos
Henry Wilkes [Tue, 29 Oct 2019 16:29:24 +0000 (16:29 +0000)]
command-line-formatter: fix typos

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-editing-services/-/merge_requests/123>

3 years agomarker-list: made deserialize reverse of serialize
Henry Wilkes [Fri, 18 Oct 2019 22:23:10 +0000 (23:23 +0100)]
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>

3 years agouri-source: Respect stream-id even on streams muxed in raw
Thibault Saunier [Mon, 14 Dec 2020 01:54:37 +0000 (22:54 -0300)]
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>

3 years agoaudio-track: Respect track restrictions in our gaps
Thibault Saunier [Tue, 12 Jan 2021 18:50:27 +0000 (15:50 -0300)]
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>

3 years agolaunch: Ensure to add required ref to profiles from project
Thibault Saunier [Tue, 5 Jan 2021 14:52:15 +0000 (11:52 -0300)]
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>

3 years agotests: fix meson test env setup to make sure we use the right gst-plugin-scanner
Jan Schmidt [Mon, 2 Nov 2020 11:18:24 +0000 (22:18 +1100)]
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>

3 years agolaunch: Add an interactive mode where we can seek etc...
Thibault Saunier [Fri, 4 Sep 2020 14:27:05 +0000 (10:27 -0400)]
launch: Add an interactive mode where we can seek etc...

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-editing-services/-/merge_requests/209>

4 years agomeson: Enable some MSVC warnings for parity with GCC/Clang
Nirbheek Chauhan [Wed, 4 Nov 2020 13:17:28 +0000 (18:47 +0530)]
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>

4 years agoinit: Fix initialisation crash
Jan Schmidt [Thu, 29 Oct 2020 13:30:52 +0000 (00:30 +1100)]
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>

4 years agoMeson: Use pkg-config generator
Xavier Claessens [Sun, 4 Nov 2018 18:04:45 +0000 (13:04 -0500)]
Meson: Use pkg-config generator

4 years agoutils.c: fix static build
Fabrice Fontaine [Sun, 18 Oct 2020 14:08:36 +0000 (16:08 +0200)]
utils.c: fix static build

Static build fails since version 1.17.1 and
https://gitlab.freedesktop.org/gstreamer/gst-editing-services/-/commit/1e488d4311420b5ca193155ad8ab05509c9a4a37
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>

4 years agomeson: actually check glib dependency version
Antonio Ospite [Sun, 18 Oct 2020 18:11:33 +0000 (20:11 +0200)]
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>

4 years agomeson: update glib minimum version to 2.56
Stéphane Cerveau [Fri, 16 Oct 2020 11:17:04 +0000 (13:17 +0200)]
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>

4 years agoges: Do not recreate auto-transitions when changing clip assets
Thibault Saunier [Fri, 4 Sep 2020 03:32:23 +0000 (23:32 -0400)]
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>

4 years agoges: Fix a copy/paste mistake in meson file
Thibault Saunier [Tue, 8 Sep 2020 14:39:10 +0000 (11:39 -0300)]
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>

4 years agovideo-transition: Make smpte props children properties
Thibault Saunier [Fri, 4 Sep 2020 01:15:16 +0000 (21:15 -0400)]
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>

4 years agoci: include template from gst-ci master branch again
Tim-Philipp Müller [Tue, 8 Sep 2020 16:30:53 +0000 (17:30 +0100)]
ci: include template from gst-ci master branch again

4 years agoBack to development
Tim-Philipp Müller [Tue, 8 Sep 2020 15:59:02 +0000 (16:59 +0100)]
Back to development

4 years agoRelease 1.18.0
Tim-Philipp Müller [Mon, 7 Sep 2020 23:09:25 +0000 (00:09 +0100)]
Release 1.18.0

4 years agodemux: Fixate documentation caps
Thibault Saunier [Fri, 4 Sep 2020 14:43:05 +0000 (10:43 -0400)]
demux: Fixate documentation caps

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-editing-services/-/merge_requests/210>

4 years agocomplex_effect_bin_desc: Regenerate expectation for compositor change
Jan Schmidt [Fri, 21 Aug 2020 14:57:06 +0000 (00:57 +1000)]
complex_effect_bin_desc: Regenerate expectation for compositor change

Part of: https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/796

4 years agotests: Fix running tests fully uninstalled
Thibault Saunier [Fri, 21 Aug 2020 01:09:31 +0000 (21:09 -0400)]
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>

4 years agoRelease 1.17.90
Tim-Philipp Müller [Thu, 20 Aug 2020 15:16:01 +0000 (16:16 +0100)]
Release 1.17.90

4 years agoges:source: Handle missing elements in converters
Thibault Saunier [Sat, 1 Aug 2020 02:02:01 +0000 (22:02 -0400)]
ges:source: Handle missing elements in converters

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-editing-services/-/merge_requests/204>

4 years agosmart-mixer: Move the videoconvert to after the mixer
Thibault Saunier [Wed, 22 Jul 2020 16:02:10 +0000 (12:02 -0400)]
smart-mixer: Move the videoconvert to after the mixer

So that it tries to negotiate with alpha and the alpha channel is
dropped as late as possible in the pipeline.

The compositor is able to do video conversion internally in any case
so having a videoconvert before it is useless.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-editing-services/-/merge_requests/204>

4 years agotransition: Enhance name of the elements
Thibault Saunier [Tue, 21 Jul 2020 12:49:35 +0000 (08:49 -0400)]
transition: Enhance name of the elements

Making it simpler to debug

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-editing-services/-/merge_requests/204>

4 years agosource: Handle missing elements in converter
Thibault Saunier [Mon, 20 Jul 2020 21:32:39 +0000 (17:32 -0400)]
source: Handle missing elements in converter

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-editing-services/-/merge_requests/204>

4 years agovideo-source: Stop giving useless name to frame positioner
Thibault Saunier [Tue, 14 Jul 2020 04:09:32 +0000 (00:09 -0400)]
video-source: Stop giving useless name to frame positioner

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-editing-services/-/merge_requests/204>

4 years agotransition: Better document the way alpha is computed for transitions
Thibault Saunier [Mon, 13 Jul 2020 22:18:22 +0000 (18:18 -0400)]
transition: Better document the way alpha is computed for transitions

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-editing-services/-/merge_requests/204>

4 years agosmart-mixer: Use the new 'samples-selected' signal to handle queuing in aggregator...
Thibault Saunier [Sun, 12 Jul 2020 17:51:42 +0000 (13:51 -0400)]
smart-mixer: Use the new 'samples-selected' signal to handle queuing in aggregator pads

Since aggregator introduced queueing in its sinkpads the way we set
properties on the pads is incorrect as it doesn't take it into account.
This fixes the issue by using the newly introduced `samples-selected`
signal in aggregator to set the properties right before the compositing
is done.

Also require the compositor we use to be an aggregator.

And add a validate test for it.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-editing-services/-/merge_requests/204>

4 years agoges:validate: Allow setting keyframes using the clips directly
Thibault Saunier [Sun, 12 Jul 2020 17:49:36 +0000 (13:49 -0400)]
ges:validate: Allow setting keyframes using the clips directly

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-editing-services/-/merge_requests/204>

4 years agoges-source: Ensure that we output stream with segments in time
Thibault Saunier [Sat, 25 Jul 2020 17:14:56 +0000 (13:14 -0400)]
ges-source: Ensure that we output stream with segments in time

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-editing-services/-/merge_requests/198>

4 years agopipeline: Restrict the presence only if the user didn't explicitly provided one
Thibault Saunier [Thu, 9 Jul 2020 15:10:41 +0000 (11:10 -0400)]
pipeline: Restrict the presence only if the user didn't explicitly provided one

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-editing-services/-/merge_requests/198>

4 years agotimeline: Add a simplified version of track selection signal
Thibault Saunier [Wed, 8 Jul 2020 19:47:55 +0000 (15:47 -0400)]
timeline: Add a simplified version of track selection signal

Most user do not need to select several tracks for a single
TrackElement and this signal is not binding friendly so
this is adding a simpler, more user and binding friendly version

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-editing-services/-/merge_requests/198>

4 years agouri-source: Respect user stream selection
Thibault Saunier [Wed, 8 Jul 2020 19:47:12 +0000 (15:47 -0400)]
uri-source: Respect user stream selection

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-editing-services/-/merge_requests/198>

4 years agolaunch: Also print the position when disabling validate
Thibault Saunier [Wed, 8 Jul 2020 12:02:27 +0000 (08:02 -0400)]
launch: Also print the position when disabling validate

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-editing-services/-/merge_requests/198>

4 years agolaunch: Print more useful information to stdout
Thibault Saunier [Wed, 8 Jul 2020 12:01:58 +0000 (08:01 -0400)]
launch: Print more useful information to stdout

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-editing-services/-/merge_requests/198>

4 years agobuild: Add an option to disable examples
Thibault Saunier [Wed, 8 Jul 2020 11:42:38 +0000 (07:42 -0400)]
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>

4 years agolauncher: Re activate smart rendering support
Thibault Saunier [Fri, 3 Jul 2020 22:21:22 +0000 (18:21 -0400)]
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>

4 years agoges: Fix smart rendering
Thibault Saunier [Fri, 3 Jul 2020 22:16:13 +0000 (18:16 -0400)]
ges: Fix smart rendering

Smart rendering has been broken since, mostly forever, but some code
was there pretending it was supported... let's try to stop pretending.

We now keep track of the smart rendering state in the timeline, track
and sources to be able to:

 * tell decodebin to stop plugging more (decoding elements) as soon as
   downstream supports the format.

 * avoid plugging converters after the source element when smart
   rendering.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-editing-services/-/merge_requests/198>

4 years agovalidate: Pipe debug output to a file when discovering scenarios
Thibault Saunier [Fri, 3 Jul 2020 22:00:39 +0000 (18:00 -0400)]
validate: Pipe debug output to a file when discovering scenarios

Otherwise `gst-validate-launcher` can get veeery noisy

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-editing-services/-/merge_requests/198>

4 years agonle: Minor debug enhancement
Thibault Saunier [Fri, 3 Jul 2020 21:59:49 +0000 (17:59 -0400)]
nle: Minor debug enhancement

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-editing-services/-/merge_requests/198>

4 years agotests: Mark audio identity as audio
Thibault Saunier [Fri, 3 Jul 2020 21:58:16 +0000 (17:58 -0400)]
tests: Mark audio identity as audio

Otherwise GES fallbacks to video...

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-editing-services/-/merge_requests/198>

4 years agopipeline: stop setting the track caps
Henry Wilkes [Mon, 13 Jan 2020 13:08:24 +0000 (13:08 +0000)]
pipeline: stop setting the track caps

Stop setting the track 'caps' property. The previous code could
overwrite a users own setting of the caps for video and audio caps.
Moreover, the 'caps' property is listed as construct only, and users
will likely expect it to stay the same after a track has been added to a
timeline.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-editing-services/-/merge_requests/198>

4 years agolauncher: Delay setting rendering setting to right before rendering
Thibault Saunier [Fri, 3 Jul 2020 21:41:28 +0000 (17:41 -0400)]
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>