Commit graph

1421 commits

Author SHA1 Message Date
Sebastian Dröge
58ea85c52c gstreamer: Allow returning Handled from BufferList pad probes
This is handled exactly the same way as buffers.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1176>
2022-12-27 12:28:09 +02:00
Sebastian Dröge
913dfdcdfc Update CHANGELOG.md for 0.19.4 2022-12-16 11:43:16 +02:00
Sebastian Dröge
9520f2da0e Update versions to 0.19.4 2022-12-16 11:40:57 +02:00
Sebastian Dröge
bb90b58547 Fix various new clippy warnings
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1168>
2022-12-16 09:22:59 +02:00
Sebastian Dröge
dbd9447a26 Regenerate with latest gir / gir files
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1163>
2022-12-12 13:25:01 +02:00
Sebastian Dröge
a8dd4aa165 gstreamer: Add DebugCategory::above_threshold() to check if the category's threshold is above the given level
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1163>
2022-12-12 13:22:45 +02:00
Sebastian Dröge
2cf5347d1b gstreamer: Reduce some code duplication in the logging code
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1163>
2022-12-12 13:17:35 +02:00
Sebastian Dröge
8c6758f4a4 gstreamer: Add bindings for new 1.22 debug log ID API
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1163>
2022-12-12 13:17:21 +02:00
Sebastian Dröge
7fcd2f0cf6 gstreamer: Directly use fields for DebugCategory getters
This allows for better optimizations as it doesn't go through an opaque
FFI function.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1163>
2022-12-12 13:17:15 +02:00
Sebastian Dröge
d5e58d2dd4 gstreamer: Ignore EventType::to_sticky_ordering
This is handled manually via the `PartialOrd` impl.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1163>
2022-12-12 13:16:51 +02:00
Sebastian Dröge
2fe30fb166 Update versions to 0.19.3 2022-11-28 10:14:29 +02:00
Sebastian Dröge
7f1f7f4d67 Update CHANGELOG.md for 0.19.3 2022-11-28 10:14:29 +02:00
Sebastian Dröge
51c8a12f35 gstreamer: Add PartialEq impls between owned/borrowed miniobjects/structures
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1158>
2022-11-27 19:54:18 +02:00
Sebastian Dröge
40143109da gstreamer: Fix sticky event ordering for instant-rate-change
The event type for instant-rate-change events was poorly chosen, leading
to them being re-sent too late and even after EOS.

See https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3387

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1158>
2022-11-27 19:53:39 +02:00
Sebastian Dröge
1087b63ac4 Regenerate with latest GStreamer gir files
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1158>
2022-11-27 19:53:25 +02:00
Sebastian Dröge
048693202c gstreamer: Implement FromIterator<Caps> and Extend<Caps> for Caps
This allows easily generating new/extending existing caps from an
iterator.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1158>
2022-11-27 19:50:57 +02:00
Sebastian Dröge
056b0df294 Update CHANGELOG.md for 0.19.2 2022-11-13 19:50:21 +02:00
Sebastian Dröge
bfa468e87f Update versions to 0.19.2 2022-11-13 19:45:33 +02:00
Sebastian Dröge
38dfe1596d Regenerate with latest gir
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1147>
2022-11-12 17:38:39 +02:00
Elie Génard
250a65f02d gstreamer: Add gst::Allocator subclassing support
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1147>
2022-11-12 17:34:25 +02:00
Sebastian Dröge
784c44b947 gstreamer: Manually implement Allocator::register()
Due to a bug it causes use-after-free in versions < 1.20.5, so work
around that here.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1147>
2022-11-12 17:34:11 +02:00
Sebastian Dröge
41c2a2d4af Fix various new clippy warnings
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1147>
2022-11-12 17:33:04 +02:00
Sebastian Dröge
f440534c6d Fix 0.19.1 release date in the changelog 2022-10-24 12:34:05 +03:00
Sebastian Dröge
a6a168d200 Update CHANGELOG.md for 0.19.1 2022-10-24 12:32:29 +03:00
Sebastian Dröge
20120fda3d Update versions to 0.19.1 2022-10-24 11:23:00 +03:00
Sebastian Dröge
f60dfebe07 Update GLib dependency to 0.16.2 2022-10-24 10:55:34 +03:00
Sebastian Dröge
d1029e374a Move from imp.instance() to imp.obj()
It's doing the same thing and is shorter.
2022-10-24 10:47:25 +03:00
François Laignel
2bec28e920 gst/log: accept non-ref obj in macros 2022-10-24 10:46:54 +03:00
Sebastian Dröge
83d5efbeb4 Add version requirement to the sys dependency of each crate too 2022-10-22 21:11:51 +03:00
Sebastian Dröge
09c89aec91 Switch to 0.16 version of gtk-rs and provide a version/branch 2022-10-22 20:24:47 +03:00
Sebastian Dröge
7331dbc440 Update CHANGELOG.md for 0.19.0 2022-10-22 20:22:10 +03:00
Sebastian Dröge
bf7c770457 Regenerate with latest gir files 2022-10-22 20:22:10 +03:00
Sebastian Dröge
a1165a7456 gstreamer: Add bin/pipeline builders
And also implement the Default trait for them.
2022-10-22 17:36:36 +03:00
François Laignel
0e5a4f05f8 gst: fix Element::request_new_pad signature
See:

https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1133#note_1600152
2022-10-21 11:30:02 +02:00
François Laignel
4ebdfb8602 Use impl Into<Option<_>> for functions impacted by nullability fixes
This commit addresses the functions which signatures changed in
commit f9690817 so that users can still use e.g.
`query.set_result(val)` instead of `query.set_result(Some(val))`.

See [1] for an attempt at generalizing this approach.

[1]: https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1133
2022-10-21 11:30:02 +02:00
Sebastian Dröge
130cc9d63b element: Implement linking functions manually for better error reporting
Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/issues/318
2022-10-19 17:59:04 +03:00
Sebastian Dröge
7423b1dea6 elementfactory: Change make() / create() to builders and keep the old variants as create_with_name() / make_with_name()
As a side-effect, this also now includes the element factory name in the
error messages instead of giving the same error string for every
factory.

Partially fixes https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/issues/318

Also let them all go through the same, single object construction code.
2022-10-19 17:48:39 +03:00
Sebastian Dröge
7ad75d4b1f elementfactory: ElementFactory::create_with_properties() is available in any GStreamer version
As it's re-implemented here now instead of calling into the C function.
2022-10-19 13:53:06 +03:00
Sebastian Dröge
9c282ec7c3 gstreamer: Implement ElementFactory::create_with_properties() manually
This way we can get the same property checks as normal object
construction would provide.

Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/issues/402
2022-10-18 16:27:10 +00:00
Sebastian Dröge
67e3183922 Regenerate with latest gir and gir-files 2022-10-18 18:16:51 +03:00
Sebastian Dröge
19f7aaf413 Generate only a single versions file for sys crates too 2022-10-18 18:15:01 +03:00
Sebastian Dröge
9a9ce252a4 Fix usage of dox feature 2022-10-18 18:15:01 +03:00
Sebastian Dröge
d80227e566 Trust nullability annotations everywhere 2022-10-18 18:15:01 +03:00
Sebastian Dröge
f9690817ad Fix nullability handling in some functions in manual code 2022-10-18 18:15:01 +03:00
Vivia Nikolaidou
8d3ada5d89 pad: Catch panics in pad task functions
https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/issues/246
2022-10-18 10:38:12 +00:00
François Laignel
49faa03c98 gst/format: make from_u64 constructors const
This commit makes the formatted values' main constructors `const`,
so that they can be used in constant definitions.

`from_usize` constructors can't be made const because `try_into`
can't be used in `const` functions as of rustc 1.64.0. Same for
`Percent::from_ratio`: floating point arithmetic is not allowed.
2022-10-18 11:24:57 +02:00
François Laignel
384783b242 gst/format: introduce Constructor traits
Introduce a set of Constructor traits which are implemented on
integer of float depending on the formatted values. This traits
allows building formatted values using expressions such as:

```rust
let buffer_nb = 20.buffers();
let size = 42.k_bytes();
let duration = 15.minutes() + 30.seconds();
let quantity = 42.default_format();
let progress = 20.percent();
let progress = 0.2.percent_ratio();
```
2022-10-18 11:24:08 +02:00
Vivia Nikolaidou
39bb9abc3c caps: Add .structure() to CapsBuilder
Allows us to get the structure, to read fields after adding them to the
builder.
2022-10-14 16:24:51 +03:00
Sebastian Dröge
734afa998b gstreamer: Implement pad default functions as associated functions
Making them associated functions clearer that special care is required
and avoid conflicts with the same functions in ghostpad/proxypad.
2022-10-12 18:29:52 +03:00
Sebastian Dröge
7d10f9f4c8 Regenerate with latest gir/gir-files 2022-10-12 15:05:07 +03:00