Commit graph

172 commits

Author SHA1 Message Date
Marijn Suijten
01f0988a48 gl/gir: Configure generation for GLFilter with miniobject quirks
GLMemory input/output objects cannot be passed as mutable:
to_glib_none_mut checks if the miniobject is writable, even though the
underlying implementation should really only care about whether the
_data_ owned by this miniobject is.

(This temporary GLMemory object references its parent buffer object
 that is also referenced externally, resulting in two references making
 the object itself immutable)

Furthermore take care of automatically calling `add_rgba_pad_templates`
in `class_init` if `ADD_RGBA_PAD_TEMPLATES` is set to `true` (the
default).
2021-04-17 07:54:40 +00:00
Marijn Suijten
0d338a003e gl/gl_filter: Add GLFilterImpl with configurable filter/filter_texture
GLFilter should override either .filter() or .filter_texture(), not
both. This allows an implementer to pick at runtime what function is
overridden.
2021-04-17 07:54:40 +00:00
Marijn Suijten
2e85ebe789 gl/gl_base_filter: Implement GLBaseFilterImpl virtual functions 2021-04-17 07:54:40 +00:00
Marijn Suijten
34919c99d0 gl: Enable generation of GstGL.GLMemory 2021-04-17 07:54:40 +00:00
Marijn Suijten
39f8eb98ee gl/framebuffer: Mark autogenerated fn attach() to unsafe
`attachment_point` is said to not be validated, or [existing validation]
is inadequate.

[existing validation]: 57a23786f3/gst-libs/gst/gl/gstglframebuffer.c (L456)
2021-04-17 07:54:40 +00:00
Marijn Suijten
4eddd377e1 gl/gl_base_memory: Provide manual GLBaseMemory miniobject implementation
Also enable all dependencies used by this type. Copying
AllocationParams is possible without borrowing the source mutable.

The offset and size parameters of `memcpy` are unchecked and may result
in out-of-bounds reads/writes, which is why this function is marked as
`unsafe`.
2021-04-17 07:54:40 +00:00
Marijn Suijten
d596ea45c5 gl/gir: Make GLBaseFilter always available with min_version
This class only contains two functions with a version requirement of at
least 1.16, but the class is used by GLFilter without any version
restrictions.
2021-04-17 07:54:40 +00:00
Marijn Suijten
eda46ac74d gl/gir: Add external types used by GL to manual list
These types will be used by the newly generated GLFilter class and/or
its dependencies.
2021-04-17 07:54:40 +00:00
Marijn Suijten
d200a869bc gl/gir: Add all used external parent classes as manual
As collected with:

    xmlstarlet sel -t -v "//_:field[@name = \"parent_class\"]/_:type/@name" gir-files/GstGL-1.0.gir | uniq

This adds GstBase.BaseTransform for GLBaseFilter and GLFilter, and
Gst.Element for gst::panic_to_error.
2021-04-17 07:54:40 +00:00
François Laignel
53be8e5f58 fix-getters-{def,calls} pass 2021-04-13 17:54:40 +02:00
François Laignel
08545cbefc regen - remove get prefix for getters 2021-04-13 17:54:38 +02:00
Marijn Suijten
6ec0e3ac4b Update gir and regenerate with extended gir-dirs comments
Gir now prints all directories and their hashes in the version file and
comments; useful now that gstreamer-rs is being generated from both
gir-files/ and gst-gir-files/ submodules.
2021-04-01 15:58:41 +02:00
Marijn Suijten
7f9fcb09e2 Gir.toml: Drop unused/renamed girs_dir in favour of gir -d
We were already using `gir -d` and especially now that our files are
separated across two directories that are relative to the directory
containing Gir.toml this only becomes cumbersome. Besides `gir` lacks
functionality to normalize the path, leading to ie.
gstreamer-gl/egl/sys/../../../gir-files in the version comment as a
result.
2021-04-01 15:53:23 +02:00
Marijn Suijten
a38561fbcd Update gir and regenerate with redundant #[cfg]/#[cfg_attr] removed
Also ignores `clippy::upper_case_acronyms` introduced with 1.51 which
can't be adhered to in bindings.
2021-04-01 15:53:18 +02:00
Sebastian Dröge
a311591310 Regenerate with latest gir 2021-03-08 12:25:37 +02:00
Marijn Suijten
c58f2b09d2 gl/sys/gir: New buffer/memory get_type functions are only in 1.20
G-IR cannot read or represent `Since:` annotations on get_type()-like
functions, despite these being available in the source. This adds the
type requirements manually following its implementation in [1],
considering it will not be backported to 1.18.x [2]. If `get_type` is
used in manual bindings after 1.20 releases this version requirement is
easily caught.

[1]: https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/999
[2]: https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/1010
2021-03-02 10:20:11 +01:00
Sebastian Dröge
5822785191 Regenerate with latest gir 2021-02-28 18:30:54 +02:00
Sebastian Dröge
2b0b3910ee Regenerate everything with latest gir 2021-02-22 17:13:45 +02:00
Sebastian Dröge
5f5218e1ab Update CHANGELOG.md for 0.16.7 2021-02-13 14:04:37 +02:00
Sebastian Dröge
6487380021 Regenerate gstreamer-gl-{egl,wayland,x11} sys Cargo.toml
They were forgotten to be included in the previous commit.
2021-02-12 09:44:04 +02:00
Sebastian Dröge
3d076c05e1 Regenerate with gir to update system-deps dependency and get rid of clippy warning in the ABI tests 2021-02-10 13:11:49 +02:00
Vivia Nikolaidou
0a119cada6 gstreamer-audio: Add AudioConverterConfig 2021-02-09 19:13:30 +02:00
Sebastian Dröge
9d86cef2da Regenerate everything with latest gir 2021-02-07 17:07:17 +02:00
Marijn Suijten
1ffa02fc1f Update gir to c85699a with import cleanups; regenerate
Apply import cleanups from https://github.com/gtk-rs/gir/pull/1043,
omitting `use` statements where unnecessary or guarding them with
versioning constraints to prevent `unused_imports` warnings.

Removes unnecessary `mut_override` with
https://github.com/gtk-rs/gir/pull/1044 as well.
2021-01-30 15:49:38 +01:00
Guillaume Gomez
60a5ccc95d Fix toml files indent 2020-12-23 14:38:33 +01:00
Sebastian Dröge
3428e5c0c7 Update CHANGELOG.md for 0.16.6 2020-12-20 20:50:51 +02:00
Sebastian Dröge
477b00cce8 Update CHANGELOG.md for 0.16.5 2020-12-20 20:50:48 +02:00
Sebastian Dröge
68839c0e79 Re-export all dependency crates and their preludes
This makes code in examples potentially simpler.
2020-12-20 19:40:34 +02:00
Guillaume Gomez
2f0e386037 Regen with more doc alias for enums and consts 2020-12-18 15:23:05 +01:00
Sebastian Dröge
ce1148b474 Update everything for glib macro renamings 2020-12-18 00:56:47 +02:00
Sebastian Dröge
d0b0006d27 Regenerate 2020-12-18 00:34:53 +02:00
Sebastian Dröge
38b94abc59 Add COPYRIGHT file as links into all crates and change LICENSE files to links too 2020-12-16 12:49:49 +02:00
Guillaume Gomez
ff5a36561a Fix license header situation 2020-12-15 11:53:31 +01:00
Marijn Suijten
132477f51f cargo.toml: Add v1_20 feature to all crates 2020-12-12 13:17:20 +01:00
Marijn Suijten
0ff16c589f Regenerate sys Cargo.toml with 1.20 version 2020-12-12 13:17:03 +01:00
Marijn Suijten
1d726d6a1e gir.toml: Add 1.20 to extra_versions 2020-12-12 13:15:11 +01:00
Guillaume Gomez
959568f124 regen 2020-12-08 14:00:17 +01:00
Marijn Suijten
15d8774e6b Update gir to 1c1a8d7 and regenerate with associated enum/flag functions 2020-12-07 12:11:27 +01:00
Marijn Suijten
57bc1c7f42 audio,video,gl,webrtc: Mark manually-confirmed to_string fns as non-NULL
These functions have been checked to never return NULL. The overrides
can hopefully be gone again when C contains better annotations and
trust_return_value_nullability is enabled.
2020-12-07 12:09:39 +01:00
Sebastian Dröge
dd23ac7093 gstreamer-gl: Fix/extend cargo metadata and add README.md for new EGL/Wayland/X11 sub-crates 2020-11-29 11:42:24 +02:00
Marijn Suijten
506c19dab4 gl/egl,x11/sys: Regenerate with sys crate rename
Fixes: 4cc57723 ("gl: Regenerate with separate EGL/Wayland/X11 -sys crates")
2020-11-28 11:55:27 +01:00
Marijn Suijten
f754860e32 gl/EGL,X11/sys: Split gl and egl,x11 with a hyphen
to_snake detects GLEGL and GLX11 as one word (contrary to GLWayland),
leading to no hyphen or underscore separating the two.

Fixes: 4cc57723 ("gl: Regenerate with separate EGL/Wayland/X11 -sys crates")
2020-11-28 11:54:42 +01:00
Marijn Suijten
3cda842052 gl/-sys/Cargo: Only use EGL/Wayland/X11 library from v1.18 onwards 2020-11-28 11:15:22 +01:00
Marijn Suijten
22b0644579 gl: Regenerate with renamed EGL/Wayland/X11 crates 2020-11-28 11:15:22 +01:00
Marijn Suijten
d7dcf5ebcb gl: Rename EGL/Wayland/X11 crates from gst- to gstreamer- 2020-11-28 11:15:22 +01:00
Marijn Suijten
1d3a522afb gl/manual: Remove moved GST_GL_DISPLAY_EGL_NAME 2020-11-28 11:15:22 +01:00
Marijn Suijten
2ddec80b78 gl/-sys/Cargo: Remove link; fix dependency paths 2020-11-28 11:15:22 +01:00
Marijn Suijten
4cc5772361 gl: Regenerate with separate EGL/Wayland/X11 -sys crates
This moves the X11, EGL and Wayland parts of the GL bindings to separate
crates.

Co-authored-by: Sebastian Dröge <sebastian@centricular.com>
2020-11-28 11:15:22 +01:00
Marijn Suijten
efec7d4e31 gl: Move EGL/Wayland/X11 manual impls to their own module
And use the new -sys crates.
2020-11-28 11:15:22 +01:00
Marijn Suijten
55badab13d gl: Add X11/EGL/Wayland API back based on separate -sys crates
Co-authored-by: Sebastian Dröge <sebastian@centricular.com>
2020-11-28 11:15:22 +01:00