Commit graph

3966 commits

Author SHA1 Message Date
Sebastian Dröge
20f9ba8728 ci: Update to dav1d 1.5.0
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1604>
2024-11-30 14:48:22 +02:00
Sebastian Dröge
7241517e7e ci: Update to meson 1.6.0
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1604>
2024-11-30 14:48:22 +02:00
Sebastian Dröge
477f028873 ci: Update to cargo-c 0.10.7
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1604>
2024-11-30 14:48:19 +02:00
Sebastian Dröge
7f00420b1c ci: Update to Rust 1.83
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1604>
2024-11-29 09:47:07 +02:00
Sebastian Dröge
36eca7cca9 ci: Update image for new GStreamer version
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1600>
2024-11-22 14:23:35 +02:00
Sebastian Dröge
6982b6edc6 deny: Update unicode license name
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1600>
2024-11-22 14:23:35 +02:00
Sebastian Dröge
48f8a2298c Update Cargo.lock
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1600>
2024-11-22 14:23:35 +02:00
Sebastian Dröge
2ba52a2927 video: Add bindings for new VideoFormat <-> DRM fourcc/modifier mapping functions
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1600>
2024-11-22 14:23:35 +02:00
Sebastian Dröge
26791af39a meta: Add bindings for new meta_api_type_aggregate_params() function
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1600>
2024-11-22 14:23:35 +02:00
Sebastian Dröge
11be6b0d2f meta: Add functions for working with meta API types directly
When working with allocation queries one only has the `glib::Type`.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1600>
2024-11-22 14:23:35 +02:00
Sebastian Dröge
486b5178e9 Regenerate with latest gir / gir-files
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1600>
2024-11-22 13:32:24 +02:00
Sebastian Dröge
c788de5bbc Update gir
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1600>
2024-11-22 13:31:43 +02:00
Sebastian Dröge
80d535d7f6 Update gir-files
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1600>
2024-11-22 13:31:35 +02:00
Sebastian Dröge
720b73143d Update GStreamer gir files
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1600>
2024-11-22 13:31:17 +02:00
Olivier Crête
299034e105 analytics: Add bindings for tensor and tensormeta APIs
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1595>
2024-11-21 17:51:47 +00:00
François Laignel
591ab4314e gst: structure: revert [filter_]map_in_place deprecation
For `Structure`, `map_in_place()` & `filter_map_in_place()` where marked as
deprecated when the feature v1_26 was selected. Any existing code using those
functions will be rejected by CI clippy job because it uses `--all-features`.

This commit removes the conditional deprecation.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1599>
2024-11-21 12:44:14 +01:00
Sebastian Dröge
5b652aa3d0 gstreamer: Allow dumping mutable byte slices too
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1596>
2024-11-21 13:00:26 +02:00
François Laignel
9c386085e3 all: GObject builders: generalise property_from_str
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1594>
2024-11-19 10:11:32 +01:00
Jordan Petridis
68571f6f75 ci: Update the base image for the windows dockerfile
Originally done in
https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1591

Was dropped by accident before merging.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1593>
2024-11-15 15:49:27 +02:00
Sebastian Dröge
7fb69c825f Regenerate with latest gir again
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1591>
2024-11-15 13:10:32 +02:00
Sebastian Dröge
3319a761d7 Update gir again
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1591>
2024-11-15 13:10:10 +02:00
Sebastian Dröge
8ba700301d analytics: Manually implement FFI GstTensor because of flexible array member
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1591>
2024-11-15 12:00:02 +02:00
Sebastian Dröge
44006bc4f1 gstreamer: pad: Remove unnecessary <1.14 compatibility code
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1591>
2024-11-15 12:00:02 +02:00
Sebastian Dröge
209c5eef35 ci: Rebuild images to get new GStreamer
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1591>
2024-11-15 12:00:02 +02:00
Sebastian Dröge
46ead1f36c Regenerate with latest gir / gst-gir-files
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1591>
2024-11-15 12:00:02 +02:00
Sebastian Dröge
ad756f9cb9 Update GStreamer gir files
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1591>
2024-11-15 12:00:02 +02:00
Sebastian Dröge
c04fdd2037 Update gir
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1591>
2024-11-15 12:00:02 +02:00
François Laignel
5ab9c5a203 gst: deprecate maybe_field() setters in favor of field_if_some()
Some builder convenience setters where added to work with `Option`al values.
This is the case for the `Pad` builder setter `maybe_name()` which was
introduced as part of [this MR].

Then [more convenience setters] were discussed and [it was decided] to use
`field_if_some()` instead of `maybe_field()`. Existing `maybe_field()`s were
kept for backward compatibility. This commit marks them as deprecated,
referring to the matching `field_if_some()`.

[this MR]: https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1255
[more convenience setters]: https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/issues/499
[it was decided]: https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/issues/499#note_2364820

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1592>
2024-11-14 11:46:24 +01:00
Thibault Saunier
3f1909d828 validate: Add manual_traits information to Gir.toml
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1586>
2024-11-13 16:12:52 +00:00
Thibault Saunier
a7aae598a7 validate: Add license headers
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1586>
2024-11-13 16:12:52 +00:00
Thibault Saunier
4ceabe9400 validate: Remove ActionError::None type
It was useless.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1586>
2024-11-13 16:12:52 +00:00
Thibault Saunier
d8a3784b74 validate: Give a mutable reference to the action in the execute function
We need to be able to keep a reference to the action when we
implement async action types so now we can do `action.clone()`
and get a hard reference to it.

We also need to be able to mutate the structure, it is possible to
`get_mut()` on it, get a mutable reference to the structure.

There was a bug in the test where we were using a ref to the wrong
action object in the async signal which is why we didn't detect the
problem.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1586>
2024-11-13 16:12:52 +00:00
Thibault Saunier
5fccc0bc82 validate: action: Expose the .report_error() method
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1586>
2024-11-13 16:12:52 +00:00
Thibault Saunier
b941e9c56a validate: Action.structure is nullable
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1586>
2024-11-13 16:12:52 +00:00
Thibault Saunier
e42b3c6bbe validate: action: Expose the .scenario() method
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1586>
2024-11-13 16:12:51 +00:00
Thibault Saunier
e06e0fb33e validate: Fix refcount handling for action.set_done()
Also fix the test making proper use of it.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1586>
2024-11-13 16:12:51 +00:00
Thibault Saunier
721de958ce validate: Implement Debug trait on Action
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1586>
2024-11-13 16:12:51 +00:00
François Laignel
dcf6d333b6 gst: tags: remove Quark
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1531>
2024-11-13 15:34:00 +01:00
François Laignel
ebe3d72bae gst-pbutils: add IdStr builder setters
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1531>
2024-11-13 15:34:00 +01:00
François Laignel
0d28cbceac gst: caps: update for IdStr
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1531>
2024-11-13 15:34:00 +01:00
François Laignel
2d2ded555e gst: structure: deprecate Quarks and use IdStr
Update Structure API:

* Quarks API are deprecated. Methods which were internally calling quarks
  methods now call C string based methods.
* Added new `IdStr` methods.

See also:

* https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7432
* https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7613
* https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7644

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1531>
2024-11-13 15:34:00 +01:00
François Laignel
c2cc048803 gst: implement IdStr bindings and compatibility versions
IdStr represents UTF-8 immutable strings which perform optimizations for short
strings (< 16 bytes). The C type `GstIdStr` was introduced in GStreamer 1.26 as
a replacement for GQuarks.

This commit adds Rust bindings for the C type `GstIdStr`. Since this type will
be used in API which previously relied on GQuarks, the commit also adds a
compatibility implementation which can be used with GStreamer versions prior to
1.26, which is the first version to implement and use `GstIdStr`.

The crate [KString] was used as the inner implementation for the compatibility
version as it performs similar optimizations as `GstIdStr` and uses the same
threshold to trigger heap allocation.

See also: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7432

[KString]: https://crates.io/crates/kstring

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1531>
2024-11-13 15:33:59 +01:00
François Laignel
bad44ef436 gir: regenerate
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1531>
2024-11-13 13:58:25 +01:00
François Laignel
91a04c1ca3 gst-sys: add manual implementation for GstIdStr
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1531>
2024-11-13 13:58:25 +01:00
François Laignel
389c69c300 gst: update Gir.toml
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1531>
2024-11-13 13:58:25 +01:00
François Laignel
ae0283f154 gst: fix serde test for ObjectFlags::all()
GStreamer 1.24 added `GST_OBJECT_FLAG_CONSTRUCTED`, so `ObjectFlags::all()`
returns a different set depending on the version feature.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1590>
2024-11-13 13:35:50 +01:00
Sebastian Dröge
87cfa2f959 Update glib dependency
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1589>
2024-11-12 16:51:41 +02:00
Sebastian Dröge
a9b33a465c Update CHANGELOG.md for 0.23.3
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1582>
2024-11-12 11:50:00 +02:00
Sebastian Dröge
854c2e692a Update CHANGELOG.md for 0.23.2
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1549>
2024-11-12 11:50:00 +02:00
François Laignel
5df7df303c gst: Element::foreach*_pad: return ControlFlow instead of bool in callback
Same as for BufferList::foreach*.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1584>
2024-11-07 10:04:43 +01:00