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