Commit graph

3240 commits

Author SHA1 Message Date
Sebastian Dröge c69ff617f5 ges: Don't generate version constants in the -sys crate
They will change with every new version and make the tests fail if
running against a different version.

See https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/issues/422

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1146>
2022-11-12 16:48:33 +02:00
Elie Génard f1c8869447 gstreamer: Add gst::Allocator subclassing support 2022-11-08 19:28:42 +00:00
Sebastian Dröge 58e51417c0 ci: Rebuild image to get updated GStreamer version 2022-11-08 19:07:48 +02:00
Sebastian Dröge d3543efec2 gstreamer: Manually implement Allocator::register()
Due to a bug it causes use-after-free in versions < 1.20.5, so work
around that here.
2022-11-08 19:07:48 +02:00
Sebastian Dröge 32c432655f Regenerate with latest GStreamer gir files 2022-11-08 18:15:34 +02:00
Sebastian Dröge 220da7f1e0 Update GStreamer gir files 2022-11-08 18:13:10 +02:00
Sebastian Dröge e2b38774cf ci: Update to gtk 4.8.2 2022-11-03 17:06:53 +02:00
Sebastian Dröge 7079768dd7 ci: Update to meson 0.63.3 2022-11-03 17:06:53 +02:00
Sebastian Dröge 19949fa2c9 ci: Update to Rust 1.65 2022-11-03 17:06:44 +02:00
Sebastian Dröge efb85f416e ci: Only warn about unknown lints instead of denying 2022-11-01 11:14:31 +02:00
Sebastian Dröge 01e24d2018 Fix various new clippy warnings 2022-11-01 11:10:57 +02:00
Sebastian Dröge 951f000622 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 06:51:39 +00:00
Sebastian Dröge c6cbf86012 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 06:51:39 +00:00
Sebastian Dröge 2cad43cd0f ci: Remove 0.16 and 0.17 docs
Otherwise the pages are too big.
2022-10-24 20:09:15 +03:00
Sebastian Dröge 2bffc4e5ec Fix 0.19.1 release date in the changelog 2022-10-24 12:34:21 +03:00
Sebastian Dröge 708ad14422 Update CHANGELOG.md for 0.19.1 2022-10-24 12:32:45 +03:00
Sebastian Dröge 90b8ee2022 Move from imp.instance() to imp.obj()
It's doing the same thing and is shorter.
2022-10-23 23:06:44 +03:00
François Laignel 87ea535bc1 gst/log: accept non-ref obj in macros 2022-10-23 20:44:38 +02:00
Sebastian Dröge 67ecf0823d ci: Add 0.19 release to the docs job 2022-10-22 21:12:40 +03:00
Sebastian Dröge 92215f4a63 Add missing README.md to new crates 2022-10-22 21:12:23 +03:00
Sebastian Dröge 031133c179 Update versions to 0.20.0 2022-10-22 20:27:42 +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
Rafael Caricio 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
Sebastian Dröge 7721030c15 Add some more information about setup on Windows/macOS to the README.md 2022-10-14 21:26:12 +05:30
Sebastian Dröge 4bdbe0022b examples: Fix compilation after pangocairo API changes 2022-10-14 18:11:42 +03:00