gstreamer/subprojects/gst-python
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
..
examples python: Add a GstDiscoverer example 2023-08-21 17:16:27 +00:00
gi gst-python: Fix override loading in python >= 3.12 2024-02-02 13:30:38 +01:00
old_examples python: Add a GstDiscoverer example 2023-08-21 17:16:27 +00:00
plugin meson: Call pkgconfig.generate in the loop where we declare plugins dependencies 2022-09-01 21:17:35 +00:00
scripts gst-omx: Retire the whole package 2023-07-16 19:10:03 +00:00
testsuite gst-python: Fix override loading in python >= 3.12 2024-02-02 13:30:38 +01:00
COPYING Move files from gst-python into the "subprojects/gst-python//" subdir 2021-09-24 16:16:05 -03:00
gst-python.doap Release 1.22.0 2023-01-23 19:41:07 +00:00
meson.build meson: bump Meson requirement to >= 1.1 for all modules 2024-01-29 01:11:55 +00:00
meson_options.txt gst-python: Add option to disable python plugin 2021-11-10 13:38:04 -05:00
NEWS Release 1.22.0 2023-01-23 19:41:07 +00:00
README.md gst-python: add proper README and delete useless placeholder files 2023-05-29 23:46:49 +00:00
RELEASE Release 1.22.0 2023-01-23 19:41:07 +00:00

gst-python

gst-python is an extension of the regular GStreamer Python bindings based on gobject-introspection information and PyGObject.

It provides two things:

  1. "syntactic sugar" in form of overrides for various GStreamer APIs that makes them easier to use in Python and more pythonic; and

  2. support for APIs that aren't available through the regular gobject-introspection based bindings, such as e.g. GStreamer's fundamental GLib types such as Gst.Fraction, Gst.IntRange etc.

Prerequisites

These libraries are needed to build gst-python:

  • gstreamer core
  • gst-plugins-base
  • pygobject

You will also need pygobject and glib installed. On debian-based distros you can install these with:

sudo apt build-dep python3-gst-1.0

Only Python 3 is supported.

Building

meson setup builddir && ninja -C builddir
meson install -C builddir

Using

Once installed in the right place, you don't need to do anything in order to use the overrides. They will be loaded automatically on

import gi
gi.require_version('Gst', '1.0')
gi.repository import GObject, Gst

Note that additional imports will be required for other GStreamer libraries to make use of their respective APIs, e.g. GstApp or GstVideo.

License

gst-python is licensed under the LGPL 2.1