Sebastian Dröge
a871f71515
gstreamer: Use obj = x
instead of obj: x
in debug log macros
...
And deprecate the old usage. This gives better tooling support, and
especially allows rustfmt to format the macro body correctly.
Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/issues/513
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1477 >
2024-07-06 14:08:03 +03:00
François Laignel
8527c0e39e
Add new setters for collection Value setters in Builders
...
E.g. (also applies to `property`):
* `field_from_iter()`,
* `field_if_not_empty()`.
Use a macro to factorize implementation & documentation of `field` / `property`
convenience setters.
Also:
* add some `*_if_not_empty` for some iterator based setters.
* add `*_if` for predicate based setters.
Related to https://github.com/gtk-rs/gtk-rs-core/pull/1377
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1431 >
2024-06-14 17:00:36 +02:00
Sebastian Dröge
f99c519a00
Fix various new 1.79 clippy warnings
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1461 >
2024-06-14 08:08:27 +03:00
Bilal Elmoussaoui
4ebec84f5e
Adapt to no longer renamed ffi crates
...
Allows us to set all the crates in the main workspace file, so changing
their versions or branch is much simpler and reduce the amount of noise
in the diff
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1450 >
2024-06-02 11:20:55 +02:00
Sebastian Dröge
b468280353
Improve code generation with panic=abort around panic handling code
...
None of that can ever be called in that case but the compiler can't know
that in more complicated cases like these. Handling it explicitly allows
no handling code to be generated at all here, like would already happen
everywhere else.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1441 >
2024-05-16 16:38:15 +03:00
Bilal Elmoussaoui
aaea288abf
Adapt to no longer re-exported traits
...
Some of the traits were moved to prelude or translate
and no longer in the main scope of the crate
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1382 >
2024-02-03 10:48:37 +01:00
Sebastian Dröge
193bcbf055
Switch from once_cell to std::sync::OnceLock where it makes sense
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1379 >
2024-01-31 14:59:54 +02:00
Sebastian Dröge
4b3d9f586e
element: Add catch_panic_future()
helper function for subclasses
...
This allows wrapping a future in a way that panics are converted to
error messages on the object.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1339 >
2023-11-07 10:43:20 +02:00
Sebastian Dröge
a6470f13c9
Fix various new 1.73 clippy warnings
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1317 >
2023-10-03 17:44:12 +03:00
Bilal Elmoussaoui
f9fa7f55fc
Use re-exported once_cell
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1293 >
2023-07-06 16:50:35 +03:00
Bilal Elmoussaoui
8cf099f0ab
Seal manual traits
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1292 >
2023-07-06 14:21:45 +03:00
François Laignel
9453d63631
gst/pad: [Ghost]PadBuilder: inherit name from template or target when possible
...
This commit adds convenience auto naming in the following cases:
* When building from a non wildcard-named template, the name of the template is
automatically assigned to the Pad. User can override with a specific name by
calling `name()` on the `PadBuilder`.
* When building with a target and no name was provided via the above, the
GhostPad is named after the target.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1255 >
2023-05-12 10:55:46 +00:00
François Laignel
7cb5473ba6
gst: Pad move name definition to builders
...
Also apply consistent naming for builder/non-builder constructors.
See discussion in:
https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/issues/448#note_1799092
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1255 >
2023-05-12 10:55:46 +00:00
François Laignel
13f0483a44
gst: Manually impl Bin & Pipeline constructors
...
Set `Bin` & `Pipeline` constructors to manual implementation to remove
optional `name` argument (use builder to specify name).
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1255 >
2023-05-12 10:55:46 +00:00
Sebastian Dröge
3699da7314
Remove dox feature and replace by docsrs configuration
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1256 >
2023-05-04 09:19:29 +03:00
Guillaume Desmottes
01d3cef73e
gstreamer: element: more generic (un)link_many() API
...
No longer enforces to pass an array of references.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1230 >
2023-03-09 14:27:25 +00:00
Guillaume Desmottes
c4a968a403
gstreamer: bin: more generic {add,remove}_many() API
...
No longer enforces to pass an array of references.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1230 >
2023-03-09 14:27:25 +00:00
Sebastian Dröge
478606e44c
Use glib::Object::new()
instead of new_default()
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1209 >
2023-01-31 12:05:53 +02:00
Sebastian Dröge
f24b38470b
Fix various new clippy warnings
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1203 >
2023-01-25 10:18:33 +02:00
Sebastian Dröge
4b99aae824
gstreamer: Create plugins for version 1.22 if selected
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1201 >
2023-01-24 12:58:32 +02:00
Sebastian Dröge
d5e24b9fbd
Update various object construction functions to more efficient approaches
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1196 >
2023-01-22 09:48:51 +02:00
Sebastian Dröge
38dd1f462b
gstreamer: Use obj()
instead of instance()
in the remaining places
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1196 >
2023-01-22 09:14:50 +02:00
Sebastian Dröge
8aa3e4417c
gstreamer: Fix another typo in macro
2023-01-16 11:30:56 +02:00
Sebastian Dröge
2a11b9d2cf
gstreamer: Fix typo in macro
2023-01-16 11:30:08 +02:00
Sebastian Dröge
3e2eb6e652
gstreamer: Reduce code bloat in panic handling
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1191 >
2023-01-16 11:08:02 +02:00
Sebastian Dröge
003554876c
Update various APIs to use glib::GStr
...
Currently only covers what is needed to keep code compiling, plus
everything caps/structure/tags related.
This avoids unnecessary heap allocations for adding the NUL-terminator
of C strings, and especially makes caps/structure handling as efficient
as in C.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1190 >
2023-01-15 21:05:57 +02:00
Sebastian Dröge
aa23ddbbdb
gstreamer: Simplify element subclass panic catching functions
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1188 >
2023-01-14 17:13:53 +02:00
Sebastian Dröge
f235dc987d
Inline various trivial functions
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1177 >
2023-01-11 11:33:54 +02:00
Sebastian Dröge
8d30bcbf4b
Use IntoGlibPtr
trait instead of to_glib_full()
where appropriate to reduce unnecessary refcounting/copying
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1183 >
2023-01-05 12:09:57 +02:00
Sebastian Dröge
567ce0a3bf
Group and merge imports in all manual code
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1182 >
2023-01-04 13:25:17 +02:00
Sebastian Dröge
6ff5f89832
gstreamer: Fix memory leak in buffer pool subclassing test
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1180 >
2023-01-03 10:41:35 +00:00
Sebastian Dröge
0ed3d95c60
gstreamer: Use glib::StrV
internally instead of a custom version of it
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1180 >
2023-01-03 10:41:35 +00:00
Sebastian Dröge
e3ad1918dc
Fix various new clippy warnings
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1164 >
2022-12-13 11:29:45 +02:00
Sebastian Dröge
5a0152b469
gstreamer: tracer: Pass &QueryRef
instead of &Query
to the functions
...
To make it impossible for implementor to keep around a reference to the
query as that would break element code that actually tries to answer the
query.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1152 >
2022-11-21 12:40:37 +02:00
Elie Génard
f1c8869447
gstreamer: Add gst::Allocator
subclassing support
2022-11-08 19:28:42 +00: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
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
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
7bd4d770ff
gstreamer: Remove unnecessary trait bounds
2022-10-10 15:01:07 +03:00
Sebastian Dröge
f17781e188
Change *Impl trait methods to only take &self and not Self::Type in addition
2022-10-10 15:01:07 +03:00
Sebastian Dröge
25c53c4276
gstreamer: Implement new logging variants that work ObjectSubclass
values
2022-10-10 15:01:07 +03:00
Sebastian Dröge
dac3cf67f4
Update for additional translation trait impls in gtk-rs-core
2022-10-08 15:35:37 +03:00
Sebastian Dröge
3cd902513d
Update for glib::Object::new() API changes
2022-10-07 21:45:01 +03:00
Sebastian Dröge
c64b6ac68b
tracer: Use Results instead of plain success/failure enums
...
This makes it more convenient to handle the success/failure cases in
tracer implementations and is more consistent.
2022-10-02 10:45:14 +03:00
Sebastian Dröge
ade0aad6b0
tracer: Make buffer in pull-range-post function optional
...
Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/issues/410
2022-10-02 10:36:05 +03:00
Sebastian Dröge
1b10c5324d
gstreamer: Add BinImpl::do_latency()
2022-09-16 06:54:55 +00:00
Sebastian Dröge
65629426cb
tracer: Add bindings for new pad chain hooks
2022-06-30 08:46:06 +03:00
Sebastian Dröge
c61d913ec6
tracer: Add support for the 1.20 "plugin-feature-loaded" hook
2022-06-29 10:13:59 +03:00
Sebastian Dröge
9e77ab3212
tracer: Re-order trait functions slightly for the order to make more sense
2022-06-29 10:13:36 +03:00
Guillaume Gomez
c1d3ed5eac
Use IntoGlibPtr trait instead of implementing into_ptr
2022-05-07 13:38:11 +02:00