Commit graph

209 commits

Author SHA1 Message Date
Edward Hervey dd3344fd2e ges-pipeline: Configure encodebin before linking
Modifying the `avoid-reencoding` property of `encodebin` could potentially cause
it to reconfigure itself, in which case the source pad will be removed and then
re-added.

Therefore set that property *before* attempting to link to that pad.

Fixes smart-render

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6757>
2024-04-30 15:47:41 +00:00
Edward Hervey 5d705ed923 ges/tools: Use new GstEncodingProfile function from pbutils
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6712>
2024-04-23 14:27:00 +00:00
Loïc Le Page 9fd0f44492 gst-editing-services: add input channels reorder
- whitelist corresponding properties from audioconvert
- add input channels reorder validation test in gst-integration-testsuites/ges/scenarios

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5923>
2024-04-22 12:06:11 +02:00
Edward Hervey a032c1e1bd ges-command-line-formatter: Handle transitions
Avoids getting a noisy g_warning

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6683>
2024-04-19 08:03:48 +00:00
Edward Hervey 37b60e5354 ges-timeline-tree: Fix debug statement
Was printing out garbage in the logs

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6683>
2024-04-19 08:03:48 +00:00
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 526f00b07f ges: test-clip: Fix setting children asset ids
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/918>
2024-04-18 00:19:31 +00:00
Thibault Saunier 388ad9e574 validate: Add an action to group containers
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/918>
2024-04-18 00:19:31 +00:00
Thibault Saunier 38d60c9f43 ges: Also track children props 'duplicates' in TimelineElement
We used to only track the first one but this was wrong, so we start
tracking all the children properties here, adapting the test which
was already thought for this to be implemented.

At the same time add some flags to determine how children properties
need to be handled adding a mode that means that all duplicated
children props will be set together when the user sets that particular
child property. This is going to be tested in a following commit.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/918>
2024-04-18 00:19:31 +00:00
Thibault Saunier 47029ca9de ges: tools: Fix printing validate action types
We were not taking into account some arguments could have been eaten

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/918>
2024-04-18 00:19:31 +00:00
Edward Hervey a2254a4968 ges-launcher: Fix for forcing container profiles
If the input profile doesn't have a container, it's fine since we are overriding
it. Just add the elementary stream to the target container profile

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6674>
2024-04-17 16:07:47 +02:00
Tim-Philipp Müller 9e2cc83f23 ges: add check to make sure headers are C++ compiler clean
See https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3421

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6440>
2024-03-26 14:21:34 +00:00
Thibault Saunier 324c211283 ges: frame-composition-meta: Stop using keyword 'operator' for field in C++
Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3421

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6440>
2024-03-26 14:21:34 +00:00
Seungha Yang 2e1eaaec5e ges: Fix critical warning
GStreamer-CRITICAL **: 20:44:38.256: gst_debug_log_full_valist:
assertion 'category != NULL' failed

Make sure debug category initialized.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6304>
2024-03-08 21:00:51 +09:00
Tim-Philipp Müller 756064b9c3 Back to development
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6261>
2024-03-05 12:58:57 +00:00
Tim-Philipp Müller b125253cad Release 1.24.0 2024-03-04 23:59:25 +00:00
Thibault Saunier 14d6773aba ges: framepositioner: Expose positioning properties as doubles
Making it possible to properly handle compositors that have those
properties as doubles and handle antialiasing.

Internally we were handling those values as doubles in framepositioner,
so expose new properties so user can set values as doubles also.

This changes the GESFramePositionMeta API but we are still on time for 1.24

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6241>
2024-02-29 00:56:30 +00:00
Edward Hervey a3980f4838 docs: Use Discourse and Matrix as prefered communication channels
Part of: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6220
2024-02-27 09:35:47 +01:00
Tim-Philipp Müller d474de8ff0 Release 1.23.90 2024-02-23 18:20:11 +00:00
Nirbheek Chauhan 768aeb739a meson: Use cdata.set_quoted() for configuration data
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6159>
2024-02-21 21:47:12 +00:00
Nirbheek Chauhan 64fdded13a ges, gst-python: Fix libpython dlopen on macOS
First encountered at https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1171#note_2290789

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6159>
2024-02-21 21:47:12 +00:00
Nirbheek Chauhan 2cc9a181f9 ges, gst-python: Rework libpython loading to be relocatable
If we don't specify a path for loading, the runtime linker will search
for the library instead, which will use the usual mechanisms: RPATHs,
LD_LIBRARY_PATH, PATH (on Windows), etc.

Also try harder to load a non-devel libpython using INSTSONAME, if
available.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6159>
2024-02-21 21:47:12 +00:00
Nirbheek Chauhan ad8ea38e0a meson: Use host_system for the host_machine system
This is a convention everywhere else in gstreamer.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6159>
2024-02-21 21:47:12 +00:00
Tim-Philipp Müller 88412ef100 Back to development
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6126>
2024-02-15 16:38:53 +00:00
Tim-Philipp Müller 88751d4110 Release 1.23.2 2024-02-15 15:37:17 +00:00
Xavier Claessens 561f8b71ee structure: Allow STRICT flag only in _serialize_full()
The STRICT flag makes _serialize() nullable which is an API break for
bindings. Forbid it and add _serialize_full() that accepts it and is
properly annotated.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5829>
2024-02-09 15:45:33 +00:00
Tim-Philipp Müller 2111d6f015 Back to development
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6066>
2024-02-06 18:29:31 +00:00
Tim-Philipp Müller 9255e397f0 Release 1.23.1 2024-02-06 16:43:27 +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 b684ce33b7 timeline: forward element messages we do not know
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5983>
2024-01-31 17:37:41 +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 e7803d1582 ges: clip: doc: Add a reference for more information about effect index
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6009>
2024-01-30 11:09:00 +00:00
Tim-Philipp Müller c84285d44d meson: bump Meson requirement to >= 1.1 for all modules
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6002>
2024-01-29 01:11:55 +00:00
Philippe Normand 20340e71f2 gesbasebin: Fix a couple leaks
Also clean-up unused queue when we failed to link a track to it.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5981>
2024-01-25 09:54:19 +00:00
Thibault Saunier ff9fec521b ges: track-element: Fix FIXME about handling NULL factories to add properties
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5981>
2024-01-25 09:54:19 +00:00
Thibault Saunier 4c8396da8e ges: launch: Enhance the way we detect explicitly added track
When using subtimeline serialized with the command line formatter
syntax, we had a false positive when detecting if the user had explicitly
specified tracks with the `+track` syntax. Verifying the presence of
`+track` explicitly in the `args` array ensure the `+track` is not for
a subtimeline.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5981>
2024-01-25 09:54:19 +00:00
Thibault Saunier 8d58d2b43b ges: Minor debug enhancements
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5981>
2024-01-25 09:54:19 +00:00
Thibault Saunier f205b357bd ges: Minor typo fix
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5981>
2024-01-25 09:54:19 +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
Philippe Normand 2de5984300 ges: effect: Report asset request errors
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5981>
2024-01-25 09:54:19 +00:00
Philippe Normand 49fec0726f ges-asset: Fix typo in warning message
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5981>
2024-01-25 09:54:18 +00:00
Philippe Normand b2c790783d ges-asset: Log asset ids in ges_asset_request
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5981>
2024-01-25 09:54:18 +00:00
Philippe Normand a5e8dedff0 ges-asset: Propagate errors from GInitable
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5981>
2024-01-25 09:54:18 +00:00
Philippe Normand 86ab695e8d ges-effect: Chain-up to parent constructed vfunc
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5981>
2024-01-25 09:54:18 +00:00
Philippe Normand fa8a2ec55e ges: uri-clip: Set error on invalid URI's in check_id
The _check_id function signature was incomplete and the last GError
argument was ignored instead of being properly used.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5981>
2024-01-25 09:54:18 +00:00
Thibault Saunier 4aaca2cc02 ges: launch: Print the timeline after we set its state to READY
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5974>
2024-01-24 23:12:56 +00:00
Thibault Saunier 0a292b8246 ges: discoverer-manager: Use a recursive mutex to protect the discoverers
So we can have subtimelines specified in `ges-launch` without
deadlocking

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5973>
2024-01-24 18:48:22 +00:00