Commit graph

1251 commits

Author SHA1 Message Date
Sebastian Dröge
b59f90e634 Don't use unnecessary RefCell wrappers for FnMut callbacks
They don't add any safety as this is via unsafe code anyway and are not
needed to get mutable references in this context anyway, while adding a
bit of runtime overhead.
2022-04-04 16:27:00 +03:00
Jan Alexander Steffens (heftig)
c447f6fd91 gstreamer: Add TaskPool bindings and subclassing
Fixes: https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/issues/14
2022-04-04 16:27:00 +03:00
Sebastian Dröge
4f186e0147 Don't unnecessarily borrow dereferenced values explicitly
warning: this expression borrows a value the compiler would automatically borrow
  --> gstreamer-rtsp-server/src/rtsp_session_pool.rs:16:5
   |
16 |     (&mut *func.borrow_mut())(&from_glib_borrow(pool)).into_glib()
   |     ^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `(*func.borrow_mut())`
   |
   = note: `#[warn(clippy::needless_borrow)]` on by default
   = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow
2022-04-04 16:11:28 +03:00
Sebastian Dröge
917c50c36b Use SPDX license format in Cargo.toml 2022-04-04 16:10:08 +03:00
Sebastian Dröge
d8169d7976 Update CHANGELOG.md for 0.18.6 2022-03-08 19:20:48 +02:00
Sebastian Dröge
883681bd4c Update versions to 0.18.6 2022-03-08 19:18:44 +02:00
Sebastian Dröge
5b24acb9c0 gstreamer: Require Send and not Sync for the values of an Array / List
`Sync` is more than required here: only sending of the values to another
thread is required.
2022-03-08 18:49:08 +02:00
Sebastian Dröge
24a2bb78a6 gstreamer: Simplify and speed up log message string construction
For pre-1.20 simply use `%s` as format string instead of escaping the
`%` inline while writing. This allows a simpler implementation and is
also faster, see https://github.com/gtk-rs/gtk-rs-core/pull/583.
2022-03-08 18:37:23 +02:00
Sebastian Dröge
cb885cb99e Update CHANGELOG.md for 0.18.5 2022-02-20 20:20:46 +02:00
Sebastian Dröge
a58efe2910 Update versions to 0.18.5 2022-02-20 20:17:18 +02:00
Marijn Suijten
0873db2a41 gstreamer/plugin_1_14: Use minor version 20 instead of 19 for v1_20
Now that gstreamer 1.20 is out all v1_20 plugins will be linked against
the 1.20 stable release, not the unstable 1.19 development release.
2022-02-18 17:01:37 +02:00
Marijn Suijten
a838b2ec36 Revert "sys: Link all v1_20 sys crates against library 1.19" - use 1.20
This reverts commit 8226c94110.

Now that GStreamer 1.20 is out, the v1_20 feature can and should link
directly to the stable release instead of the unstable 1.19 development
release.
2022-02-18 17:01:30 +02:00
Marijn Suijten
57cf66e26b gstreamer/sys: Move v1_18_3 system-deps metadata above v1_20
Keep the versions sorted numerically.
2022-02-18 17:01:23 +02:00
Sebastian Dröge
e5e2b8e682 gstreamer: Fix downcast_ref() / downcast_mut() impls on MiniObjectRef
They have to return the `Ref` type and not the owned type.
2022-02-18 17:01:17 +02:00
Sebastian Dröge
849440403c gstreamer: Add Debug impl for MiniObject / MiniObjectRef 2022-02-18 17:01:11 +02:00
Christian Meissl
af28e036a5 support for subclassing buffer pool 2022-02-18 17:00:58 +02:00
Sebastian Dröge
67291b6d17 Handle empty slices correctly
Passing `NULL` to `slice::from_raw_parts` is invalid.
2022-02-18 17:00:31 +02:00
Sebastian Dröge
5b2396405d Update versions to 0.18.4 2022-02-04 18:42:03 +02:00
Sebastian Dröge
86fd63585a Update README.md for 0.18.4 2022-02-04 18:40:47 +02:00
Sebastian Dröge
55ed03c395 Regenerate with latest gir files 2022-02-04 14:02:45 +02:00
Sebastian Dröge
d1b3313c09 Update versions to 0.18.3 2022-01-31 14:53:36 +02:00
Sebastian Dröge
5920807e0b Update CHANGELOG.md for 0.18.3 2022-01-31 14:53:36 +02:00
Sebastian Dröge
414d640ed9 Regenerate with latest gir and GStreamer gir files 2022-01-29 18:26:28 +02:00
Sebastian Dröge
691fed0f31 Get rid of fragile dependency and use GLib API instead 2022-01-29 18:24:08 +02:00
Sebastian Dröge
3c800faa07 Update CHANGELOG.md for 0.18.2 2022-01-24 16:45:55 +02:00
Sebastian Dröge
f4aa0c09a9 Update versions to 0.18.2 2022-01-24 16:42:43 +02:00
Sebastian Dröge
0d5132a7f0 gstreamer: Implement FromValue for mini object references 2022-01-24 16:03:49 +02:00
Sebastian Dröge
93a777e6c9 gstreamer: Minor cleanup 2022-01-24 16:03:42 +02:00
Sebastian Dröge
d2bc6d94f9 gstreamer: Add bindings for gst_debug_log_get_line() 2022-01-24 16:03:38 +02:00
Sebastian Dröge
89e0654f35 Update versions to 0.18.1 2022-01-18 16:52:43 +02:00
Sebastian Dröge
5f817b0443 Update CHANGELOG.md for 0.18.1 2022-01-18 16:51:35 +02:00
Sebastian Dröge
50c6f48728 message: Handle the Redirect message in Message::view() 2022-01-18 16:18:39 +02:00
Sebastian Dröge
656e815b23 gstreamer: Mark Structure and CapsFeatures as #[repr(transparent)] too 2022-01-18 15:47:21 +02:00
Jan Alexander Steffens (heftig)
5b8f4a8632 gstreamer: Split parsers for owned and borrowed views
When we have a view like `Caps<&EventRef>`, we can return a `CapsRef`
borrowing from the wrapped `EventRef`. This way, the `CapsRef` we return
can outlive the view itself.

This is in contrast to a `Caps<Event>` view which owns the `Event`.
Here, the `CapsRef` we return cannot outlive the view.

gstreamer-rs 0.18 consolidated code and treated everything like the
latter case. Fix this by duplicating the accessors for each case.

Fixes: https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/issues/367
2022-01-18 15:47:15 +02:00
Sebastian Dröge
03087ddfb0 gstreamer: Mark miniobject wrapper types as #[repr(transparent)]
That way they're treated everywhere exactly like a raw pointer.
2022-01-18 15:47:04 +02:00
Sebastian Dröge
1fbb6a3a1c Replace Foo::from_instance(foo) with foo.imp() 2022-01-18 15:46:59 +02:00
Sebastian Dröge
d778be0e5d Update CHANGELOG.md for 0.18.0 2022-01-16 13:12:39 +02:00
Sebastian Dröge
1657d89812 Update CHANGELOG.md for 0.17.4 2022-01-16 12:17:26 +02:00
Sebastian Dröge
b7f04289ab Add 0.18 version requirement to the dependencies from this repository 2022-01-15 17:28:01 +02:00
Sebastian Dröge
5fa5f04e04 Switch to 0.15 branches of gtk-rs and provide a version 2022-01-15 17:19:45 +02:00
Sebastian Dröge
711a4bb76e gstreamer: Silence a new clippy warning in the tests 2022-01-14 12:58:26 +02:00
Sebastian Dröge
605c633579 Ignore clippy::non_send_fields_in_send_ty lint
It's useless in its current shape and wrongly triggering on all types.

See https://github.com/rust-lang/rust-clippy/issues/8045
2022-01-13 23:38:11 +02:00
Sebastian Dröge
9eb479cf78 Regenerate everything 2022-01-12 15:40:36 +02:00
Sebastian Dröge
843d3749b7 caps: Add bindings for foreach(), map_in_place() and filter_map_in_place()` 2022-01-11 13:37:40 +00:00
Sebastian Dröge
1b46bca2db structure: Add bindings for foreach(), map_in_place() and filter_map_in_place()` 2022-01-11 13:37:40 +00:00
Sebastian Dröge
6d63180bfc Update for glib::Quark API changes 2022-01-11 12:50:13 +02:00
Guillaume Gomez
ac9b1e881c Add missing #[must_use] attribute for clippy 2022-01-04 19:43:07 +01:00
Guillaume Gomez
27dd305cb4 Regen to get #[must_use] attributes generated 2022-01-04 19:02:58 +01:00
Sebastian Dröge
bbcd221e8d Change from impl_() to imp() 2021-12-28 17:50:06 +02:00
Sebastian Dröge
1e18c59d2a Implement glib::ValueTypeOptional for various types 2021-12-16 17:40:39 +00:00