147 Commits

Author SHA1 Message Date
Sebastian Dröge
b051285e03 python: Handle buffer PTS/DTS/duration/offset/offset-end as unsigned long long
Previously these fields were truncated to 32 bits on 32 bit platforms and
64 bit Windows because of using `unsigned long`.

Thanks to Tim Williams for reporting and debugging this issue.

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

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9567>
2025-08-18 15:43:50 +00:00
Thibault Saunier
3fe0127a64 scripts: git-hooks: ci: Add GES children properties documentation check
Add a pre-commit hook that automatically checks if GES children properties
documentation is up to date when GES source files are modified. The hook
runs the document-children-props.py script and warns if the generated
documentation files have changes that need to be committed.

This ensures that children properties documentation stays synchronized
with code changes and prevents outdated documentation from being merged.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5987>
2025-08-05 12:48:38 +00:00
Tim-Philipp Müller
24ee088cee Back to development after 1.27.1 2025-07-08 20:00:07 +01:00
Tim-Philipp Müller
1fa56616fb Release 1.27.1 2025-07-08 19:58:12 +01:00
Víctor Manuel Jáquez Leal
82a71a7739 gstreamer-vaapi: remove subproject
It's almost superseded by va plugin in gst-plugins-bad.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9200>
2025-06-10 17:32:46 +00:00
Edward Hervey
435b0799fc gst-python/tests: don't depend on webrtc and rtsp-server
They might not be built, nor are they needed for the tests

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8292>
2025-06-10 13:47:25 +00:00
Xavier Claessens
06851d2e4c python: Fix pulling events from appsink
appsink.pull_object() is introspectable, but it needs a way to convert
the GstMiniObject to its GstEvent/GstSample subclass.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9148>
2025-06-04 20:49:53 +00:00
Xavier Claessens
a1187bfcbf python: Inherit MiniObject first
This ensures methods it overrides takes precedence over
gi's Gst.MiniObject. Python's MRO resolves in leftmost class first.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9148>
2025-06-04 20:49:53 +00:00
Xavier Claessens
bbf60305ed python: Fix API break by not forcing usage of context manager
caps.get_structure(0).get_name() used to work, but the usage of
StructureWrapper broke it but forcing to wrap it in a "with" statement.

We already have a Structure subclass, simply make it reference its
parent Gst.Caps object.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9148>
2025-06-04 20:49:52 +00:00
Xavier Claessens
f7c52a22a0 python: Fix unit tests running against system libgstreamer
Unit tests for which `i.get(2, [])` is empty were not adding
testsenv_ld_library_path to LD_LIBRARY_PATH.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9148>
2025-06-04 20:49:52 +00:00
Thibault Saunier
e2f54cc405 python: Convert buffer metadata API to use @property decorators
Convert buffer metadata getter/setter methods to Python properties for
more intuitive access. This makes the API more Pythonic by allowing
direct property assignment (buf.pts = 42) instead of method calls
(buf.set_pts(42)).

Updated properties: flags, pts, dts, duration, offset, offset_end

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9134>
2025-05-29 16:18:11 +00:00
Thibault Saunier
515bf888a9 python: Make use of the new structure.is_writable method
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9027>
2025-05-25 15:16:37 +02:00
Thibault Saunier
f0e1591111 python: Add overrides for Buffer/Query/Event/Context to handle writability
And make them look more like proper MiniObject

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9027>
2025-05-25 15:16:37 +02:00
Thibault Saunier
0201423142 python: Factor out a MiniObject class that all mini object will be based on
Making the API closer to what it should be as Caps are MiniObject

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9027>
2025-05-25 15:16:37 +02:00
Thibault Saunier
da9365176b python: Add a Caps.get_value variant that does not copy the structures
Keeping the __getitem__ implementation the same way

This also now make structure.set_value() raise an exception if the structure
was not writable

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9027>
2025-05-25 15:16:37 +02:00
Thibault Saunier
c3d2209c1f python: Add overrides to be able to write into the GstStructure inside GstCaps
Add Python bindings for allowing to modify GstCaps structures with proper
writability checks.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9027>
2025-05-25 15:16:37 +02:00
Xavier Claessens
0172e47a79 python: Add Gst.Float wrapper
When the float python type is used inside a GstValueArray, it is
converted to a G_TYPE_DOUBLE GValue. Sometimes it is important to be
able to force G_TYPE_FLOAT GValue, for instance to set the the
"mix-matrix" property on audioconvert.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8957>
2025-05-10 23:23:14 +00:00
Xavier Claessens
d5995b9302 python: Fix usage of our overrides from devenv
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8952>
2025-05-10 21:38:06 +00:00
Xavier Claessens
6833932e92 python: Optimize ValueArray.get_size()
There is no need to call into C layer as we have the python list
already.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8952>
2025-05-10 21:38:06 +00:00
Xavier Claessens
c2a4c3a53a python: override Gst.ValueArray.append_value()
This ensures that self.array is kept up to date.

Add append() method that is more natural than the static method.

Allow creating empty ValueArray by omitting the constructor parameter.

Fixes: #3114
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8952>
2025-05-10 21:38:05 +00:00
Xavier Claessens
20904a1b92 python: Fix coding style errors in unit tests
Otherwise pre-commit does not pass.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8952>
2025-05-10 21:38:05 +00:00
Tim-Philipp Müller
128710caab meson: rename meson_options.txt to meson.options
Which is supported since Meson 1.1:
https://mesonbuild.com/Release-notes-for-1-1-0.html#support-for-reading-options-from-mesonoptions

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8651>
2025-05-03 10:38:25 +01:00
Nirbheek Chauhan
b416aa9b8f gst-python: Fix warning about not specifying gst_plugins in the
../meson.build:231: WARNING: DEPRECATED use of the `plugins` variable in gst-python.
../meson.build:232: WARNING: The variable should now be called `gst_plugins` and use:
../meson.build:233: WARNING: `declare_dependency( link_with: <plugin_target>,
                             variable: {'full_path': <plugin_target>.full_path()})` instead

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8753>
2025-04-30 10:18:57 +00:00
Nirbheek Chauhan
c4d2f6e87a gst-python: Use allow_fallback instead of fallback
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8753>
2025-04-30 10:18:56 +00:00
Santosh Mahto
7c7832fee1 python analytics: Add api iter_on_type to iterate over specific Mtd types
This adds new Python api `iter_on_type()` to GstAnalyticsRelationMeta
to iterate over mtd type specified by argument.
usage:
```
for i in rmeta.iter_on_type(GstAnalytics.ODMtd):
```

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8459>
2025-04-22 18:54:08 -04:00
Santosh Mahto
e68eb7bb23 analytics: Add python api to get relation path
A new api `Mtd.relation_path()` is added to get relation chain
between two Mtd in RelationMeta.

Usage:
```
for i in mtd1.relation_path(mtd2, max_span=4, relation_type=...):
  pass
```

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8556>
2025-04-22 20:41:19 +00:00
Santosh Mahto
4c4e80d286 gstanalytics: Add api iter_direct_related python to GstAnalyticsMeta
The API `iter_direct_related` allows to iterate over directly related
Mtd objects.
Usage:
```
for i in mtd.iter_direct_related(GstAnalytics.RELATE_TO,
                      GstAnalytics.ODMtd)
```

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8461>
2025-04-14 19:11:29 +00:00
Matteo Bruni
69bba61e54 gst-python: fix compatibility with PyGObject>=3.52.0
PyGObject 3.52.0 moved OverridesProxyModule _introspection_module to __slots__,
causing Segmentation Faults when accessing the field.
Since _introspection_module is used to get Gst.Element but is never actually
used afterward, we fix the issue by removing this part.

Fixes #4314

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8653>
2025-03-25 19:43:52 +00:00
Tim-Philipp Müller
1a971d8e12 Back to development in main branch after 1.26.0
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8621>
2025-03-12 14:21:08 +01:00
Tim-Philipp Müller
d31ce8e5e1 Release 1.26.0 2025-03-11 20:20:16 +00:00
Tim-Philipp Müller
644a005ecb Back to development after 1.25.90 2025-02-23 23:52:57 +00:00
Tim-Philipp Müller
94a3e912ab Release 1.25.90 2025-02-23 23:44:10 +00:00
Tim-Philipp Müller
bf5f642841 Back to development after 1.25.50 2025-02-09 17:47:32 +00:00
Tim-Philipp Müller
3e8f88d756 Release 1.25.50 2025-02-09 17:35:17 +00:00
L. E. Segovia
41b779e57c meson: Add python-exe option to override target Python installation
Fixes #4185

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8337>
2025-01-28 17:31:12 +00:00
Olivier Crête
86bac82c8e python: Add __eq__ to Mtd classes
Also programatically iterate all of the base classes to register them.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8237>
2025-01-20 21:16:32 +00:00
Daniel Morin
ad4fa052e5 gst-python: Test for GstAnalyticsRelationMeta iterator
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8237>
2025-01-20 21:16:32 +00:00
Daniel Morin
e294b1b773 analytics: Adding iterator for AnalyticsRelationMeta
Allow to create an iterator for Mtd's inside an AnalyticsRelationMeta

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8237>
2025-01-20 21:16:32 +00:00
Mathieu Duponchelle
17e53f8c95 meson: bump minimum version to 1.4 in every subprojects
36c01d05797ad9c7778939c54870f979bdcbba1f bumped to 1.4 for gst-devtools
and the root project, but we usually keep those in sync everywhere.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8312>
2025-01-17 20:22:34 +01:00
Tim-Philipp Müller
a059536b58 Back to development after 1.25.1 2025-01-14 15:00:43 +00:00
Tim-Philipp Müller
ca9d85c3b7 Release 1.25.1 2025-01-14 14:57:58 +00:00
Olivier Crête
33259e7ea4 analytics: Tensor dimensions are always row-major or col-major
Simplify by removing the extra fields, as this is what all
frameworks give us.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8250>
2025-01-08 21:47:52 +00:00
Daniel Morin
e272e229e8 python tests: Adapt analytics unit test
- Adapt test to batch size moved into dims field

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8191>
2025-01-03 23:14:39 +00:00
Thibault Saunier
2c9a642b66 meson: Give the same name for api_version in all modules
There were 2 version of it, apiversion and api_version, I chose the one
with most occurencies: `api_version`

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8178>
2024-12-20 20:19:28 +00:00
Oskar Fiedot
a3a7acdd0a analytics: add rotation to object detection mtd
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7938>
2024-12-11 11:54:15 +01:00
Thibault Saunier
7010efc8ed meson: Bump minimum version to 1.3
Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/4025

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7899>
2024-11-16 03:02:27 +00:00
Olivier Crête
65549da07e tensormeta: Add Python unit tests for the tensor meta APIs
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6000>
2024-11-08 14:58:49 +00:00
Thibault Saunier
a1081d08c1 meson: Remove c_std=gnu99 in validate and python
This is not needed and causes warning with latest meson

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7766>
2024-10-29 13:58:09 +00:00
Olivier Crête
b87d5e080d python tests: Add test for analytics segmentation
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6026>
2024-10-17 18:13:03 +00:00
Olivier Crête
cf6660e3d7 python tests: Add analytics lib runtime path
This way, it will run it against the just compiled version when doing full build.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6026>
2024-10-17 18:13:03 +00:00