19 Commits

Author SHA1 Message Date
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
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
Thibault Saunier
f12a15a374 python: Fix trying to call len() on an int
n_tags already represents the len of the TagList

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6012>
2024-01-30 00:47:47 +00:00
Jan Schmidt
df7e8db84c python: Add a GstTagList override
Add an override that makes a GstTagList act like a dict

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5187>
2023-08-21 17:16:27 +00:00
Nicolas Dufresne
60afc6cc95 python: Fix variable name for gst_element_factory_make
In order to use keyword argument, the names shoudl match the documentation. Both
arguments name was changed in the override.

Fixes: #2779
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4982>
2023-07-11 14:39:30 +00:00
Nirbheek Chauhan
b87aaf4d28 python: More functions can be called before gst_init()
Configuration of our debugging system is possible before init, and in
fact is necessary too, otherwise the settings won't apply to logging
that happens during init.

For instance, since you cannot register a log function before you call
init in python, there is no way for you to log errors during init to
whatever logging service your app uses.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4753>
2023-06-02 13:25:23 +00:00
Nirbheek Chauhan
62951ed379 python: auto-pep8 whitespace issues in overrides
Needed because the next commit edits this file.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4753>
2023-06-02 13:25:23 +00:00
Mathieu Duponchelle
2b4dca84dd gst-python: overrides: provide default to Gst.init()
Allows using Gst.init() as without the overrides, can be convenient.

Fixes: https://gitlab.freedesktop.org/gstreamer/gst-python/-/issues/51
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4692>
2023-05-25 16:32:44 +00:00
Thibault Saunier
fab64c0b3a python: Add a Gst.init_python function to be called from plugins
Plugins know that they will be initialized after Gst was initialized
so they can call the initialization function dedicated for the python
bindings

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2675>
2022-07-08 14:37:14 +00:00
Thibault Saunier
37366ff2f4 python: Do not call gst_init when it is already is_initialized
GStreamer plugins written in python need to call `Gst.init` to ensure
that GStreamer is initialized so when loading a python plugin, we might
be recursively calling `gst_init` which is not a good idea.

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

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2675>
2022-07-08 14:37:14 +00:00
Thibault Saunier
904bb001c5 python: Add support for the GstURIHandlerInterface
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1423>
2022-03-28 11:25:24 +00:00
Thibault Saunier
3729704132 gst: Fix license headers and add SPDX
Fixes https://gitlab.freedesktop.org/gstreamer/gst-python/-/issues/57

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1351>
2021-11-15 22:12:09 -03:00
Thibault Saunier
24c6e49874 Move files from gst-python into the "subprojects/gst-python//" subdir 2021-09-24 16:16:05 -03:00