Commit graph

3092 commits

Author SHA1 Message Date
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
dc11c7312a Update GStreamer gir files
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1147>
2022-11-12 17:33:46 +02:00
Sebastian Dröge
979a15993b ci: Update to gtk 4.8.2
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1147>
2022-11-12 17:33:34 +02:00
Sebastian Dröge
891a768e1b ci: Update to meson 0.63.3
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1147>
2022-11-12 17:33:22 +02:00
Sebastian Dröge
0aac683ec9 ci: Update to Rust 1.65
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1147>
2022-11-12 17:33:18 +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
5dd56d8c43 Update Cargo.lock 2022-10-27 15:37:29 +03:00
Sebastian Dröge
59c081c230 examples: glupload: Set sync point on the GL buffer as soon as possible
And also add API for getting the GL context from a `GLBaseMemory`.
2022-10-25 10:05:04 +03:00
Sebastian Dröge
b67887c8dd examples: glupload: Fix iterating over elements inside glsinkbin
Some elements might not have a factory so handle this gracefully instead
of erroring out.
2022-10-25 10:05:03 +03: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
0db0fa7270 Update Cargo.lock 2022-10-24 11:23:10 +03:00
Sebastian Dröge
20120fda3d Update versions to 0.19.1 2022-10-24 11:23:00 +03:00
Sebastian Dröge
af58f2d913 Update Cargo.lock 2022-10-24 10:55:34 +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
82c60a0a93 Add missing README.md to new crates 2022-10-22 21:11:38 +03:00
Sebastian Dröge
72f7444805 Add Cargo.lock 2022-10-22 20:32:53 +03:00
Sebastian Dröge
dba98bd7c7 Add 0.19 version requirement to all dependencies from this repository 2022-10-22 20:24:47 +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
ccd53dc17f ci: Don't run cargo update 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
47394a437f tutorials: Update to termion 2 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
f439a0ab85 Update GStreamer 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
Sebastian Dröge
2a4e1069a1 app: Add an AppSrc/AppSink builder
These allows to construct these elements explicitly together with all the
properties instead of going via gst::ElementFactory::make().
2022-10-22 10:19:49 +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
Tim-Philipp Müller
bfbcdb5925 ci: make windows msrv job manual to reduce load on windows runners
https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/issues/417
2022-10-20 13:56:41 +01: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
5495acf77d rtp: Export functions 2022-10-18 19:21:39 +03: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
Sebastian Dröge
935609ad6c Update GStreamer gir files 2022-10-18 18:15:01 +03:00
Sebastian Dröge
cc59067811 Update gir files 2022-10-18 18:15:01 +03:00
Sebastian Dröge
77252708a4 Update gir 2022-10-18 18:15:01 +03:00
20a493ee49 Implement MpegTs safe bindings
Adds safe bindings generated from Gir for the MpegTS library. Not all
object bindings are generated. This contains a subset of the
library that allows to use it's basic functionality.

Part of the API is written manually to add some extra methods like
setting struct field values and other useful features.
2022-10-18 13:55:09 +00: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
Sebastian Dröge
f5a902ba49 example: Update for pango API changes 2022-10-17 19:55:42 +03:00