Commit graph

3973 commits

Author SHA1 Message Date
acpiccolo
6deb59062a video: fix order of arguments for VideoFormat::from_masks()
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1609>
2024-12-10 11:50:07 +01:00
Cheung Yik Pang
1410e2f3a3 video: fix VideoFrame(Ref)::plane_data() returning truncated buffer
Plane index and component index are not interchangeable for some video
formats, e.g., AV12. Each plane could contain more than one component.
Therefore, the height of each plane's buffer should be the aggregated height
of all its components.

Fixes #536

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1607>
2024-12-10 08:27:06 +00:00
Sebastian Dröge
4bb7208823 Update Cargo.lock
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1605>
2024-11-30 15:11:46 +02:00
Sebastian Dröge
7701bf6169 ci: Don't consider no runnable tests an error
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1604>
2024-11-30 14:48:22 +02:00
Sebastian Dröge
6913e930cd Fix / silence new Rust 1.83 clippy warnings
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1604>
2024-11-30 14:48:22 +02:00
Sebastian Dröge
3bc4076aee gstreamer: Remove unnecessary recursion_limit=256
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1604>
2024-11-30 14:48:22 +02:00
Sebastian Dröge
9f8f349ee7 ci: Update version checks for installing Rust tools
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1604>
2024-11-30 14:48:22 +02:00
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