Commit graph

235 commits

Author SHA1 Message Date
Thibault Saunier
974e908c61 ges: project: Start making MT safe where needed
Formatters might call "loaded" from the `gessrc` streaming thread
meaning that the `->formatters` field need to be protected.

Several other APIs are called from gesbasedemux, in some radom
thread, so we should ensure that this is all MT. safe, and the API
makes it simple.

Co-authored-by: Philippe Normand <philn@igalia.com>
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5431>
2023-10-04 09:29:04 +01:00
Michiel Westerbeek
0705de9f12 ges: decreased log level for missing ->init method
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5339>
2023-09-17 19:19:19 +00:00
Tim-Philipp Müller
30f955f73a ges: tools: fix msvc compiler warning about G_LOG_DOMAIN redefinition
cl: Command line warning D9025: overriding '/DG_LOG_DOMAIN="GES"'
with '/UG_LOG_DOMAIN'

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5312>
2023-09-11 20:53:19 +00:00
Tim-Philipp Müller
600b626472 ges: tools: fix duplicate ges_tools definition in meson.build
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5312>
2023-09-11 20:53:19 +00:00
Tim-Philipp Müller
4a857fbf87 ges: launcher: fix compiler warning with MSVC 2022
tools/ges-launcher.c(315): warning C4133: 'function':
incompatible types - from 'GESTrackType *' to 'guint *'

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5312>
2023-09-11 20:53:19 +00:00
Thibault Saunier
6dd0019090 ges: Fix setting keyframes from ges-launch
There is no registered GValue conversion function from string to double (on purpose) so
we need to handle that case appropriately.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5294>
2023-09-06 11:07:35 -03:00
Olivier Crête
48c43e5b7f gst-omx: Retire the whole package
The OpenMAX standard is long dead and even the Raspberry Pi OS
no longer supports it.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4976>
2023-07-16 19:10:03 +00:00
Nirbheek Chauhan
8e1b6accbd meson: Always use forward slashes in defines with paths
Fixes the following build failure on MSYS2:

```
../subprojects/gstreamer/tests/check/elements/filesrc.c: In function 'test_seeking':
../subprojects/gstreamer/tests/check/elements/filesrc.c:107:53: error: incomplete universal character name \U
  107 |   g_object_set (G_OBJECT (src), "location", TESTFILE, NULL);
      |                                                     ^
../subprojects/gstreamer/tests/check/elements/filesrc.c:107:53: warning: unknown escape sequence: '\A'
../subprojects/gstreamer/tests/check/elements/filesrc.c:107:53: warning: unknown escape sequence: '\g'
../subprojects/gstreamer/tests/check/elements/filesrc.c:107:53: warning: unknown escape sequence: '\s'
../subprojects/gstreamer/tests/check/elements/filesrc.c:107:53: warning: unknown escape sequence: '\g'
../subprojects/gstreamer/tests/check/elements/filesrc.c:107:53: warning: unknown escape sequence: '\c'
```

Due to: `-DTESTFILE=\"C:\\Users\\Administrator\[...]`

https://gitlab.freedesktop.org/nirbheek/gstreamer/-/jobs/45317733

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5018>
2023-07-12 21:17:25 +00:00
Doug Nazar
462aaa3a6a ges: validate: Use correct types when getting structure values
From https://gitlab.freedesktop.org/gstreamer/gst-editing-services/-/merge_requests/247

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4995>
2023-07-10 09:40:27 +01:00
Doug Nazar
7c8397fb11 ges: tests: Use correct variable types when setting properties
From https://gitlab.freedesktop.org/gstreamer/gst-editing-services/-/merge_requests/247

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4995>
2023-07-10 09:40:20 +01: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
Thibault Saunier
96f86da61a ges: pipeline: Avoid setting state before being constructed
It means setting state 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
Thibault Saunier
2b3757402b ges: Add support for gessrc as subtimeline element
Until now we have always had `gesdemux` as subtimeline elements,
the behavior when subtimelines are sources is different so we need
to support that.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4882>
2023-06-29 19:24:37 +00:00
Thibault Saunier
a5d5dd2ab4 ges: basebin: Handle removed tracks
Cleaning up the pads and elements linked to that track.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4882>
2023-06-29 19:24:37 +00:00
Thibault Saunier
a8b3e6122f gessrc: Remember the URI set by user
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4882>
2023-06-29 19:24:37 +00:00
Thibault Saunier
50393a809d gessrc: Remove timeline from self when disposing
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4882>
2023-06-29 19:24:37 +00:00
Alicia Boya García
e92dea5ce6 validate: Fix warning when importing GstPbutils
PyGObject triggers warnings when importing modules without an explicit
version request.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4932>
2023-06-26 12:34:56 +00:00
Alicia Boya García
64b4257509 ges-timeline-element: Fix refcount bug in "timeline" and "parent" properties
ges-timeline-element property getter handler was using
g_value_take_object() with internal pointers of the element as
arguments, instead of g_value_set_object().

g_value_take_object() moves the ownership of the reference; hence,
when reading "timeline" the reference ownership of timeline is moved
away from the ges-timeline-element and into the GValue.

Since GValues are temporaries that are often discarded quickly after,
this can easily lead to a double free. This was causing
gst-editing-services / pythontests to crash when running
TestTrackElements.test_ungroup_regroup() because of an innocent read of
`clip2.props.timeline` around the end of the test.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4924>
2023-06-23 23:00:45 +00:00
Alicia Boya García
bcf95cc087 tests: nle: Call ges_init() only inside test cases
Some NLE tests were calling ges_init() from the test suite
initialization function. This was causing them to deadlock when running
with glib 2.76.3.

ges_init() causes a GThreadPool to be initialized. Even if GES at this
point doesn't request any thread to be created, since glib 2.63.4+
(see 8aeca4fa64)
the first time a GThreadPool is initialized a "pool-spawner" thread is
created, which is later used by g_thread_pool_push().

The default behavior of the GStreamer check tests is to fork for every
test case. This is not safe if any thread has been created at this
point. In this particular case, GThreadPool preserves the state that
says a "pool-spawner" thread has been created, and will have access to
its mutex and condition variable, but their queues will have different
contents as the memory has been forked. In consequence, calls to
g_thread_pool_push() will deadlock.

The deadlock will not occur if running the tests with CK_FORK=no.

This patch modifies the affected tests to only call ges_init() from
inside the test cases, fixing the deadlock.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4915>
2023-06-22 18:04:24 +00:00
Alicia Boya García
98fbbe7a53 tests: nle: Set sync=FALSE on sinks
A significant portion of the NLE test suite was often timing out due to
the tests taking way longer than necessary because the sinks were
synchronizing to the clock, which is the default behavior for
fakevideosink and fakeaudiosink.

Notable was the case of nleoperation.c:test_pyramid_operations, that ran
through a 10 second stream twice. As the default timeout is 20 seconds,
this made the test flaky.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4914>
2023-06-22 16:34:49 +00:00
Stéphane Cerveau
e87861ca92 ges-launcher: add ignore EOS option
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4779>
2023-06-07 15:03:30 +00:00
Stéphane Cerveau
5873747a59 tools: add bad/ges/omx tools to gst_tools
In static mode, these tools must be built
after the gstreamer-full library to use
the symbol gst_init_static_plugins.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4128>
2023-05-31 15:17:11 +00:00
Stéphane Cerveau
dd17beb681 gstreamer-full: add full static support
Allow a project to use gstreamer-full as a static library
and link to create a binary without dependencies.

Introduce the option 'gst-full-target-type' to
select the build type, dynamic(default) or static.

In gstreamer-full/static build configuration gstreamer (gst.c)
needs the symbol gst_init_static_plugins which is defined
in gstreamer-full.
All the tests and examples are linking with gstreamer but the
symbol gst_init_static_plugins is only defined in the gstreamer-full
library. gstreamer-full can not be built first as it needs to know what plugins
will be built.

One option would be to build all the examples and tests after
gstreamer-full as the tools.

Disable tools build in subprojects too as it will be built at the end of
build process.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4128>
2023-05-31 15:17:11 +00:00
Thibault Saunier
5bb0e374ce ges: tests: Use assert_equals_int where it makes sense
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4732>
2023-05-30 22:37:32 +00:00
Thibault Saunier
3bb03179c9 ges: launcher: Never put sinks in a GstPipeline
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4732>
2023-05-30 22:37:32 +00:00
Sebastian Dröge
4e8af5c41d ges: discoverer-manager: Don't mark signals as action signals
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4579>
2023-05-09 18:19:11 +00:00
Sebastian Dröge
b34cbe9bf1 ges: discoverer-manager: Mark discovered signal error parameter as nullable
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4579>
2023-05-09 18:19:11 +00:00
Thibault Saunier
e8e5508d1d ges: Add test for the newly added DiscovererManager object
Making pep8 happy on the way

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3911>
2023-04-29 06:54:10 -04:00
Thibault Saunier
98e5c5e862 ges: Implement a new GESDiscovererManager object
Allowing better control over the way discovery happens and allowing
us to expose a proper API.

This also adds the potential of implementing more multi-threaded
discovery in a clean way in the future.

This allows us to cleanly expose the new
GstDiscoverer::load-serialize-info signal.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3911>
2023-04-29 06:54:10 -04:00
Thibault Saunier
7aaf2b48ef doc: Avoid shelling out to hotdoc to generate plugins config files
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4479>
2023-04-25 02:57:55 +00:00
Thibault Saunier
b14e675a27 gir: Checkout all .gir files and check that they are updated on the CI
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3010>
2023-04-22 09:32:32 -04:00
Sebastian Dröge
63a4d8bb54 ges: base-xml-formatter: Don't pass non-GObject pointers to GST_DEBUG_OBJECT
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4443>
2023-04-18 10:03:46 +00:00
Tim-Philipp Müller
f9eb4c5862 ges: re-indent with GNU indent 2.2.12
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4182>
2023-03-17 03:18:54 +00:00
Thibault Saunier
90d3106192 meson: Cleanup and avoid installing python bindings if python is not found
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3929>
2023-02-16 19:43:12 +00:00
Thibault Saunier
da11e6610e meson: Use python module to install override files
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3929>
2023-02-16 19:43:11 +00:00
Mathieu Duponchelle
47c183cdfd ges-launcher: slight clean up of _set_rendering_details
Single exit point, ges_printerr, never g_error

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3977>
2023-02-16 18:48:23 +00:00
Mathieu Duponchelle
4c2bd05fdd ges-launcher: allow overriding container profile
When constructing an output profile using --profile-from, it is useful
to be able to override the top level container profile.

Expose a --container-profile option that applies as an override after
other methods for constructing an output profile have run. If no other
method was used, this will result in an empty top level container.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3977>
2023-02-16 18:48:23 +00:00
Thibault Saunier
47a07a4f5a uri-asset: Don't create AudioSource asset for unknown track types
And just skip them as we can't do anything else with them right now

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3976>
2023-02-16 01:47:28 +00:00
Luke McGartland
396c758544 Update subprojects/gst-editing-services/ges/ges-uri-asset.c
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3976>
2023-02-16 01:47:28 +00:00
Mathieu Duponchelle
e728c0e71a ges-source: make sure internal decodebin doesn't get seeked too early
When uridecodebin exposes pads for its streams, we immediately ghost
the relevant (selected) one and let composition send a seek as soon as a
buffer is probed.

This means that sometimes uridecodebin is still linking elements
internally (for non-selected streams) and sees flush events travel down
the elements it is still busy trying to link / forward sticky events to.

This causes all sorts of nasty issues, which can be avoided by simply
blocking all data flow from the source until no-more-pads has been
emitted by uridecodebin (or whatever sub_element is wrapped).

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3971>
2023-02-15 22:24:51 +00:00
Mathieu Duponchelle
2fd2af9420 ges-source: do not emit no-more-pads on child element
This most likely never caused any issues as we don't connect to
no-more-pads in the first place, and the element isn't directly exposed
to the user, but emitting it makes no sense, and we are actually going
to connect to no-more-pads in a subsequent commit.

The call was added in 86b893e54c, a patch
by me in 2013, I have no idea why but I probably didn't have a firm
grasp on what I was doing then.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3971>
2023-02-15 22:24:51 +00:00
Tim-Philipp Müller
18a3c32323 ges: drop use of GSlice allocator
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3784>
2023-02-03 17:48:09 +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
James Hilliard
fc5159c2d8 Fix gstreamer-validate-1.0 dependency name
The gst-devtools project generates gstreamer-validate-1.0.pc, this
must match the dependency in gst-editing-services for detection
to work properly.

Fixes:
Run-time dependency gst-validate-1.0 found: NO (tried pkgconfig and cmake)

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3859>
2023-02-01 14:15:45 +00:00
Tim-Philipp Müller
41c69372b5 Back to development
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3775>
2023-01-23 23:04:53 +00:00
Tim-Philipp Müller
f13c65d977 Release 1.22.0 2023-01-23 19:41:07 +00:00
Thibault Saunier
18f313d317 ges: smart-mixer: Avoid video freeze on NLE stack changes
Since we support "nested compositors"[0] we were not finalizing the pads_infos
and thus not releasing the mixer pad on stack change, meaning that
the following stacks were never prerolling.

[0] https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2094

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3738>
2023-01-17 20:10:19 +00:00
Thibault Saunier
3065608730 ges: Fix issues avoiding to use operator when unavailable on mixer
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3738>
2023-01-17 20:10:19 +00:00
Tim-Philipp Müller
a9ec35b1ca Release 1.21.90 2023-01-13 19:08:48 +00:00
Sebastian Dröge
c28bc4492e tools: Use gst_macos_main() on macOS
Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1673

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3709>
2023-01-11 13:36:55 +00:00
Mathieu Duponchelle
2f020013e6 docs: explicitly declare gir build dependencies
As the path to the gir file is passed to hotdoc.generate_doc() and
not the build target itself, meson doesn't know about the dependency.

In turn, as the CI doesn't build everything before building the
documentation target, some gir files might not exist, for instance
in the case of gst-rtsp-server, causing the output documentation to
be empty.

The error occurred silently because hotdoc accepts wildcards for
*-sources arguments, thus it won't warn about a missing gir file as
it is legitimate for glob matching to resolve to nothing.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3686>
2023-01-06 22:50:57 +00:00
Sebastian Dröge
bd534af999 ges: gst_bin_add() is transfer floating so wrappers around it are too
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3678>
2023-01-04 10:22:45 +00:00
Xavier Claessens
cd78cbac86 Fix API visibility macros
This copies the logic from GLib discussed there:
https://gitlab.gnome.org/GNOME/glib/-/merge_requests/2936

Beside being simpler, it also fix all public symbols being annotated
with dllexport when doing a static build, as discovered there:
https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3540#note_1678335

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3567>
2022-12-20 14:03:35 +00:00
Tim-Philipp Müller
1f65d7cc5c Back to development 2022-12-05 02:29:08 +00:00
Tim-Philipp Müller
fd6a3948c6 Release 1.21.3 2022-12-05 01:28:21 +00:00
Tim-Philipp Müller
84e74ceb10 Remove ChangeLog files from git repository
This information is tracked fully in the git repository, so
no point having the ChangeLog duplicate it, and it interferes
with grepping the repository.

We are going to create the ChangeLogs on the fly when generating
tarballs going forward (with a limited history), since it's still
valuable for tarball consumers to be able to easily see a list of
recent changes.

Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer-project/-/issues/73

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3521>
2022-12-04 18:16:25 +00:00
Tim-Philipp Müller
9eb081ea0a meson: Generate ChangeLog files for release tarballs on dist
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3521>
2022-12-04 18:16:25 +00:00
Thibault Saunier
712bda84db ges: Add API to disable timeline coherence checks
There are cases where user might want to be in full control of the
timeline and not be limited by the checks that are being done by GES
to go from one timeline layout to another, this should be doable as
it is a valid use case.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3501>
2022-12-02 18:37:29 +00:00
Edward Hervey
5a08b22026 ges-launcher: Don't leak string
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3428>
2022-11-18 07:22:23 +00:00
Edward Hervey
615fbb3f10 ges-demux: Don't leak string
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3428>
2022-11-18 07:22:23 +00:00
Edward Hervey
4aaaf29761 ges-xml-formatter: Plug some leaks
* Don't leak the mainloop
* Don't leak temporary strings
* Don't leak id when searching in hash table

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3428>
2022-11-18 07:22:23 +00:00
Edward Hervey
ba5beb55ab ges-project: Don't leak string
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3428>
2022-11-18 07:22:23 +00:00
Edward Hervey
40d9858371 ges-structure-parser: Don't leak failed strings
We pass the ownership of current_string to the list of wrong strings, it will be
cleared then.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3428>
2022-11-18 07:22:23 +00:00
Edward Hervey
137d38c991 ges-launch: Don't leak help string
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3428>
2022-11-18 07:22:23 +00:00
Tim-Philipp Müller
db450689db Back to development
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3358>
2022-11-08 02:08:08 +00:00
Tim-Philipp Müller
3e29ac35c4 Release 1.21.2 2022-11-07 23:54:03 +00:00
Tim-Philipp Müller
98d2f958a9 Update ChangeLogs for 1.21.2 2022-11-07 23:53:57 +00:00
Patrick Griffis
2265709574 build: Fix building ges with tools disabled
If you configure with `tools=disabled` then ges_launch is undefined.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3259>
2022-10-25 08:53:19 +00:00
Sebastian Dröge
366893e9ac Fix various warnings from gobject-introspection
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3261>
2022-10-25 09:45:25 +03:00
Fabian Orccon
db5b4e6a06 ges: transition: Notify vtype change on ges_extractable_set_asset call
Fixes #1454

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3215>
2022-10-24 14:14:30 +00:00
Sebastian Dröge
f705da7131 ges: Add/fix various annotations
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3194>
2022-10-18 13:51:16 +03:00
Tim-Philipp Müller
99bbb1ef35 Back to development
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3115>
2022-10-04 03:57:31 +01:00
Tim-Philipp Müller
9820e58be6 Release 1.21.1 2022-10-04 01:18:20 +01:00
Tim-Philipp Müller
c376d80e9b Update ChangeLogs for 1.21.1 2022-10-04 01:13:59 +01:00
Nirbheek Chauhan
a0e6278dba meson: Use implicit builtin dirs in pkgconfig generation
Starting with Meson 0.62, meson automatically populates the variables
list in the pkgconfig file if you reference builtin directories in the
pkgconfig file (whether via a custom pkgconfig variable or elsewhere).
We need this, because ${prefix}/libexec is a hard-coded value which is
incorrect on, for example, Debian.

Bump requirement to 0.62, and remove version compares that retained
support for older Meson versions.

Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1245

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3061>
2022-09-21 21:08:11 +05:30
Thibault Saunier
7167721cac ges-video-source: Remove limit on frame duplication on EOS in videorate
Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1352

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3000>
2022-09-20 13:23:02 +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
65b2172fe8 ges: Enhance element names in video uri sources
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3000>
2022-09-20 13:23:02 +00:00
Thibault Saunier
ebcaf35839 doc: Do not build plugins to build the doc
It is not actually necessary

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2954>
2022-09-15 20:11:46 +00:00
Zebediah Figura
c4681ac428 meson: Build with -Wl,-z,nodelete to prevent unloading of dynamic libraries and plugins
GLib made the unfortunate decision to prevent libgobject from ever being
unloaded, which means that now any library which registers a static type
can't ever be unloaded either (and any library that depends on those,
ad nauseam).

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/778>
2022-09-13 15:48:52 +00:00
Christoph Reiter
472dc4b743 meson: use python.get_install_dir() to find the pygobject overrides dir
Instead of trying to hardcode site-packages paths for different platforms
just use python.get_install_dir() from meson and let it deal with the rest.
Also no longer try to import pygobject, which would otherwise not be
required at build time.

python.get_install_dir() was at the beginning broken on Windows, but
that was fixed in 0.60 via https://github.com/mesonbuild/meson/pull/9156
and since ges now requires >0.60 this can be ignored.

This change was motivated by the install path being wrong under MSYS2, where
the unix install layout is used and the detection code not taking that into
account.

This MR is a continuation of https://gitlab.freedesktop.org/gstreamer/gst-editing-services/-/merge_requests/230
see the discussion there for extra context.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3012>
2022-09-12 00:45:40 +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
Thibault Saunier
bc9c1e3956 meson: Namespace the plugins_doc_dep/libraries variables
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2970>
2022-09-01 21:17:35 +00:00
Thibault Saunier
b5e90fe579 meson: Rename plugins list and make them "dependency" objects
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2970>
2022-09-01 21:17:35 +00:00
Seungha Yang
f5c5f881e4 ges: Update outdated comment
d3d11compositor is a videoaggregator subclass and no more wrapper bin
since the MR
https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2631

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2825>
2022-08-02 21:45:21 +00:00
Mathieu Duponchelle
52f7150de4 ges: preserve discovery order
The previous code was storing container children in reverse
addition order, this was mitigated by the fact that track elements
were also stored in reverse order, thus restoring the original
order, but it seems more consistent to preserve order throughout,
the extra cost of append operations is negligible.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1549>
2022-08-02 15:48:12 +00:00
Tim-Philipp Müller
9272943bc7 coding style: allow declarations after statement
See https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1243/
and https://gitlab.freedesktop.org/gstreamer/gstreamer-project/-/issues/78

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2683>
2022-06-29 13:40:25 +00:00
Mathieu Duponchelle
4b50e674c3 ges/gstframepositioner: don't create one compositor per frame meta
Instead, cache the looked up operator property

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2623>
2022-06-17 23:17:31 +00:00
Tim-Philipp Müller
9d9e59622f Bump GLib requirement to >= 2.62
Can't require 2.64 yet because of
https://gitlab.freedesktop.org/gstreamer/cerbero/-/issues/323

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2568>
2022-06-10 06:01:41 +00:00
Matthew Waters
2b94359765 ges/videourisource: handle non-1/1 PAR source videos
The automatic scaling done by framepositioner does not account for the
par of the video source.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2423>
2022-05-17 20:49:30 +00:00
George Kiagiadakis
5294a720f8 ges-video-transition: add a new "fade-in" transition type
This transition is meant to be very similar to crossfade, but
instead of fading out the background video at the same time as the
foreground fades in, the background video stays at 100% opacity
during the whole transition.

This essentially "restores" the old crossfade behaviour that was changed in:
eb48faf342
but using a new type enum, so that both behaviours are available,
letting applications choose.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2385>
2022-05-13 17:17:06 +03:00
Xavier Claessens
a40634eebe Use gmodule-no-export-2.0
We don't need `-Wl,--export-dynamic`, that's used only for executables
that needs to export an API to be used by plugins they load.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2031>
2022-04-01 16:32:17 +00:00
Xavier Claessens
b004464ac6 Remove glib and gobject dependencies everywhere
They are part of gst_dep already and we have to make sure to always have
gst_dep. The order in dependencies matters, because it is also the order
in which Meson will set -I args. We want gstreamer's config.h to take
precedence over glib's private config.h when it's a subproject.

While at it, remove useless fallback args for gmodule/gio dependencies,
only gstreamer core needs it.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2031>
2022-04-01 16:32:17 +00:00
Xabier Rodriguez Calvar
d522b17d9c ges-smart-video-mixer: use the proper pad to get the positioner meta
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2094>
2022-04-01 13:07:46 +02:00
Thibault Saunier
2952a73f40 tools: Add support for building gstreamer tools against gst-full
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1581>
2022-03-30 17:43:17 +00:00
Stéphane Cerveau
39e45e5b1c ges: remove memory leak with description
free the capsdesc

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2047>
2022-03-29 16:50:13 +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
1440ca2157 Fix license as GES is released under the LGPL2+ license
This was a mistake that some of the licensing notice in a few files was
referring to GPL3+ and it needs fixing

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1956>
2022-03-24 01:18:24 +00:00
Nirbheek Chauhan
1cb127f16b meson: Bump all meson requirements to 0.60
Lots of new warnings ever since
https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1934

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1977>
2022-03-18 22:49:16 +00:00
Xavier Claessens
3d8372cc50 devenv: Add some missing GStreamer specific env variables
This should make "meson devenv" closer to what "gst-env.py" sets.

- GST_VALIDATE_SCENARIOS_PATH
- GST_VALIDATE_APPS_DIR
- GST_OMX_CONFIG_DIR
- GST_ENCODING_TARGET_PATH
- GST_PRESET_PATH
- GST_PLUGIN_SCANNER
- GST_PTP_HELPER
- _GI_OVERRIDES_PATH

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1768>
2022-02-25 20:35:26 +00:00
Seungha Yang
e86b5b28f7 scenarios: Update for videoaggregator rounding behavior change
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1747>
2022-02-19 06:53:02 +00:00
Stéphane Cerveau
5fe2c327e9 ges: add missing plugin summary
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1682>
2022-02-10 16:26:28 +00:00
Tim-Philipp Müller
701ed92d27 Back to development
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1635>
2022-02-04 22:59:41 +00:00
Tim-Philipp Müller
f0b045a69b Release 1.20.0 2022-02-03 20:03:15 +00:00
Tim-Philipp Müller
463bafdd23 Update ChangeLogs for 1.20.0 2022-02-03 19:53:18 +00:00
Tim-Philipp Müller
31b5243e1d Release 1.19.90 2022-01-28 14:28:42 +00:00
Tim-Philipp Müller
12fe353a31 Update ChangeLogs for 1.19.90 2022-01-28 14:28:28 +00:00
Sebastian Dröge
34964b6a98 ges: Include ges-image-source.h in the installed headers
It's referenced by `ges.h` and was previously available, so removing it
is an API change.

Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/963

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1563>
2022-01-24 19:54:57 +00:00
Nirbheek Chauhan
1be6d6ccf5 meson: Add explicit check: kwarg to all run_command() calls
This is required since Meson 0.61.0, and causes a warning to be
emitted otherwise:

2c079d855e
https://github.com/mesonbuild/meson/issues/9300

This exposed a bunch of places where we had broken run_command()
calls, unnecessary run_command() calls, and places where check: true
should be used.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1507>
2022-01-09 18:12:47 +05:30
Tim-Philipp Müller
972615cf22 docs: fix unnecessary ampersand, < and > escaping in code blocks
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1340>
2021-11-12 11:39:19 +00:00
Thibault Saunier
a2460a8adc meson:ges: Fix typo adding ges gir to libs list
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1322>
2021-11-08 11:10:11 -03:00
Thibault Saunier
9413fb7ea2 tests:ges: Take TIMEOUT_FACTOR into account
This env var is set in the CI so we grow the timeout as required
(when running in valgrind for example).

See https://gitlab.freedesktop.org/gstreamer/gstreamer/-/jobs/15449209

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1315>
2021-11-05 17:00:25 +00:00
Tim-Philipp Müller
a7b376011b Back to development 2021-11-03 19:31:23 +00:00
Tim-Philipp Müller
f513c289b0 Release 1.19.3 2021-11-03 15:43:43 +00:00
Tim-Philipp Müller
d51b091cd9 Update ChangeLogs for 1.19.3 2021-11-03 15:43:32 +00:00
Tim-Philipp Müller
f034ec3e14 meson: require matching GStreamer dep versions for unstable development releases
Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/issues/929

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1244>
2021-10-28 23:29:27 +00:00
Tim-Philipp Müller
8dfab0b08c meson: update for meson.build_root() and .build_source() deprecation
-> use meson.project_build_root() or .global_build_root() instead.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1183>
2021-10-20 11:20:44 +00:00
Tim-Philipp Müller
f1bb2c76c6 meson: update for dep.get_pkgconfig_variable() deprecation
... in favour of dep.get_variable('foo', ..) which in some
cases allows for further cleanups in future since we can
extract variables from pkg-config dependencies as well as
internal dependencies using this mechanism.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1183>
2021-10-20 11:20:44 +00:00
Tim-Philipp Müller
817cb23b9c tools: Define G_LOG_DOMAIN for various tools as well
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1009>
2021-10-19 00:12:25 +00:00
Tim-Philipp Müller
0a25f22f1b meson: bump meson requirement to >= 0.59
For monorepo build and ugly/bad, for advanced feature
option API like get_option('xyz').required(..) which
we use in combination with the 'gpl' option.

For rest of modules for consistency (people will likely
use newer features based on the top-level requirement).

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1084>
2021-10-18 18:03:19 +01:00
Thibault Saunier
ba37e0aa2f ges:docs: Ignore GESImageSource as it is plain useless now
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1093>
2021-10-15 19:28:29 -03:00
Thibault Saunier
8b7b068d53 meson: Streamline the way we detect when to build documentation
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1093>
2021-10-15 19:28:29 -03:00
Thibault Saunier
a7fd2762a6 ges:build: Disable python modules when statically building
Introspection fails otherwise

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1093>
2021-10-15 19:27:30 -03:00
Thibault Saunier
6e79932ad9 meson: List libraries and their corresponding gir definition
Introduces a `libraries` variable that contains all libraries in a
list with the following format:

``` meson
libraries = [
    [pkg_name, {
        'lib': library_object
        'gir': [ {full gir definition in a dict } ]
    ],
    ....
]
```

It therefore refactors the way we build the gir so that we can reuse the
same information to build them against 'gstreamer-full' in gst-build
when linking statically

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1093>
2021-10-15 19:27:30 -03:00
Thibault Saunier
19c0921179 ges:tests: Create shorter assets to avoid timeouts
And use a simple GStreamer pipeline as testsrcbin with GstTranscoder
doesn't let us easily set the framerate of the source and we end up
having videorate dropping frames leading to the rendered file having
an unprecise duration.

This should fix races with `check.gst-editing-services.pythontests.pyunittest.python.test_assets.TestTimeline.test_reload_asset`

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1130>
2021-10-13 18:01:38 +00:00
Nirbheek Chauhan
d9449b1d81 meson: Remove duplicate definition of 'examples' option
This is a hard error starting with Meson 0.60.0rc1, due to
https://github.com/mesonbuild/meson/pull/9184#issuecomment-941603358

The upstream change might get reverted before release, but we should
of course fix this regardless.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1127>
2021-10-12 22:54:56 +00:00
Thibault Saunier
a2964eb1ad ges:uri-asset: Ignore streams with no ID
Since 0d95d9258b we respect the asset stream-id in `GESUriSource` so
we can not work with unknown or broken stream ID in the assets.

We just ignore them, warning about it and we should fix that in
demuxer so they don't expose pad without providing a stream id for them.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1001>
2021-10-02 10:44:26 +00:00
Xavier Claessens
7abb8802fe Delete .arcconfig files
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/951>
2021-09-29 17:52:59 +00:00
Brad Hards
ef05946837 doc: update IRC links to OFTC
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/945>
2021-09-28 10:11:15 +10:00
Sebastian Dröge
dc30676002 commandline-formatter: Fix version documentation for ges_command_line_formatter_get_help()
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/929>
2021-09-27 09:24:16 +03:00
Sebastian Dröge
3db957c10d ges: Add a few missing annotations
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/921>
2021-09-26 06:59:04 +00:00
Tim-Philipp Müller
f1a169f39d Back to development
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/925>
2021-09-26 01:07:02 +01:00
Nicolas Dufresne
3037fde5eb Move commit gst-indent hook to the root
This renable at meson setup time the installation of the gst-indent
commit hook. The hooks were kept from gst-devtools as this set supports
both C checks and Python checks.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/904>
2021-09-24 17:47:01 -03:00
Thibault Saunier
c6b9c81fdd ci: Remove now useless .gitlab-ci.yml files
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/891>
2021-09-24 16:21:18 -03: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