Commit graph

1750 commits

Author SHA1 Message Date
Sebastian Dröge
a6e7c1a237 Regenerate with latest gir / gir-files / gst-gir-files
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1632>
2025-02-17 15:16:01 +02:00
Jeremy Prater
552b90837c Fix serialize_struct size to match number of fields in gstreamer::Buffer
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1631>
2025-01-10 17:54:15 +00:00
Brad Hards
97dfa6fb87 gst: add check for IntRange::with_step step size
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1629>
2025-01-10 10:35:23 +00:00
Thibault Saunier
f721032674 tracer: Add support for USE_STRUCTURE_PARAMS with gst < 1.26
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1626>
2025-01-08 17:45:14 +00:00
Sebastian Dröge
8543880d37 Update CHANGELOG.md for 0.23.4 2024-12-21 17:09:35 +02:00
Sebastian Dröge
ecd46471da Fix / silence new Rust 1.83 clippy warnings
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1618>
2024-12-20 19:58:21 +02:00
Sebastian Dröge
d36b0def52 gstreamer: Don't generate bindings for gst_util_ceil_log2() and the floor variant
This already exists in the standard library.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1618>
2024-12-20 19:58:21 +02:00
Sebastian Dröge
7144d0eefa gstreamer: Add support for new tracer use-structure-params API
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1618>
2024-12-20 19:58:21 +02:00
Sebastian Dröge
e7e6682abf meta: Add bindings for new meta_api_type_aggregate_params() function
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1618>
2024-12-20 19:58:21 +02:00
Sebastian Dröge
6630921a88 Regenerate with latest gir / gir-files
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1618>
2024-12-20 19:58:21 +02:00
Sebastian Dröge
d8372687c1 gstreamer: Remove unnecessary recursion_limit=256
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1618>
2024-12-20 19:58:21 +02:00
Sebastian Dröge
2149bcb93c 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/1618>
2024-12-20 19:30:26 +02:00
Sebastian Dröge
48ce8536d0 gstreamer: pad: Remove unnecessary <1.14 compatibility code
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1618>
2024-12-20 19:30:26 +02:00
François Laignel
b457cb6250 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/1618>
2024-12-20 19:30:26 +02:00
Sebastian Dröge
23a2e2003b Update to thiserror 2
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1618>
2024-12-20 19:02:27 +02:00
Piotr Brzeziński
7184e67d80 log: Add as_ptr() for DebugMessage
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1615>
2024-12-13 14:03:26 +00:00
Piotr Brzeziński
45140ac971 log: Add as_ptr() and Hash to DebugCategory
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1613>
2024-12-11 17:25:37 +00:00
Sebastian Dröge
09e5130e1e gstreamer: Allow dumping mutable byte slices too
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1598>
2024-11-21 11:33:22 +00:00
François Laignel
9596ef8338 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/1597>
2024-11-21 11:17:17 +00:00
François Laignel
bbdfc07dc0 all: fix userdata mutability for FnMut callbacks
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1587>
2024-11-08 15:54:43 +02:00
Sebastian Dröge
8df2662745 regenerate
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1587>
2024-11-08 15:54:05 +02:00
Sebastian Dröge
d3593c86b6 Update CHANGELOG.md for 0.23.3
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1582>
2024-11-01 09:26:08 +02:00
Sebastian Dröge
fa1b7e22e0 Regenerate with latest GStreamer gir files
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1574>
2024-10-22 16:22:43 +00:00
Sebastian Dröge
8b07e64b41 Update Gir.tomls
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1574>
2024-10-22 16:22:43 +00:00
Sebastian Dröge
1deddbc6d3 iterator: Add a few more constructors for convenience
And implement `Vec` version more generically.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1568>
2024-10-21 18:26:18 +00:00
Viktor Chvatal
a360f11ac7 gstreamer: Fix binding to wrong C function in PadExtManual::proxy_query_caps
Fixes #533

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1557>
2024-10-17 13:02:11 +00:00
Arun Raghavan
c9f7a2a947 gstreamer: Add tests for pad probes taking and dropping data
This is quite similar to the HANDLED case, so reuse that code.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1552>
2024-09-28 16:29:28 +03:00
Sebastian Dröge
bbbcda32e8 Fix new 1.81 clippy warnings
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1551>
2024-09-28 10:43:02 +01:00
Sebastian Dröge
41b938674d Update CHANGELOG.md for 0.23.2
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1549>
2024-09-28 12:15:07 +03:00
Sebastian Dröge
0c1ea6abbf gstreamer: Remove manual #[link] attribute
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1544>
2024-09-28 11:49:23 +03:00
Sebastian Dröge
6a554744f5 Regenerate with latest gir
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1544>
2024-09-28 11:48:43 +03:00
Arun Raghavan
a369f9e345 gstreamer: Use new pad probe take_*() API in tests
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1537>
2024-09-19 10:03:03 +02:00
Arun Raghavan
e34323cf2a gstreamer: Set data to null if it's consumed
When the probe has HANDLED the data, we're expecting the caller to no
longer access it. Let's explicitly protect against that by setting the
data to NULL on return.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1537>
2024-09-19 10:03:02 +02:00
Arun Raghavan
58efcc5fd5 gstreamer: Add some setters for Message
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1537>
2024-09-19 10:03:02 +02:00
Arun Raghavan
301e25c832 gstreamer: Add some setters for Event
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1537>
2024-09-19 10:03:02 +02:00
Arun Raghavan
e1accc5ffd gstreamer: Add a MessageViewMut for mutable message access
This isn't very generally useful, but there are special cases where
accessing the structure, or adding details is handy.

Fixes: https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/issues/474
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1537>
2024-09-19 10:03:02 +02:00
Arun Raghavan
2aeff17297 gstreamer: Add an EventViewMut accessor
Should make mutable access to events less verbose.

Fixes: https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/issues/474
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1537>
2024-09-19 10:03:02 +02:00
Arun Raghavan
6321323ca6 gstreamer: Add API to take an event and buffers in a pad probe
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1537>
2024-09-19 10:03:02 +02:00
Jan Alexander Steffens (heftig)
4a5d62311e gst: Fix range in Percent::ppm doc
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1535>
2024-09-18 23:31:52 +00:00
François Laignel
ddff075fb8 gst: fix typo in format doc
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1534>
2024-09-19 00:13:39 +01:00
François Laignel
314731b62c gst: anticipate GQuark to GstIdStr lifetime changes
GStreamer fixes a memory leak due to GQuarks by switching to GstIdStr.
The consequence is that strings previously backed by a GQuark returned by a
function will now get their lifetime bound to that of its owner, while the
GQuark version ensured static lifetime.

Because some functions return a string with the assumption that they are static
and because we can't alter the API for existing versions of the bindings, this
MR temporarily forces affected strings as GQuarks, thus gaining static lifetime
regardless of the GStreamer version actually being used.

For newer versions of the bindings, the API will be fixed and GQuarks will be
removed in favor a leakless solution.

See: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7432
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1522>
2024-09-11 10:58:07 +01:00
François Laignel
33cb47229a structure: fix doc
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1522>
2024-09-11 10:58:07 +01:00
François Laignel
9a628848cf tags: fix index() lifetime bind
The signature for `TagListRef::index` didn't bind the lifetime of the returned
`TagValue` to `&self`. This causes the following code to compile:

```rust
 1 let title = {
 2     let mut tags = TagList::new();
 3     {
 4         let tags = tags.get_mut().unwrap();
 5         tags.add::<Title>(&"some title", TagMergeMode::Append);
 6     }
 7
 8     let title = tags.index::<Title>(0).unwrap();
 9     assert_eq!(title.get(), "some title");
10
11     title
12 };
13
14 assert_eq!(title.get(), "some title");
```

... but it panics at runtime on the last `title.get()`:

```
Invalid tag type: WrongValueType(ValueTypeMismatchError
    { actual: <invalid>, requested: gchararray })
```

Indeed, the `title` `TagValue` is freed with the `tags` on line 12.

This commit fixes the function signature so the returned `TagValue` can't
outlive its `TagListRef`.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1520>
2024-09-10 23:57:23 +01:00
Sebastian Dröge
500499827d Update CHANGELOG.md for 0.23.1 2024-08-27 20:41:59 +03:00
Sebastian Dröge
5ae5f14532 Fix new 1.80 clippy warnings
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1506>
2024-08-22 13:41:21 +03:00
Sebastian Dröge
a5e10f416b Ignore a new 1.80 clippy warning
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1506>
2024-08-22 10:51:46 +01:00
Piotr Brzeziński
db446f3f46 gstreamer: bufferlist: Fix remove() range end being off by one
The end index was being calculated the same way as the start one, which is incorrect.
It should be +1'd when range is inclusive and left as-is if it's exclusive, not the other way around.
Fixed and added a simple test to verify correctness.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1494>
2024-08-05 09:36:44 +00:00
Guillaume Desmottes
efc87fd239 gstreamer: format: Percent: add getters
We had constructor from the percent/ppm/ratio values but not getters
to get those values.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1493>
2024-08-05 09:41:59 +01:00
Sebastian Dröge
95104ac844 gstreamer: meta: Pass an empty tag array instead of NULL to gst_meta_register_custom()
NULL gives a critical warning but an empty, NULL-terminated array gives
the desired result.

Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/issues/516

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1484>
2024-07-18 20:50:54 +01:00
Sebastian Dröge
afd662c94f Update CHANGELOG.md for 0.23.0 release
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1482>
2024-07-11 19:13:01 +03:00