Thibault Saunier
a342d14ba9
ges: Add support for sources reverse playback
...
It introduces a `reverse` property at the `nlesource` level which will
basically reverse playback of the clip.
We guarantee that outside that clip, the data flow looks like it was
playing forward as we add an 'identity' element with `single-segment=true`.
This start making use of the newly introduced concept of
`CHILD_PROP_FLAG_SET_ON_ALL_INSTANCES` as it is natural that
doing `source_clip.set_child_property("reverse", True)` will make
the whole clip go reverse, meaning that all the GESSource children
properties will be set. To set an individual source "reverse" child
property as the desired effect.
Fixes: https://gitlab.freedesktop.org/gstreamer/gst-editing-services/-/issues/24
Depends on: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/451
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/918 >
2024-04-18 00:19:31 +00:00
Thibault Saunier
5051a34318
nlecomposition: Do not forward QoS event while setting up the new stack
...
Otherwise we might end up dropping buffers even before prerolling the sources
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6032 >
2024-01-31 19:43:06 +00:00
Thibault Saunier
1627a944e7
nlecomposition: Use a bus message to retrieve pipeline position
...
Instead of recursing up, as this will allow to have nested composition
run inside auxiliary pipelines. It is a bit cleaner also.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5983 >
2024-01-31 17:37:41 +00:00
Thibault Saunier
79c211a5fb
nlecomposition: Use a message to check if we need an initialization seek
...
Subtimeline might be in an auxiliary pipeline which make the current
recurse up approach not working.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5983 >
2024-01-31 17:37:41 +00:00
Thibault Saunier
37602d1d02
ges: Keep internal stream selection messages internally
...
Timeline StreamCollection are very specific to inner working of nested
timelines and should not interfere with the usual stream selection
process and are now handled as element messages.
Stream selection inside `nleobject` need to be handled internally by the
application or GES itself so we should just drop all those as they would
interfere and fail if they are exposed to other elements.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5983 >
2024-01-31 17:37:41 +00:00
Thibault Saunier
b14207cc9e
nle: Use a message based mechanism to detect parent nleobject duration
...
Recursing up is pretty ugly and will fail when we start using ancillary
pipelines for sources in nle, using a message/event based mechanism is
a common pattern that is much cleaner.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5983 >
2024-01-31 17:37:41 +00:00
Thibault Saunier
bc42175fd3
nlecomposition: Pass object to debug messages in more places
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5981 >
2024-01-25 09:54:19 +00:00
Thibault Saunier
e3be7e3162
nlecomposition: Simplify the way we ensure stream-start is sent
...
stream-start should always be sent once at the beginning of the stream,
so we should make sure it is pushed at the very beginning and after
resets (going back to READY).
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5858 >
2024-01-06 13:22:19 +00:00
Thibault Saunier
7911a580c2
nle: composition: Avoid running query before being constructed
...
`gst_pad_create_stream_id` runs a URI query on the element which
triggers traces for not constructed objects which fails in rust tracers
as object should have names in all traces.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4975 >
2023-07-06 05:48:31 +00:00
Tim-Philipp Müller
f8817a8e8d
ges: nle: drop use of GSlice allocator
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3784 >
2023-02-03 17:48:09 +00:00
Thibault Saunier
5724a64660
nlecomposition: Minor debug enhancement
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3000 >
2022-09-20 13:23:02 +00:00
Thibault Saunier
6a4425e46a
meson: Call pkgconfig.generate in the loop where we declare plugins dependencies
...
Removing some copy pasted code
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2970 >
2022-09-01 21:17:35 +00:00
Stéphane Cerveau
ef9962d66a
nle: clear seek event properly
...
Use gst_clear_event instead of g_clear_object
avoiding a failing gobject unref
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2047 >
2022-03-29 16:50:13 +00:00
Thibault Saunier
01e70e3552
Move files from gst-editing-services into the "subprojects/gst-editing-services/" subdir
2021-09-24 16:15:30 -03:00