Sebastian Dröge
658b8c2231
gstreamer: meta: Pass an empty tag array instead of NULL to gst_meta_register_custom()
...
NULL gives a critical warning but an empty, NULL-terminated array gives
the desired result.
Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/issues/516
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1483 >
2024-07-18 13:04:42 +03:00
Sebastian Dröge
0ed46425f6
Regenerate with latest gir-files
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1481 >
2024-07-11 17:48:59 +03:00
Sebastian Dröge
9b76ef35cf
Regenerate with latest gir / gir files
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1480 >
2024-07-08 09:37:34 +03:00
Sebastian Dröge
94313e67c5
gstreamer: Unconditionally use gst_parse_context_copy()
...
It's available since 1.12.1 and the minimum supported version for the
bindings is 1.14 nowadays.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1478 >
2024-07-06 11:21:31 +00:00
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
Sebastian Dröge
adf3e9236a
gstreamer: childproxy: Include child property name in error message when lookup fails
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1472 >
2024-06-28 12:20:47 +03:00
Sebastian Dröge
7a5096b1e4
gstreamer: clock: Manually implement bindings for calibration related function
...
The rate is using two clock times in C but this is really just a u64.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1470 >
2024-06-21 16:34:27 +03:00
Sebastian Dröge
f3d7e18bcd
Update to system-deps 7
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1469 >
2024-06-20 20:58:27 +03:00
Sebastian Dröge
45ec7cedd9
Use Option::is_some_and(...)
instead of Option::map_or(false, ...)
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1466 >
2024-06-19 11:17:58 +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
Sebastian Dröge
6bab9de772
gstreamer: Actually re-export ByteSliceExt trait from prelude instead of the Dump struct
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1460 >
2024-06-12 19:35:55 +03:00
Sebastian Dröge
7c87874c28
gstreamer: Add bindings for generic message details API
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1457 >
2024-06-11 10:18:08 +03:00
Sebastian Dröge
b59a92b29e
Regenerate with latest gir
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1457 >
2024-06-11 08:29:32 +03:00
Bilal Elmoussaoui
e6ed67cbc5
Regenerate with properties annotations supports
...
Removes some duplicated getters/setters
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1452 >
2024-06-07 10:15:53 +00:00
Tim-Philipp Müller
c545154472
log: fix panic when using a log id with a formatted log message
...
Would panic because of a missing NUL terminator:
thread '<unnamed>' panicked at .. glib/src/gstring.rs:61:9:
assertion failed: !bytes.is_empty() && bytes[bytes.len() - 1] == 0
3: glib::gstring::GStr::from_utf8_with_nul_unchecked
4: gstreamer::log::DebugCategory::log_id_unfiltered_internal
at gstreamer-rs/gstreamer/src/log.rs:465
5: gstreamer::log::DebugCategory::log_id_unfiltered
at gstreamer-rs/gstreamer/src/log.rs:425
Also enable logging on the category, so the logging code paths
are actually run here in the tests.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1451 >
2024-06-02 17:32:26 +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
Bilal Elmoussaoui
10aff0d66e
Regenerate with latest gir
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1450 >
2024-06-01 15:14:58 +02:00
Sebastian Dröge
9e2c6268cb
gstreamer: Use usize instead of u32 for various indices
...
This affects buffers, caps, caps features, structures and tag lists and
makes it easier to use them with other Rust APIs that use usize-based
indicing.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1445 >
2024-05-22 08:15:08 +00:00
Tim-Philipp Müller
4cda565a39
gstreamer: bufferlist: add another test for foreach_mut
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1446 >
2024-05-22 06:59:40 +00:00
Sebastian Dröge
805cd6c591
gstreamer: bufferlist: Change remove function to take a range instead of index + length
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1444 >
2024-05-21 08:21:17 +03:00
Sebastian Dröge
a0e58ec359
gstreamer: bufferlist: Check index/length when removing a buffer
...
Out of range values give assertions in the C function.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1444 >
2024-05-21 08:19:30 +03:00
Sebastian Dröge
9f151466b7
gstreamer: bufferlist: Check for out of range indices before trying to get buffer
...
Passing an index bigger than the length will cause an assertion in the C
function.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1444 >
2024-05-21 08:11:41 +03:00
Seungha Yang
f59029b57c
event: Fix leak in SelectStreamsBuilder
...
gst_event_new_select_streams() does not take ownership of GList
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1442 >
2024-05-16 14:30:52 +00: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
Sebastian Dröge
5af4a262b8
Regenerate with latest GStreamer gir files
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1440 >
2024-05-10 10:09:10 +03:00
Sebastian Dröge
2a9d0d035f
Fix various new 1.78 clippy warnings
...
Quite a bit of API was accidentally not exported but apparently nobody
was using it.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1437 >
2024-05-02 18:13:27 +03:00
Sebastian Dröge
fe1fe5b114
gstreamer: Use a reference to a pointer of correct mutability for from_glib_ptr_borrow()
...
This hopefully makes it easier to use and harder to get the returned
lifetime wrong.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1436 >
2024-04-30 15:39:15 +03:00
Sebastian Dröge
873aeff133
Regenerate with latest GStreamer gir files
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1435 >
2024-04-30 12:36:37 +03:00
Nick Steel
b7b5352353
log: Log
trait adapter around the GStreamer debug system
...
Allows usage of normal `log` crate macros, and for other crates
using those macros to have their log messages go to the GStreamer
debug logs.
This implementation is based on the one found in Servo.
Fixes #187
DebugCategoryLogger is optional via 'log' feature
check category above threshold
skip_assert_initialized for constructor and helper
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1426 >
2024-04-29 16:16:47 +01:00
Sebastian Dröge
57050f66c6
Regenerate with latest gir / gir-files
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1429 >
2024-04-27 11:31:11 +03:00
François Laignel
953e3747f2
Pad: allow building a Pad with an automatically generated name
...
For convenience, the `Pad` builder checks a name is provided when a wildcard-
named template is used. For `GhostPad`s, the builder tries to assign the name of
the target `Pad` making sure the provided `name` conforms to the `PadTemplate`.
This commit adds a function to optionally keep the `gst::Object` automatically
generated unique `Pad` name (such as `ghostpad4`) and reorganises name handling
so it is processed when `build` is invoked.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1428 >
2024-04-26 09:57:28 +00:00
François Laignel
db03c8edd1
Add field_if_some setter for builder ClockTime fields
...
Optional `ClockTime` fields already implemented their setters in such a way
that they could accept either `Option<ClockTime>` or `ClockTime`. This commit
adds `field_if_some()` setter variants for builder `ClockTime` builder fields
for consistency with other builder fields.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1424 >
2024-04-17 17:15:41 +02:00
François Laignel
ea25c9262b
Add field_if_some setter for builders
...
This commit adds `_if_some()` variants for builder field setters.
The variants aim at improving usability when setting optional fields.
E.g. currently, we need to write something like:
```rust
let opt_value = ...;
let mut sb = gst::Structure::builder("test")
.field("mandatory_field", "mandatory");
if let Some(value) = opt_value
sb = sb.field("optional_field", value);
}
let s = sb.build();
```
With `_if_some()`, this can be written like this:
```rust
let opt_value = ...;
let s = gst::Structure::builder("test")
.field("mandatory_field", "mandatory")
.field_if_some("optional_field", opt_value)
.build();
```
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1424 >
2024-04-17 17:15:39 +02:00
Sebastian Dröge
86d02890ca
Regenerate with latest gir / gir files
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1410 >
2024-03-19 09:57:38 +02:00
Dave Patrick Caberto
353e3d1611
fraction: refer to numer and denom more consistently
...
This also lessens the tendency to confuse num with number.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1404 >
2024-03-01 18:30:19 +08:00
Dave Patrick Caberto
b5cb4ae831
fraction: add const new_raw and from_integer methods
...
These are direct counterparts to their respective Rational32 constructors.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1404 >
2024-03-01 18:28:39 +08:00
Sebastian Dröge
18a02f6d34
gstreamer: Update serde flags tests for new ObjectFlags
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1401 >
2024-02-26 11:29:19 +00:00
Sebastian Dröge
d5917be045
Regenerate with latest GStreamer gir files
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1401 >
2024-02-26 11:29:19 +00:00
Sebastian Dröge
c8b98dde8c
gstreamer: bus: Handle all previously queued messages too in the BusStream
...
Before the stream was created, some messages might've been queued on the
bus. For more similar behaviour with the bus watch, first pop all the
queued messages before handling new messages.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1398 >
2024-02-21 12:09:14 +02:00
Olivier Crête
28931e2f09
meta: Make a generic transform method with a specific trait for each transform
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1388 >
2024-02-16 14:28:26 -05:00
Olivier Crête
b10f395c2c
meta: Add modules containing the tags
...
Export the tags as both quark or string
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1387 >
2024-02-16 08:59:36 +00:00
Benjamin Gaignard
22796cee0c
meta: Add is_registered function for CustomMeta
...
Test if a Meta type is already registered.
It is useful to know if a custom metadata type has already
been registed to avoid registererd twice and get asserts.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1391 >
2024-02-13 08:21:38 +00:00
Sebastian Dröge
798ee29b98
structure: Call _full()
serialize function for GST_SERIALIZE_FLAG_STRICT
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1393 >
2024-02-12 16:10:24 +02:00
Sebastian Dröge
040a194700
tags: Add new ContainerSpecificTrackId
tag
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1393 >
2024-02-12 16:09:28 +02:00
Sebastian Dröge
b69fee9abe
Regenerate with new GStreamer gir files
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1393 >
2024-02-12 16:06:44 +02:00
Sebastian Dröge
f82b9cc197
meta: Add support for 1.24 Meta
clear function
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1390 >
2024-02-09 10:25:32 +02:00
Sebastian Dröge
12c9ada9e0
meta: Fix MetaRefMut::upcast_mut()
to return a mutable reference
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1390 >
2024-02-09 10:24:40 +02:00
Olivier Crête
7ec3c8713a
analytics: Add bindings for apps/plugins
...
The whole API to use the Analytics meta is implemented.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1358 >
2024-02-07 12:21:54 +02:00
Sebastian Dröge
90bb9182c2
Regenerate with latest gir / gir-files
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1385 >
2024-02-06 09:55:42 +02:00
Sebastian Dröge
a3b3017d75
gstreamer: Re-export / manually implement new standalone functions
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1385 >
2024-02-06 09:55:42 +02:00
Sebastian Dröge
a51b5bdfd3
Fix a new clippy warning
...
warning: this bound is already specified as the supertrait of `FusedStream`
--> gstreamer/src/bus.rs:314:15
|
314 | ) -> impl Stream<Item = Message> + Unpin + FusedStream + Send + 'a {
| ^^^^^^^^^^^^^^^^^^^^^^
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#implied_bounds_in_impls
= note: `#[warn(clippy::implied_bounds_in_impls)]` on by default
help: try removing this bound
|
314 - ) -> impl Stream<Item = Message> + Unpin + FusedStream + Send + 'a {
314 + ) -> impl Unpin + FusedStream<Item = Message> + Send + 'a {
|
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1383 >
2024-02-05 12:07:15 +02: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
Bilal Elmoussaoui
ba91648bd5
Regenerate with latest gir
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1382 >
2024-02-03 08:48:44 +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
Olivier Crête
e13e9a7a7f
Regenerate with updated generator
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1380 >
2024-01-29 18:30:49 -05:00
Piotr Brzeziński
047f4a3f75
gstreamer: add gst_macos_main()
...
Unlike the C version, this allows for any arbitrary type of return value.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1377 >
2024-01-29 13:55:16 +01:00
Sebastian Dröge
b5c7c402b9
Add MiniObject::from_glib_ptr_borrow()
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1374 >
2024-01-05 22:29:43 +02:00
Sebastian Dröge
e35782a3a4
Add accessor for owned Buffer
to read-mapped AudioBuffer
/ MappedBuffer
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1374 >
2024-01-05 22:29:37 +02:00
Sebastian Dröge
0b4c602c6f
Provide a more convenient function for setting other fields on message/event builders
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1372 >
2023-12-31 15:53:10 +02:00
Sebastian Dröge
3b3c3baee5
Fix / work around a few new clippy 1.75 warnings
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1370 >
2023-12-22 16:33:41 +02:00
Sebastian Dröge
5f01bcf8f4
buffer: Fix range end calculations
...
And add various tests to cover for this.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1369 >
2023-12-22 15:09:31 +02:00
Sebastian Dröge
52bd716a80
meta: Add support for (de)serializing metas
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1368 >
2023-12-21 13:47:11 +02:00
Sebastian Dröge
26611a66bd
Regenerate with latest GStreamer gir files
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1368 >
2023-12-21 13:47:11 +02:00
Sebastian Dröge
003ebbdf1c
structure: Manually bind GST_SERIALIZE_FLAG_STRICT
...
As the flag changes the nullability of `gst_structure_serialize()` and
adding a new C function is apparently too much of a hassle for C
developers, add a new `serialize_strict()` function here that always
sets this flag and can fail.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1368 >
2023-12-21 13:47:11 +02:00
Sebastian Dröge
8b9862052b
gstreamer: memory: Simplify and correct offset/size calculations in mem_share()
...
This is all supposed to do unsigned wrapping arithmetic to calculate the
new offsets and sizes, despite input parameters being signed integers.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1363 >
2023-12-17 13:15:55 +02:00
Sebastian Dröge
5c88bd0b5f
gstreamer: memory: Use ranges instead of offset/size parameter pairs
...
Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/issues/497
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1363 >
2023-12-17 13:15:38 +02:00
Sebastian Dröge
96de51a7b7
gstreamer: buffer: Use ranges instead of offset/length parameter pairs
...
Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/issues/497
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1363 >
2023-12-17 11:41:01 +02:00
Sebastian Dröge
cd30854c2b
gstreamer: memory: Fix assertions for copy_range/resize/share functions
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1363 >
2023-12-17 11:37:58 +02:00
Sebastian Dröge
33e3e25b49
gstreamer: buffer: Add bindings for Buffer::map_range_readable()
and _writable()
...
Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/issues/496
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1363 >
2023-12-17 11:37:56 +02:00
Olivier Crête
248b6d2f31
gstreamer: meta: Implement Clone trait on MetaRef
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1365 >
2023-12-13 18:05:27 -05:00
Sebastian Dröge
2139f368e9
gstreamer: buffer: Add Buffer::dump()
and Buffer::dump_range()
...
Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/issues/495
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1362 >
2023-12-11 18:34:13 +02:00
Sebastian Dröge
e72a3bfc8d
gstreamer: Improve support for dumping memories and add same functionality to byte slices
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1362 >
2023-12-11 16:05:34 +00:00
Sebastian Dröge
34fee6b691
gstreamer: formatted values: Implement ClockTime::absdiff()
and on related types
...
Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/issues/494
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1364 >
2023-12-10 20:49:17 +02:00
Sebastian Dröge
ceed45cfd7
gstreamer: Optimize Buffer
/ Memory
from_slice()
to have fewer allocations
...
Instead of using `gst_memory_new_wrapped_full()` and boxing the data,
create an GstAllocator subclass that allows allocating memories that
store the data inline.
By avoiding the box, one additional heap allocation per memory is
avoided.
Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/issues/498
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1357 >
2023-12-05 10:51:28 +02:00
Guillaume Desmottes
a29d7c0e19
gstreamer: rename util_get_timestamp() to get_timestamp()
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1355 >
2023-12-04 17:07:21 +01:00
Guillaume Desmottes
f055c113ac
streamer: do not publicly import functions
...
All the functions are re-exported in the root crate.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1355 >
2023-12-04 16:15:51 +01:00
Guillaume Desmottes
9bcf48050b
gstreamer: move update_registry() as Registry method
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1355 >
2023-12-04 16:15:51 +01:00
Guillaume Desmottes
a649e7dead
gstreamer: move parse_* functions to their own module
...
Better namespacing so the API is more Rust-y.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1355 >
2023-12-04 16:15:51 +01:00
Guillaume Desmottes
f255b82b55
gstreamer: move debug_* functions to their own module
...
Better namespacing so the API is more Rust-y.
Fix #500
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1355 >
2023-12-04 12:46:59 +01:00
Sebastian Dröge
59420b1590
Regenerate with latest gir
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1353 >
2023-11-29 11:59:03 +02:00
Sebastian Dröge
ca8309a5dd
Simplify various raw pointer casts everywhere
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1353 >
2023-11-29 11:24:47 +02:00
Sebastian Dröge
897c7dfd39
gstreamer: Remove deprecated APIs
...
They were deprecated in the previous release or even older releases.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1352 >
2023-11-23 13:38:16 +02:00
Sebastian Dröge
4c3de8b80e
Update versions of all autogenerated files
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1348 >
2023-11-16 20:53:08 +02:00
Sebastian Dröge
3ac254d34c
gstreamer: pad: Remove "caps" property getter
...
Only only leave the notify signal connection function. The property
getter is the same as `current_caps()`, which is more lightweight.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1345 >
2023-11-11 19:21:20 +02:00
Sebastian Dröge
6403d3c0ee
Regenerate with latest gir
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1343 >
2023-11-10 16:51:04 +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
f471501df5
gstreamer: meta: Add MetaRef::copy()
for copying a meta between buffers
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1338 >
2023-11-03 11:55:20 +02:00
Sebastian Dröge
eb6d3a6c6c
gstreamer: meta: Add as_meta_ref()
to MetaRefMut
...
This reduces code duplication between `MetaRef` and `MetaRefMut`.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1338 >
2023-11-03 11:49:41 +02:00
Sebastian Dröge
86d470e82c
gstreamer: meta: Give returned tags array an arbitrary lifetime
...
The tags are statically stored.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1338 >
2023-11-03 11:48:23 +02:00
Sebastian Dröge
e84af103a1
Regenerate with latest gir / gir-files
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1335 >
2023-11-02 15:09:20 +02:00
Fabian Orccon
b901322c46
gstreamer: rank: Do not implement gst::Rank as enum
...
Rank is not limited to known types like GST_RANK_NONE,
GST_RANK_MARGINAL, GST_RANK_SECONDARY and GST_RANK_PRIMARY, but it
can be whatever arbitrary number.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1327 >
2023-11-02 13:32:00 +02:00
Sebastian Dröge
bd4122e334
gstreamer: error: Allow using variable expansion in loggable_error!
macro
...
Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/issues/490
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1332 >
2023-10-26 11:49:58 +00:00
Sebastian Dröge
bd9b1d6e38
gstreamer: meta: Move has_tag()
and tags()
getters to MetaRef
...
On `MetaAPI` only the static meta API type is known and based on that
it's not possible to work with the tags of a specific meta instance's
API.
As the methods take a `&self` anyway they would be expected to check the
value at hand instead.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1331 >
2023-10-26 13:41:50 +03:00
Sebastian Dröge
a26fcaf0ad
gstreamer: meta: Add upcast_ref()
function to go from a specific to a generic meta
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1331 >
2023-10-26 13:41:50 +03:00
Sebastian Dröge
16acea71d4
gstreamer: meta: Remove useless API on Meta
that can't be called anyway
...
`Meta` only exists inside a `MetaRef` / `MetaRefMut` and that already
provides exactly the same functions for all meta types.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1331 >
2023-10-26 13:41:47 +03:00
Sebastian Dröge
d5ba6c1336
gstreamer: meta: Add some more AsRef
and AsMut
impls
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1331 >
2023-10-26 13:38:07 +03:00
Sebastian Dröge
4d19d7b0b6
gstreamer: format: Implement some more conversion traits
...
Specifically, `From<$formatted_type> for $inner` and
`TryFrom<$formatted_type> for usize` for some types.
Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/issues/492
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1329 >
2023-10-25 12:09:45 +03:00
Sebastian Dröge
414019af21
gstreamer: Implement Default
trait for AllocationParams
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1328 >
2023-10-24 15:04:14 +00:00
Sebastian Dröge
a04ed127af
gstreamer: Fix API typo in owned ReferenceTimestampMeta
reference getter
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1325 >
2023-10-16 15:45:12 +03:00