Commit graph

1083 commits

Author SHA1 Message Date
Sebastian Dröge 62a2ad8a1e gstreamer: Fix serde serialization tests
ron serialization is now writing `1.0` instead of just `1`.
2022-06-24 11:12:38 +03:00
Stephan Seitz a4ba8b87cd gstreamer: add PadProbeId::as_raw()
This allows to convert PadProbeId to numberic values without
taking them by value (like `into_glib`).

See https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/issues/382#note_1391236
2022-06-07 20:34:21 +03:00
Sebastian Dröge 08953dfe66 gstreamer: Implement FusedStream for the Bus stream 2022-06-07 20:20:01 +03:00
Jan Alexander Steffens (heftig) 52ae5e435b gstreamer: Export subclass::TaskPoolFunction
This must be accessible in order to subclass TaskPool.
2022-04-22 17:35:21 +03:00
Sebastian Dröge 5a334cdcd3 gstreamer: Complete the Task bindings 2022-04-22 17:33:23 +03:00
Sebastian Dröge e3ee743740 Regenerate everything with latest gir 2022-04-04 16:27:00 +03:00
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 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
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
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 55ed03c395 Regenerate with latest gir files 2022-02-04 14:02:45 +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 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 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 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
Luca BRUNO c30eff771a
Regenerate with latest gir (gboolean return codes) 2021-12-14 11:43:30 +00:00
Paolo Borelli 97f59d34fa Add the has_name() fn to EventRef, MessageRef and StructureRef
They are handy and they match the C api
2021-12-14 09:59:39 +01:00
Sebastian Dröge 9bf5f641ff Regenerate with latest gir 2021-12-12 17:54:20 +02:00
Sebastian Dröge 1541fbf32a gstreamer: Add many new doc aliases for C function 2021-12-12 17:52:32 +02:00
Luca BRUNO d1cc8d1298
Regenerate with latest gir (assert safe gerror) 2021-12-07 12:07:45 +00:00
Sebastian Dröge ee1a5e8395 Add #[must_use] attribute to many builders 2021-12-04 10:26:08 +02:00
Sebastian Dröge f6dc14b946 Add a few missing docs aliases for constants 2021-12-03 10:19:22 +02:00
Sebastian Dröge 7d968d78bb Silence false needless_option_as_deref clippy warnings
See https://github.com/rust-lang/rust-clippy/issues/8047
2021-12-02 17:52:23 +02:00
Mathieu Duponchelle 8e6c08f8fd gstreamer/value_serde: fix nested structures
When serializing a structure, if it contains a nested structure
the serialization / deserialization code goes through value_serde,
which was lacking support for Structure.
2021-12-01 17:41:48 +00:00
Sebastian Dröge c965217e54 gstreamer: bufferlist: Implement buffer foreach functions around ControlFlow enum
This makes it clearer than a plain `bool` or `Result<Option<Buffer>, Option<Buffer>>`.

Also pass a `&Buffer` instead of a `&BufferRef` to the immutable foreach
function to allow taking references of the buffer outside the scope of
the closure by cloning instead of requiring a full copy.
2021-12-01 14:16:33 +02:00
Sebastian Dröge 15fbb17a09 gstreamer: buffer: Implement meta foreach functions around ControlFlow enum
This makes it clearer than a plain `bool` or `Result<bool, bool>`.
2021-12-01 14:02:50 +02:00
Tim-Philipp Müller e0e17b8b25 gstreamer: pad: use ControlFlow with custom enum for sticky_events_foreach() return value
... instead of Result<Option<Event>,Option<Event>> which isn't very nice.

And use static dispatch instead of dynamic dispatch.

Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/issues/361
2021-12-01 14:02:50 +02:00
Piotrek Brzeziński abd2d4dfd7 gstreamer: Add getters for ElementFactory/DeviceProviderFactory metadata 2021-11-28 21:00:05 +01:00