Sebastian Dröge
b9307ca258
gstreamer: memory: Fix assertions for copy_range/resize/share functions
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1392 >
2024-02-12 15:56:52 +02:00
Sebastian Dröge
b708208408
gstreamer: Add bindings for Message::structure_mut()
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1215 >
2023-02-09 20:43:09 +02:00
Sebastian Dröge
b54746cf62
gstreamer: Use obj()
instead of instance()
in the remaining places
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1202 >
2023-01-24 16:08:45 +02:00
Sebastian Dröge
4f6f7028b9
gstreamer: Mark MessageType
enum as non-exhaustive
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1202 >
2023-01-24 16:07:51 +02:00
Sebastian Dröge
57052b9417
Regenerate with latest gir files
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1202 >
2023-01-24 16:06:56 +02:00
Sebastian Dröge
ee2505388b
gstreamer: Handle NULL
caps when parsing the allocation query
...
With the next release this will be handled explicitly and setting no
caps will also be possible when creating allocation queries.
See https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1194
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1195 >
2023-01-19 16:25:15 +02:00
Sebastian Dröge
47a8d27a04
gstreamer: Fix memory leak in buffer pool subclassing test
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1193 >
2023-01-18 16:34:46 +02:00
Sebastian Dröge
a78177aacb
gstreamer: Add missing doc alias
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1193 >
2023-01-18 16:34:46 +02:00
Sebastian Dröge
251dc5c576
Regenerate with latest GStreamer gir files
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1176 >
2022-12-27 12:31:03 +02:00
Sebastian Dröge
58ea85c52c
gstreamer: Allow returning Handled
from BufferList
pad probes
...
This is handled exactly the same way as buffers.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1176 >
2022-12-27 12:28:09 +02:00
Sebastian Dröge
bb90b58547
Fix various new clippy warnings
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1168 >
2022-12-16 09:22:59 +02:00
Sebastian Dröge
dbd9447a26
Regenerate with latest gir / gir files
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1163 >
2022-12-12 13:25:01 +02:00
Sebastian Dröge
a8dd4aa165
gstreamer: Add DebugCategory::above_threshold()
to check if the category's threshold is above the given level
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1163 >
2022-12-12 13:22:45 +02:00
Sebastian Dröge
2cf5347d1b
gstreamer: Reduce some code duplication in the logging code
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1163 >
2022-12-12 13:17:35 +02:00
Sebastian Dröge
8c6758f4a4
gstreamer: Add bindings for new 1.22 debug log ID API
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1163 >
2022-12-12 13:17:21 +02:00
Sebastian Dröge
7fcd2f0cf6
gstreamer: Directly use fields for DebugCategory
getters
...
This allows for better optimizations as it doesn't go through an opaque
FFI function.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1163 >
2022-12-12 13:17:15 +02:00
Sebastian Dröge
51c8a12f35
gstreamer: Add PartialEq
impls between owned/borrowed miniobjects/structures
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1158 >
2022-11-27 19:54:18 +02:00
Sebastian Dröge
40143109da
gstreamer: Fix sticky event ordering for instant-rate-change
...
The event type for instant-rate-change events was poorly chosen, leading
to them being re-sent too late and even after EOS.
See https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3387
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1158 >
2022-11-27 19:53:39 +02:00
Sebastian Dröge
1087b63ac4
Regenerate with latest GStreamer gir files
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1158 >
2022-11-27 19:53:25 +02:00
Sebastian Dröge
048693202c
gstreamer: Implement FromIterator<Caps>
and Extend<Caps>
for Caps
...
This allows easily generating new/extending existing caps from an
iterator.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1158 >
2022-11-27 19:50:57 +02:00
Sebastian Dröge
38dfe1596d
Regenerate with latest gir
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1147 >
2022-11-12 17:38:39 +02:00
Elie Génard
250a65f02d
gstreamer: Add gst::Allocator
subclassing support
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1147 >
2022-11-12 17:34:25 +02:00
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
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
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
bf7c770457
Regenerate with latest 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
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
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
67e3183922
Regenerate with latest gir and gir-files
2022-10-18 18:16:51 +03:00
Sebastian Dröge
f9690817ad
Fix nullability handling in some functions in manual code
2022-10-18 18:15:01 +03: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
Vivia Nikolaidou
39bb9abc3c
caps: Add .structure() to CapsBuilder
...
Allows us to get the structure, to read fields after adding them to the
builder.
2022-10-14 16:24:51 +03:00
Sebastian Dröge
734afa998b
gstreamer: Implement pad default functions as associated functions
...
Making them associated functions clearer that special care is required
and avoid conflicts with the same functions in ghostpad/proxypad.
2022-10-12 18:29:52 +03:00
Sebastian Dröge
7d10f9f4c8
Regenerate with latest gir/gir-files
2022-10-12 15:05:07 +03:00
François Laignel
dcf6d16496
gst/format: new panicking constructors and some Percent fixes
...
Previous proposition for constructing specific formatted values was
to use an operation such as `42 * Default::ONE` which, in retrospect,
doesn't seem idiomatic.
This commit adds `from_u64` and `from_usize` constructors for most
formatted values. Having `from_usize` is convenient when dealing with
quantities related to containers indices or length.
This also fixes the `Percent` from float constructors from which was
derived the `ONE` constant as well as previous display implementation.
Also removed the `pub` specifier for `Undefined` inner value. It wasn't
removed in a previous commit as `Undefined` can use the full range of
the inner type. But now, it seems preferable not to expose the inner
value for proper encapsulation and so as to reduce the differences with
other formatted values (kind of least astonishment principle).
2022-10-11 13:25:53 +02:00
François Laignel
08551bb1bc
format/specific: don't expose inner as pub
...
... users would be able to bypass the range checks and build a
defined Rust value which would be interpreted as `None` in C code.
Added format module examples for formatted values constructions.
2022-10-10 19:23:35 +02:00
François Laignel
f6336b1be3
gst/format: fix Percent
Display
impl
...
- The `GST_FORMAT_PERCENT_SCALE` was not used to compute the value
to display.
- Added `Display` examples in the format module documentation.
- Simplified `glib_newtype_display` macro.
2022-10-10 18:44:59 +02:00
François Laignel
8e2c621a9f
gst/lib: cleanup format re-exports
2022-10-10 15:10:10 +02:00
Sebastian Dröge
a4d901ee63
gstreamer: Add an gst::element_error! variant that works on element implementations
2022-10-10 15:01:07 +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