Sebastian Dröge
9d9522016b
gstreamer: Update manual code to 2018 edition
2020-11-22 19:15:20 +02:00
Marijn Suijten
bd75778fcb
Add doc(cfg()) on all manual files
2020-11-19 16:39:31 +01:00
Sebastian Dröge
7aeb0e8f92
gstreamer/buffer: Don't implement ExactSizeIterator on meta iterator
...
We don't actually know the number of items and using the trait would
panic.
2020-10-09 11:35:19 +03:00
Sebastian Dröge
01eaf76b31
gstreamer/buffer: Add bindings for foreach_meta() and foreach_meta_mut()
...
Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/issues/268
2020-07-03 10:28:59 +03:00
Sebastian Dröge
af01f1bc67
gstreamer: Simplify MiniObject bindings by removing one layer of abstraction
...
And instead directly implementing this via the macro on the target
types.
2020-06-30 11:06:02 +03:00
Guillaume Desmottes
6a72f65b3b
gstreamer: ignore cognitive_complexity warnings
...
Those are just long tests.
2020-04-21 10:17:46 +02:00
Sebastian Dröge
42d09c2834
gstreamer/buffer: Move BufferCursor/BufferRefCursor into its own module
...
It's quite a bit of code and can be kept nicely separate.
2020-04-07 12:59:24 +03:00
Sebastian Dröge
ee3a8caa7d
gstreamer/buffer: Add various tests for the BufferCursor / BufferCursorRef
2020-04-06 20:15:51 +03:00
Sebastian Dröge
a884a419db
gstreamer/buffer: Add a BufferCursor / BufferCursorRef helper structs
...
This implements Read/Seek or Write/Seek and allows to read/write/seek
into the buffer without merging the memories inside.
The writer also only maps the memory write-only as compared to all other
ways of accessing the buffer/memory data in a writable way, which have
to map it read-write.
See https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/425
for a similar API proposal for GStreamer core.
2020-04-06 20:15:35 +03:00
Sebastian Dröge
9b782b4dfa
gstreamer/buffer: Add tests for various memory related buffer API
2020-04-06 19:29:19 +03:00
Sebastian Dröge
9e0c980a49
gstreamer/buffer: Add iterators for iterating over the memories inside a buffer
...
With immutable, mutable and owned variant.
2020-04-06 19:28:28 +03:00
Sebastian Dröge
2b70db3a9e
gstreamer/buffer: Add BufferRef::peek_memory_mut() function
...
This gives a mutable reference to the given memory and fails if the
memory is not actually writable.
2020-04-06 19:27:40 +03:00
Sebastian Dröge
9d5ae8ed14
gstreamer: Don't take mini objects by value for append() and similar operations
...
Compared to
let foo = Foo::bar(foo);
the new form is easier to follow
foo.bar();
2020-03-07 00:31:30 +02:00
Sebastian Dröge
7230aee069
Switch everything from lazy_static to once_cell::Lazy
...
Fewer macros, faster compile-time and the Lazy type will likely end up
in the standard library in a similar form to this.
2020-01-22 19:57:41 +02:00
Sebastian Dröge
d3c77f400d
Don't derive Debug impls for generic types where the type parameters don't have to impl Debug themselves
...
This allows to use MappedBuffer and similar types to be properly
debug-printed.
Also change VideoFrame/VideoFrameRef/RTPBuffer from a tuple struct to a
struct with proper field names to make the code easier to understand.
2020-01-22 19:10:04 +02:00
Sebastian Dröge
2ba5105b80
Implement Sync/Send for more types and don't implement Send for TypeFind
...
They can actually be shared with multiple threads at the same time
safely as all functions requiring an immutable reference are
thread-safe.
OTOH TypeFind can't be shared safely between different threads as not
all implementations of the TypeFind struct are thread-safe.
2019-12-18 18:37:44 +02:00
Sebastian Dröge
be3c378f28
Use Results instead of Options where they signal an error instead of just a missing value
...
Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/issues/216
2019-12-17 22:21:28 +02:00
Sebastian Dröge
007f80ca32
buffer: Allow setting/unsetting buffer flags
...
As there are extension flags types, we need separate setter/unsetter
functions for the flags, or otherwise we would always clear the
extension flags types (e.g. GstVideoBufferFlags).
2019-07-16 11:51:23 +03:00
Sebastian Dröge
424a87efbf
Use MaybeUninit::zeroed() everywhere possible instead of mem::zeroed()
2019-07-11 17:56:50 +03:00
Sebastian Dröge
3a8d05075d
Switch everything from mem::uninitialized() to MaybeUninit or mem::zeroed()
...
And also fix a few cases where mem::uninitialized() was simply wrong to
use.
2019-07-11 17:56:50 +03:00
Vivia Nikolaidou
922af1d606
Add GstMemory bindings
...
Part of https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/issues/12
2019-05-24 10:32:57 +00:00
Guillaume Desmottes
94d4c5b42d
buffer: display metas in Debug
...
Fix #201
2019-05-16 14:45:55 +02:00
Sebastian Dröge
e7898c1b24
Update manual code
2019-04-15 19:19:19 +03:00
Sebastian Dröge
bd0cbe99b3
Add more Debug impls to everything possible
2019-01-22 17:46:08 +02:00
François Laignel
226070d216
BoolError: update to new build macros
...
See https://github.com/gtk-rs/glib/pull/419
2019-01-04 16:02:40 +01:00
Sebastian Dröge
005f436631
Buffer::from_slice() / from_mut_slice() can't possibly return None
2018-12-26 12:13:23 +01:00
Sebastian Dröge
36bcb5630a
Remove various unused use statements
2018-12-08 14:58:14 +02:00
Sebastian Dröge
6d5bded7b3
Get rid of lifetime for the Meta structs
...
The structs themselves don't reference the buffer, the reference to
these structs is borrowed from the buffer.
2018-09-30 01:17:12 +03:00
Sebastian Dröge
cb23d20270
Implement support for buffer Metas
...
Fixes https://github.com/sdroege/gstreamer-rs/issues/103
2018-09-29 11:44:55 +03:00
Sebastian Dröge
6fd0ed4cb3
Move all minobjects to newtype wrapper types
...
For consistency with external crates and to help rustdoc, which gets
confused on impl blocks for type aliases.
2018-09-28 18:11:46 +03:00
François Laignel
90b046fbcf
serde: separate serde impl and tests from base module
...
+ fix erroneous `datetime` instead of `buffer` in `BufferRef::serialize`
+ remove ser/de for `Value`s with types `ULong` & `ILong`
2018-07-30 23:18:30 +03:00
François Laignel
862afe5cc7
Buffer: serde impl
2018-07-30 23:18:30 +03:00
Sebastian Dröge
33a6aab6d7
Run everything through latest rustfmt
2018-07-27 13:36:40 +03:00
Sebastian Dröge
632d5f4c57
Change some empty structs to empty enums
...
These should only really exist at the type-level.
2018-07-25 10:07:20 +03:00
Sebastian Dröge
694bcaa697
Fix all clippy warnings
...
Or silence the ones we don't care about.
2018-07-20 10:28:20 +03:00
Sebastian Dröge
e0972ae1e5
Get rid of manual usage of callback_guard!
2018-06-24 14:52:50 +03:00
Thibault Saunier
2962f186f7
Print pointer value when formatting debug strings
2018-05-14 09:22:25 +03:00
Sebastian Dröge
2cefd9aea6
Re-run everything through rustfmt
2018-04-25 11:13:14 +03:00
Sebastian Dröge
9a3ef2e9f1
Regenerate with latest GIR and update for the non-bitflags flags in -sys now
2018-04-04 10:47:12 +03:00
Sebastian Dröge
492c3d656c
Run everything through rustfmt again
2018-04-01 11:57:58 +03:00
Sebastian Dröge
a3b294f0f2
Add back callback guards
2018-03-02 21:34:29 +02:00
Sebastian Dröge
4117c01ff2
Run everything through latest rustfmt-nightly
2018-02-22 11:18:37 +01:00
Sebastian Dröge
e0dc84c10a
Run everything through rustfmt again
2017-12-20 19:30:14 +02:00
Sebastian Dröge
7065d1d884
Add constants for COPY_ALL and COPY_METADATA buffer copy flags
2017-12-16 17:40:47 +02:00
Sebastian Dröge
3de73d89f2
Add Buffer::copy_into() and add flags parameter to ::copy_region()
...
Also ::copy_deep() can fail, return an Option<_>
2017-12-16 15:15:42 +02:00
Sebastian Dröge
18f99073c1
Use from_glib_none/full directly on potential NULL pointers if Option<_> is returned
...
The implementation for Option<_> is doing exactly what we did manually
here.
2017-12-16 15:07:26 +02:00
Sebastian Dröge
8a2c6a3246
Implement AsRef<[u8]>, AsMut, Deref, DerefMut, PartialEq, Eq and Debug for BufferMap too
2017-12-13 11:00:29 +02:00
Sebastian Dröge
e37c3d684c
Fix PartialEq for MappedBuffer
...
No need to map the buffer again, we can just compare the slice directly.
2017-12-13 11:00:02 +02:00
Sebastian Dröge
5dff6026be
Also implement Deref/DerefMut for MappedBuffer for &[u8]
2017-12-13 10:55:26 +02:00
Sebastian Dröge
85fdc8bf13
Implement AsRef<[u8]>, AsMut, Debug, PartialEq and Eq for MappedBuffer
2017-12-13 09:58:41 +02:00