Commit graph

3452 commits

Author SHA1 Message Date
Thibault Saunier
834345b1c8 uri*source: Factor out common logic into a GESUriSource private data
The two classes are *very* close but have different hierarchy so this
introduces a new GESUriSource structure that is used as private
structure by both subclasses and makes most of the logic shared this
way.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-editing-services/-/merge_requests/198>
2020-07-30 18:44:13 -04:00
Thibault Saunier
135707290e *uri-source: Call free from the object ->finalize not ->dispose
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-editing-services/-/merge_requests/198>
2020-07-26 20:34:58 -04:00
Tim-Philipp Müller
a1d5282ba7 meson: install bash completion helper for ges-launch-1.0
Fixes #77

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-editing-services/-/merge_requests/203>
2020-07-26 09:42:49 +00:00
Tim-Philipp Müller
2cd8e6d0db meson: add 'tools' and 'examples' options
To optionally disable build of those.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-editing-services/-/merge_requests/203>
2020-07-26 09:42:49 +00:00
AsociTon
9f202a0a72 Fix retrieving asset metadata on project reload.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-editing-services/-/merge_requests/202>
2020-07-25 08:28:44 +05:30
yatinmaan1@gmail.com
697102fbf3 tests: Add test for ges_clip_get_top_effect_index
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-editing-services/-/merge_requests/201>
2020-07-24 15:28:14 +05:30
Guillaume Desmottes
30e9133cfa tests: clip: fix test_rate_effects_duration_limit
Fix this assertion:
g_value_copy: assertion 'g_value_type_compatible (G_VALUE_TYPE (src_value), G_VALUE_TYPE (dest_value))' failed

'tempo' is a float, not a double.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-editing-services/-/merge_requests/199>
2020-07-14 10:20:32 +02:00
Thibault Saunier
50616ad293 build: Add version.h to the headers list
So it is properly installed and the gir contains the required information

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

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-editing-services/-/merge_requests/197>
2020-07-10 08:21:11 -04:00
Thibault Saunier
6938800bc8 pitivi-formatter: Also skip the class 2020-07-09 21:43:33 -04:00
Tim-Philipp Müller
3a291cf450 meson: set release date from .doap file for releases
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-editing-services/-/merge_requests/196>
2020-07-08 17:33:07 +01:00
Thibault Saunier
2c30962172 title: Make deprecated symbols visible API
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-editing-services/-/merge_requests/195>
2020-07-08 10:03:43 -04:00
Tim-Philipp Müller
34b6dfd9bf Back to development 2020-07-03 02:04:08 +01:00
Tim-Philipp Müller
aed1959f87 Release 1.17.2 2020-07-03 00:35:20 +01:00
Mathieu Duponchelle
734c3ebb0a docs: fix links 2020-06-23 18:37:12 +02:00
Mathieu Duponchelle
eada034a5b plugins_cache: add base classes 2020-06-23 12:09:12 -04:00
Mathieu Duponchelle
9dc7443f72 meson: mark plugins cache target as always stale 2020-06-23 12:09:12 -04:00
Mathieu Duponchelle
1094b89c3d docs: mark more types as plugin API 2020-06-23 12:09:12 -04:00
Thibault Saunier
ae2cb7d0f5 doc: Stop documenting properties from parents 2020-06-23 12:09:12 -04:00
Sebastian Dröge
361c638d74 smart-video-mixer: Don't call gst_ghost_pad_construct() anymore
It's deprecated, unneeded and doesn't do anything anymore.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-editing-services/-/merge_requests/192>
2020-06-22 12:34:20 +03:00
Tim-Philipp Müller
5bcf0e079a Back to development 2020-06-20 00:28:31 +01:00
Tim-Philipp Müller
f14c2ea9d5 Release 1.17.1 2020-06-19 19:25:58 +01:00
Thibault Saunier
fe49c80c8d ges: Add all missing Since markers from 1.16 onward
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-editing-services/-/merge_requests/191>
2020-06-19 11:13:24 -04:00
Thibault Saunier
c05f9b1d5e asset: Do not try to update proxies when we are in a proxying loop
This is a regression introduced in
c12b84788d, this commit simply brings back
the previous behavior.

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

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-editing-services/-/merge_requests/185>
2020-06-17 20:45:40 +00:00
Thibault Saunier
c09de963be ges: Refactor the way we plug converters in effects
Stopping to do it at the bin description level but properly
plugging them where they are needed and cleanly ghosting the pads
where it makes most sense.

This introduces support for GES to request pads on the most upstream
element in case no static pad can be ghosted.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-editing-services/-/merge_requests/187>
2020-06-17 10:48:41 -04:00
Thibault Saunier
c217346fa0 structured-interface: Add support for setting effects inpoint
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-editing-services/-/merge_requests/187>
2020-06-16 18:21:01 -04:00
Thibault Saunier
f070373def track-element: Make set_has_internal_source return a boolean
Telling the user if it is legal to have an internal source in that
particular GESTrackElement.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-editing-services/-/merge_requests/187>
2020-06-16 18:21:01 -04:00
Thibault Saunier
ba6c842831 pipeline: doc: Add a note about trying to render before setting rendering settings
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-editing-services/-/merge_requests/189>
2020-06-16 15:49:41 -04:00
Thibault Saunier
9e0fbe964f uri-clip: Add a warning about synchronous uri discovery
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-editing-services/-/merge_requests/189>
2020-06-16 15:49:41 -04:00
Thibault Saunier
4fd1bb8163 docs: Update plugins cache 2020-06-09 15:22:30 -04:00
Thibault Saunier
5c22bf0e42 docs: Update plugins cache 2020-06-09 08:50:37 -04:00
Guillaume Desmottes
96d1df3cb7 tests: enforce I420 format
Tests are assuming video is I420 with a specific chroma and colorimetry
but were not actually enforcing it.
Fixes needed as I420 will no longer be the first video format, see
gst-plugins-base!689

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-editing-services/-/merge_requests/184>
2020-06-08 13:10:54 +02:00
Mathieu Duponchelle
10568c30d9 track, composition: mark stream id properties as DOC_SHOW_DEFAULT
and update plugins cache

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-editing-services/-/merge_requests/182>
2020-06-04 23:14:59 +02:00
Thibault Saunier
91b98ebb5f doc: Require hotdoc >= 0.11.0 2020-06-03 22:44:15 -04:00
Sebastian Dröge
18a4b109de docs: Update gst_plugins_cache.json 2020-06-03 22:44:14 -04:00
Guillaume Desmottes
a90f9dc257 add missing Since annotations on new API
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-editing-services/-/merge_requests/181>
2020-06-03 09:57:06 +02:00
Thibault Saunier
d56f3fe9ec formatter: Do not dereference NULL pointer
CID 1461701

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-editing-services/-/merge_requests/180>
2020-05-27 23:49:00 +00:00
Thibault Saunier
8047323e93 xml-formatter: Add an GST_ERROR when setting control sources fails
CID 1463853

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-editing-services/-/merge_requests/180>
2020-05-27 23:49:00 +00:00
Thibault Saunier
1f94299c49 validate: Wait for state change to consider commit as done
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-editing-services/-/merge_requests/178>
2020-05-26 19:14:53 -04:00
Thibault Saunier
9efcf1549d validate: Stop always muting
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-editing-services/-/merge_requests/178>
2020-05-26 19:12:46 -04:00
Thibault Saunier
db5c62ad4c formatter: Fix saving/loading project with clip speed rate control
We need to ensure that clips duration is set after time effects are
added and we now need to serialize effects inpoints and max duration.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-editing-services/-/merge_requests/177>
2020-05-25 11:20:38 +01:00
Henry Wilkes
e142f49177 docs: add some notes on Time in GES
These notes cover time coordinates in GES, time effects, time
translations.

It also goes into why keyframes will not work with non-linear time
effects.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-editing-services/-/merge_requests/177>
2020-05-25 11:20:38 +01:00
Henry Wilkes
a6d0418f99 uri-clip: don't assume duration needs to stay the same
ges_uri_clip_asset_get_duration does not tell us what the duration in
the timeline needs to be. Especially when we have time effects, or
effects with finite max-durations. So we should no longer expect the
duration to stay the same when replacing assets. Instead, we just check
that the new max-duration would be compatible with the current in-point
(which was not checked before), and the clip would not be totally
overlapped if its duration-limit changes.

This is based on the assumption that each source is replaced one-to-one
in its track. If a source is replaced with nothing in the same track,
this check may be a little too strong (but still mostly weaker than
before). However, problems could occur if track selection does
something unexpected, such as placing the new source in a track not
previously occupied.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-editing-services/-/merge_requests/177>
2020-05-25 11:20:38 +01:00
Henry Wilkes
f269a7f2a6 clip: provide an example of using time effects
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-editing-services/-/merge_requests/177>
2020-05-25 11:20:38 +01:00
Henry Wilkes
9e18e03939 track-element: use out-point for updating control bindings
The out-point, which is an internal time, is used instead of the
duration for determining the control binding value at the end of the
element.

Also, allow the user to switch off the auto-clamping of control sources
if they are not desired. And allow them to clamp specific control sources
individually.

Also, fix a lot of memory leaks related to control sources. In
particular, releasing the extra ref gained by source in
g_object_get (binding, "control-source", &source, NULL);

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-editing-services/-/merge_requests/177>
2020-05-25 11:20:38 +01:00
Henry Wilkes
738524662b clip: test for layer in group
Make sure the layer exists before we try to remove the grouped clips
from it.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-editing-services/-/merge_requests/177>
2020-05-25 11:20:38 +01:00
Henry Wilkes
34719efa17 timeline-tree: make sure the layer priority refers to an existing layer
If a layer priority sits between the priorities of two layers in the
timeline, i.e. it references a gap in the timeline's layers, then
ges_timeline_append_layer will never fill this gap and create the
desired layer, so the edit in timeline-tree would loop forever. So a
check was added to avoid this.

This would be a usage error, but a user can reasonably end up with a gap
in their layers if they remove a layer from the timeline.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-editing-services/-/merge_requests/177>
2020-05-25 11:20:38 +01:00
Henry Wilkes
53d335b4ed clip: add method for adding top effects
Unlike ges_container_add, this lets you set the index and will check
that track selection did not fail. This is useful for time effects whose
addition would create an unsupported timeline configuration.

Also can use the clip add error in ges_timeline_add_clip to let the user
know when adding a clip to a layer that its in-point is set larger than
the max-duration of its core children.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-editing-services/-/merge_requests/177>
2020-05-25 11:20:38 +01:00
Henry Wilkes
478db52ded timeline-tree: take time effects into account when trimming
When trimming the start of a clip, we want to set the in-point of its
children such that whatever data was at the timeline time T still
remains at the timeline time T after the trim, where
  T = MAX (prev_start, new_start)

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-editing-services/-/merge_requests/177>
2020-05-25 11:20:38 +01:00
Henry Wilkes
364c112d66 clip: use time translation for split
The new in-point should be the media position corresponding to the media
position. media_duration_factor is no longer needed.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-editing-services/-/merge_requests/177>
2020-05-25 11:20:38 +01:00
Henry Wilkes
e36e99e1ce clip: fix warning when getting duration-limit
The duration-limit case was missing a 'break;' statement.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-editing-services/-/merge_requests/177>
2020-05-25 11:20:38 +01:00