Thibault Saunier
99074a01a3
validate: Add action types to set/check various child properties at once
...
And add a way to take into account control bindings.
2020-02-26 13:36:30 -03:00
Thibault Saunier
38dbfc1c24
ges: Allow setting children property using the set_object_arg format
...
This make it much simpler for the user to set enum values and should not cause any issue
2020-02-25 17:44:51 -03:00
Thibault Saunier
4e4473ef8f
ges: Plug leaks in new ges-launch and related
2020-02-25 17:44:51 -03:00
Thibault Saunier
056ac5eeb0
validate: Port to the new REPORT_ACTION API
2020-02-25 17:44:51 -03:00
Thibault Saunier
b7c4171f31
nlesource: When standalone consider object.duration==0 as not set
...
nleobject.duration defaults to 0, but this is pretty unintuitive for
end user in the case nlesource is use standalone, just consider
duration=0 equivalent to duration=GST_CLOCK_TIME_NONE as it makes
the element much simpler to use, we could actually forbid 0 as a value
in the future.
Also take into account potential CLOCK_TIME_NONE
2020-02-18 23:08:53 -03:00
Thibault Saunier
0be8bc9d98
ges: Avoid adding unnecessary converters for nested timelines
...
Basically we know that if we are using mixing, compositor will be
able to do video conversion and scaling for us, so avoid adding those
usless elements.
This optimizes a lot caps negotiation for deeply nested timelines.
2020-02-12 17:50:37 -03:00
Thibault Saunier
f30b7f05b5
plugins:ges: Fix pushing tags after e8c782d119
...
Basically the tags we send before STREAM_START are now ignored, meaning
that we could not detect nested timelines anymore, this commits makes
sure that we send our tag event after getting pushing STREAM_START.
2020-02-12 17:50:37 -03:00
Thibault Saunier
3c3176516e
nlecomposition: Optimize prerolling when using nested compositions
...
When a composition is nested into anotherone, we *know* that the
toplevel composition is going to send a stack initializing seek,
we can thus avoid sending it on the subcomposition itself when
prerolling. This avoid seeking roundtrips and we now have one and
only one seek travelling in the overall pipeline (after it has
prerolled).
2020-02-12 17:50:37 -03:00
Thibault Saunier
32de7d857d
nlesource: Fix seeks when used standalone
...
The 'start' of nleobject is in the 'composition' scale, inpoint is in
the media scale, when outside a composition, a nleobject->start value
doesn't mean anything.
2020-02-12 17:50:37 -03:00
Thibault Saunier
c63586e0a7
nle: Seek the whole stack on initialization
...
Instead of seeking each nleobject separately to setup new stack, wait
for the whole stack to preroll and then seek that newly setup stack,
leading to the same code path and seek 'tweaking' as when processing
a seek on the composition (without stack changes).
This is mandatory to properly handle filter that tweak segments to handle
time remapping for example.
2020-02-12 17:50:37 -03:00
Thibault Saunier
17500f6836
nle: Minor typo fixes
2020-02-11 18:30:13 -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
82159882d7
ges: Ignore deprecation of GParameter
...
GParameter is part of our API, and for GLib < 2.54 we do not even have
a way around avoiding it (namely `g_object_new_with_properties`).
We should stop using GParameter once we depend on GLib 2.54.
Fixes https://gitlab.freedesktop.org/gstreamer/gst-editing-services/issues/86
2020-02-07 11:58:37 -03:00
Thibault Saunier
000edd268e
ges: Use G_DEPRECATE to mark deprecated methods
...
Cleanup a few things on the way.
And move ges-track-element deprecations to a dedicated header file
2019-12-18 15:48:23 -03:00
Henry Wilkes
7b5f655c9a
ges-source-clip: fixed return of duration setter
...
In general, brought the behaviour of the `start`, `duration` and
`inpoint` setters in line with each other. In particular:
1. fixed return value the GESSourceClip `duration` setter
2. changed the GESClip `start` setter
3. fixed the inpoint callback for GESContainer
4. changed the type of `res` in GESTimelineElement to be gint to
emphasise that the GES library is using the hack that a return of -1
from klass->set_duration means no notify signal should be sent out.
Also added a new test for clips to ensure that the setters work for
clips within and outside of timelines, and that the `start`, `inpoint`
and `duration` of a clip will match its children.
2019-12-14 18:12:51 +00:00
Thibault Saunier
eabcaa1a56
pipeline: Ensure that encodebin enforces a single segment sent to encoders
2019-12-05 14:23:04 -03:00
Thibault Saunier
3d04bd2b2b
validate: Move to the new GstValidateEncodingTestInterface API
2019-11-20 18:07:22 -03:00
Edward Hervey
0219631f5a
xml-formatter: Free structure after usage
...
CID: 1416901
CID: 1439518
CID: 1439527
2019-11-20 07:52:56 +01:00
Edward Hervey
9e6be472a4
formatter: Free path object after usage
...
As it's done everywhere else
CID: 1455511
2019-11-20 07:46:47 +01:00
Nirbheek Chauhan
eb1345703d
meson: Fix disabling of the python support
...
Cannot call python.dependency() if the python module was not found.
2019-11-07 16:54:32 +05:30
Niels De Graef
35d140ad92
Don't pass default GLib marshallers for signals
...
By passing NULL to `g_signal_new` instead of a marshaller, GLib will
actually internally optimize the signal (if the marshaller is available
in GLib itself) by also setting the valist marshaller. This makes the
signal emission a bit more performant than the regular marshalling,
which still needs to box into `GValue` and call libffi in case of a
generic marshaller.
Note that for custom marshallers, one would use
`g_signal_set_va_marshaller()` with the valist marshaller instead.
2019-10-24 15:19:09 +02:00
Henry Wilkes
44420b2e56
marker: add color meta
...
Support optionally coloring markers by reserving GES_META_MARKER_COLOR
for an ARGB guint.
2019-10-24 09:45:19 +00:00
Henry Wilkes
e53b3fadf1
meta-container: add register_static_meta
...
Allows us to register a static meta without having to set a value.
2019-10-24 09:45:19 +00:00
Henry Wilkes
a70d0198df
meta-container: move comment
...
The comment that was above _register_meta is actually meant for
_set_value.
2019-10-24 09:45:19 +00: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
Rico Tzschichholz
d760910448
marker-list: Use proper parameters names even in the docs
...
Otherwise there will be parameters with hyphen in their name in the GIR.
2019-10-22 22:51:41 +02:00
Thibault Saunier
bea7bc33a1
nlecomposition: Enhance dumping stack output
2019-10-22 19:55:01 +02:00
Thibault Saunier
8e145e7f32
ges: Handle empty marker lists
2019-10-22 19:55:01 +02:00
Thibault Saunier
fe96405692
validate: Tear down pipeline when openning a new project
...
Avoiding potential deadlock when we remove tracks on a playing pipeline
2019-10-22 19:25:09 +02:00
Thibault Saunier
64bb85e6a1
ges: Fix setting GError when adding children to containers
...
We were misusing assertion and not properly setting the GError value
2019-10-22 19:25:09 +02:00
Thibault Saunier
d58d992674
smart-video-mixer: Handle segment updates
...
We were basically ignoring any segment update which could potentially
lead to setting a wrong stream time leading to wrong alpha value
being used.
2019-10-22 19:25:09 +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
5234885c8a
pipeline: Be smarter about how we match encoding profiles and tracks
2019-10-21 10:25:25 +00:00
Tim-Philipp Müller
b9307eaac1
meson: build gir even when cross-compiling if introspection was enabled explicitly
...
This can be made to work in certain circumstances when
cross-compiling, so default to not building g-i stuff
when cross-compiling, but allow it if introspection was
enabled explicitly via -Dintrospection=enabled.
See gstreamer/gstreamer#454 and gstreamer/gstreamer#381
2019-10-18 00:50:16 +01:00
Henry Wilkes
cab4a52dde
marker-list: add prev position to ::marker-moved
...
Additionally give the previous marker position in the
GESMarkerList::marker-moved signal, since a user may want to know
where a move was from.
Also, fixed the documentation for GESMarkerList::marker-added
https://gitlab.freedesktop.org/gstreamer/gst-editing-services/issues/78
2019-10-16 17:58:15 +01:00
Tim-Philipp Müller
0c96b9dd10
Remove autotools build system
...
Todo:
- hook up data/completions/ges-launch-1.0 in Meson (#77 )
2019-10-13 13:54:19 +01:00
Sebastian Dröge
1d12f0b1a1
ges: Hide internal debug category behind a GOnce
...
Otherwise it might be used (e.g. by the plugin loader via the GES
plugin!) before ges_init() is called.
2019-10-02 08:52:57 +03:00
Sebastian Dröge
eabfd98e6d
gesdemux: Initialize debug category before first using it
...
Prevents critical warnings during class_init()
2019-10-01 18:01:21 +03:00
Thibault Saunier
e0f8b54a03
project: Add missing safe guard when listing assets
2019-09-30 12:58:24 +00:00
Thibault Saunier
29f25c6c43
launch: Add an option to embed nested timelines when saving
2019-09-30 12:58:24 +00:00
Henry Wilkes
6c3528fb4d
xml-formatter: increase xges version to 0.6
...
Increase minor_version to 6 if a sub-project is saved under an asset or an asset includes a child stream-info element.
2019-09-23 18:49:42 +00:00
Thibault Saunier
d3e2cf55e3
tests: Fix transition project tests
...
Basically the test project was plain broken as it had fully overlapping
clips is prohibited since the timeline edition API was reimplemented.
Fixes https://gitlab.freedesktop.org/gstreamer/gst-editing-services/issues/62
2019-08-28 13:51:02 +00:00
Thibault Saunier
8477a3236d
asset: Fix asset cache for CLips and TrackElement with same ID
...
We clearly uniquely identify assets by both their IDs and their
extractable type, and we should make sure that you can have a
TrackElement and a Clip with the same ID.
There is one exception in our implementation which is GESFormatter
because we treat their subclasses as 1 type with different IDs.
2019-08-28 13:51:02 +00:00
Thibault Saunier
dcae483bca
ges: Expose ges mixer to be used as effects
2019-08-28 13:51:02 +00:00
Thibault Saunier
99c44bdb34
ges: Add support for EffectClip assets
2019-08-28 13:51:02 +00:00
Matthew Waters
c2bba9e0e5
build: also suppress unused-function warnings about g_autoptr
...
../plugins/ges/gesdemux.c:50:1: error: unused function 'glib_autoptr_cleanup_GESDemux' [-Werror,-Wunused-function]
G_DECLARE_FINAL_TYPE (GESDemux, ges_demux, GES, DEMUX, GESBaseBin);
^
/home/matt/Projects/cerbero/build/dist/android_universal/x86_64/include/glib-2.0/gobject/gtype.h:1401:3: note: expanded from macro 'G_DECLARE_FINAL_TYPE'
_GLIB_DEFINE_AUTOPTR_CHAINUP (ModuleObjName, ParentName) \
^
/home/matt/Projects/cerbero/build/dist/android_universal/x86_64/include/glib-2.0/glib/gmacros.h:451:22: note: expanded from macro '_GLIB_DEFINE_AUTOPTR_CHAINUP'
static inline void _GLIB_AUTOPTR_FUNC_NAME(ModuleObjName) (ModuleObjName **_ptr) { \
^
/home/matt/Projects/cerbero/build/dist/android_universal/x86_64/include/glib-2.0/glib/gmacros.h:441:43: note: expanded from macro '_GLIB_AUTOPTR_FUNC_NAME'
#define _GLIB_AUTOPTR_FUNC_NAME(TypeName) glib_autoptr_cleanup_##TypeName
^
<scratch space>:81:1: note: expanded from here
glib_autoptr_cleanup_GESDemux
^
../plugins/ges/gessrc.c:56:1: error: unused function 'glib_autoptr_cleanup_GESSrc' [-Werror,-Wunused-function]
G_DECLARE_FINAL_TYPE (GESSrc, ges_src, GES, SRC, GESBaseBin);
^
/home/matt/Projects/cerbero/build/dist/android_universal/x86_64/include/glib-2.0/gobject/gtype.h:1401:3: note: expanded from macro 'G_DECLARE_FINAL_TYPE'
_GLIB_DEFINE_AUTOPTR_CHAINUP (ModuleObjName, ParentName) \
^
/home/matt/Projects/cerbero/build/dist/android_universal/x86_64/include/glib-2.0/glib/gmacros.h:451:22: note: expanded from macro '_GLIB_DEFINE_AUTOPTR_CHAINUP'
static inline void _GLIB_AUTOPTR_FUNC_NAME(ModuleObjName) (ModuleObjName **_ptr) { \
^
/home/matt/Projects/cerbero/build/dist/android_universal/x86_64/include/glib-2.0/glib/gmacros.h:441:43: note: expanded from macro '_GLIB_AUTOPTR_FUNC_NAME'
#define _GLIB_AUTOPTR_FUNC_NAME(TypeName) glib_autoptr_cleanup_##TypeName
^
<scratch space>:158:1: note: expanded from here
glib_autoptr_cleanup_GESSrc
^
2019-08-28 18:46:36 +10:00
Thibault Saunier
82a970f415
ges: fix G_DECLARE_FINAL_TYPE -Werror with clang
...
Also fix wrong casing the `G_DECLARE` for GESDemux.
../subprojects/gst-editing-services/plugins/ges/gessrc.c:56:1: warning: unused function 'GES_SRC' [-Wunused-function]
G_DECLARE_FINAL_TYPE (GESSrc, ges_src, GES, SRC, GESBaseBin);
^
/usr/include/glib-2.0/gobject/gtype.h:1405:33: note: expanded from macro 'G_DECLARE_FINAL_TYPE'
static inline ModuleObjName * MODULE##_##OBJ_NAME (gpointer ptr) { \
^
<scratch space>:39:1: note: expanded from here
GES_SRC
^
../subprojects/gst-editing-services/plugins/ges/gessrc.c:56:1: warning: unused function 'GES_IS_SRC' [-Wunused-function]
/usr/include/glib-2.0/gobject/gtype.h:1407:26: note: expanded from macro 'G_DECLARE_FINAL_TYPE'
static inline gboolean MODULE##_IS_##OBJ_NAME (gpointer ptr) { \
^
<scratch space>:42:1: note: expanded from here
GES_IS_SRC
^
../subprojects/gst-editing-services/plugins/ges/gesdemux.c:50:1: warning: unused function 'GES_Demux' [-Wunused-function]
G_DECLARE_FINAL_TYPE (GESDemux, ges_demux, GES, Demux, GESBaseBin);
^
/usr/include/glib-2.0/gobject/gtype.h:1405:33: note: expanded from macro 'G_DECLARE_FINAL_TYPE'
static inline ModuleObjName * MODULE##_##OBJ_NAME (gpointer ptr) { \
^
<scratch space>:72:1: note: expanded from here
GES_Demux
^
../subprojects/gst-editing-services/plugins/ges/gesdemux.c:50:1: warning: unused function 'GES_IS_Demux' [-Wunused-function]
/usr/include/glib-2.0/gobject/gtype.h:1407:26: note: expanded from macro 'G_DECLARE_FINAL_TYPE'
static inline gboolean MODULE##_IS_##OBJ_NAME (gpointer ptr) { \
^
<scratch space>:75:1: note: expanded from here
GES_IS_Demux
^
2019-08-27 10:43:11 -04:00
Matthew Waters
2e8528bb40
ges/timeline: remove unused function get_toplevel_container
...
Fixes -Werror build with clang:
../subprojects/gst-editing-services/ges/ges-timeline.c:695:1: warning: unused function 'get_toplevel_container' [-Wunused-function]
get_toplevel_container (gpointer element)
^
2019-08-27 03:58:42 +00:00
Thibault Saunier
cec6fef8b3
doc: Update cache and fix usage of <ulink>
2019-08-23 16:56:47 +00:00