Edward Hervey
7c68ef354b
gst-python: Fix override loading in python >= 3.12
...
The `imp` module got removed in python 3.12 and the `importlib` module should be
used instead.
This is also a good excuse to switch to the new finder module from PEP 451 :
https://www.python.org/dev/peps/pep-0451/
This only requires implement the `find_spec()` method in our custom loaders
Co-authored-by: Stefan <107316-stefan6419846@users.noreply.gitlab.freedesktop.org>
Co-authored-by: Jordan Petrids <jordan@centricular.com>
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5633 >
2024-02-02 13:30:38 +01: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
Gwyn Ciesla
2be13c82aa
gst-python: Fix API call for Python 3.13
...
_PyUnicode_AsString() is deprecated and PyUnicode_AsUTF8() should be used
instead. The new function was introduced in Python 3.3 and returns const
since Python 3.7, which is now required.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5587 >
2023-11-03 21:02:48 +05:30
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
Jan Schmidt
627a956768
python: Fix python plugins that implement URIHandler
...
Ensure the generated URI strv list is NULL terminated in the python
binding
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5187 >
2023-08-21 17:16:26 +00:00
Andoni Morales Alastruey
3683cd9052
gst-python: fix build and usage in Windows
...
Windows require the python module to be linked to GStreamer.
With msvc and /FORCE:UNUSED, links succeeds but it failes to
load the library at runtime.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1584 >
2023-07-21 06:37:45 +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
Thibault Saunier
c79574c2d3
python: Do not link GStreamer in the overrides
...
Symbols will already be present thanks to pygobject dlopenning the correct lib
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4128 >
2023-05-31 15:17:11 +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
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
Xavier Claessens
5f0493d33a
meson: Set install_tag on some targets
...
Trying to follow recommendation from Meson documentation:
https://mesonbuild.com/Installing.html#installation-tags
Move tools into 'bin' or 'bin-devel' categories to keep only libs and
plugins in the default 'runtime' category. This simplifies distribution
of GStreamer application skipping parts that are not needed, similarly
to what Cerbero does by hardcoding huge list of files.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3017 >
2022-09-20 10:08:15 +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
Xavier Claessens
0fa7923937
Meson: Set install_tag on some files
...
Meson tries to guess the tag (runtime, devel, etc) for every installed
file, but it cannot guess them all. There is a list at the end of
meson-log.txt of files we need to tag manually.
See https://mesonbuild.com/Installing.html#installation-tags .
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1934 >
2022-03-14 08:56:54 -04:00
Mathieu Duponchelle
b6ffad41ca
gst-python: gstmodule.c: fix build with 3.11
...
https://docs.python.org/fr/3.10/whatsnew/3.10.html
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1639 >
2022-03-09 18:13:25 +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
Mathieu Duponchelle
830d1595b9
VideoInfo, AudioInfo: fix usage with python bindings
...
* Expose an actual constructor from caps
* Error out in overrides for code that was using the "manual
allocation" pattern which only worked by chance. Direct
the script writer to the new_from_caps constructor instead.
Fixes https://gitlab.freedesktop.org/gstreamer/gst-python/-/issues/47
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1571 >
2022-01-27 08:36:46 +00:00
Thibault Saunier
f95f63c5af
python: Avoid treating float as int
...
Since python 3.10 implicit conversion to integers using `__int__` as
been completely removed (was deprecated behavior in 3.9) so we need
to cleanly handle it now.
See https://gitlab.gnome.org/GNOME/pitivi/-/issues/2589
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1358 >
2021-11-18 00:19:46 +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
1babccfe50
python: Fix using overrides when not building PyGObject
...
Since 547570cd79
we do not always build
PyGObject and our development environment is broken when trying to use
GStreamer python when built against system PyGObject with the following
error importing Gst in there:
```
12345678** (gst-plugin-scanner:710617): CRITICAL **: 11:45:02.343: can't find gi.repository.Gst
Traceback (most recent call last):
File "/usr/lib/python3.9/site-packages/gi/repository/__init__.py", line 23, in <module>
from ..importer import DynamicImporter
File "/usr/lib64/python3.9/site-packages/gi/importer.py", line 33, in <module>
from .overrides import load_overrides
ImportError: cannot import name 'load_overrides' from 'gi.overrides' (/var/home/thiblahute/devel/gstreamer/gstreamer/subprojects/gst-editing-services/bindings/python/gi/overrides/__init__.py)
Factory Details:
```
The approach to fixing it is to implement override `gi` in
`gst-python/gi/` which we add to `PYTHONPATH`) and in there reset the
`gi` module to the right place and we get overrides from paths from
`_GI_OVERRIDES_PATH` we set in `gst-env.py` which points to all the
overrides that will be installed.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1155 >
2021-10-15 20:51:41 +00:00
Thibault Saunier
24c6e49874
Move files from gst-python into the "subprojects/gst-python//" subdir
2021-09-24 16:16:05 -03:00