Commit graph

2180 commits

Author SHA1 Message Date
François Laignel
ced522ed08 Implement ser / de for Date Values, Structure fields and Tags 2019-08-19 15:51:42 +02:00
François Laignel
c74eef374a Fix serde for Values with optional Types
Attention: these changes induce breaking changes for the serde
representation of some types.

Serialization of `Value`s used to rely on the `get` function
followed by an `unwrap`. This means that optional types couldn't
be serialized when they were `None`.

This commit distinguishes between the optional `Value` `Types` and
the ones that always return some value.

The `Value`s, `Structure` fields and `Tag`s with following types are
now represented as `Option`s:

- `Buffer`
- `DateTime`
- `Sample` (note: this type is used for `Tag` images)
- `String` (except for `Tag`s - see the comment in `tags_serde.rs`).

The representations for these `Type`s remain unchanged when they are
used in-place (not as part of a `Value`).

Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/issues/215
2019-08-19 15:34:24 +02:00
François Laignel
26423a069c structure::tests: use error constructors 2019-08-16 15:04:01 +02:00
Sebastian Dröge
f050750b5e Update CHANGELOG.md for 0.14.4 2019-08-14 22:48:16 +03:00
Mathieu Duponchelle
6d3cf44573 gstreamer-rtp: initial RTPBuffer bindings 2019-08-14 18:01:00 +00:00
Mathieu Duponchelle
ee014a6df2 Generate initial bindings for gstreamer-rtp
This mostly wraps enums, flags, and constants, will wrap RTPBuffer
next
2019-08-14 18:01:00 +00:00
Sebastian Dröge
85d01e853e baseparse/transform/aggregator: Add constants for custom flow returns 2019-08-14 20:26:22 +03:00
Sebastian Dröge
eddf4a61ff videoencoder/decoder: Add constants for the NEED_DATA custom flow returns 2019-08-14 20:22:55 +03:00
Sebastian Dröge
5c53f10135 videoencoder: Allow passing None to finish_frame() 2019-08-14 20:22:53 +03:00
Sebastian Dröge
e00781309b gstreamer/element: Use from_glib_none() for the release_pad() trampoline
The reference to the pad we get passed is not guaranteed to be valid for
the whole scope of release_pad(). It might be the last reference as
owned by GstElement, and gst_element_remove_pad() would destroy it then.
2019-08-14 11:58:05 +03:00
Sebastian Dröge
2829c7ee2f gstreamer: Add StructureRef::get_optional()
This only returns Err on type mismatches. If the field does not exist or
None it returns None, otherwise the value.

StructureRef::get() returns Err also if the field does not exist.
2019-08-13 18:30:40 +03:00
Sebastian Dröge
39ef834cfe examples: Fix compilation after GValue API changes 2019-08-13 18:30:40 +03:00
Sebastian Dröge
22d8828015 player: Fix feature flag for gstreamer-player-sys 2019-08-13 18:30:40 +03:00
Sebastian Dröge
cd4ae139d0 Explicitly enable the features we want to test on the CI 2019-08-13 18:30:40 +03:00
Sebastian Dröge
1b860825ee Update feature flags of all dependencies to include the same version as for the crate itself
This improves build times as it allows cargo to reuse more previous
build results when building crates separately.

Also remove the serde-pickle dependency. It was only used in a single
test and caused pulling in of quite a few dependencies.
2019-08-13 16:46:08 +03:00
Sebastian Dröge
da9db6b80d Improve features selection in Cargo.toml
All dependencies now also are compiled with the same version feature as
the crate itself, allowing for more caching of build results by cargo.
2019-08-13 16:23:05 +03:00
François Laignel
514a05accd Manual update for new Value::get signature 2019-08-13 10:57:32 +02:00
Mathieu Duponchelle
f8cebe8aa9 Generate bindings for gstreamer-rtp 2019-08-12 23:48:06 +02:00
François Laignel
5d012945df Regen 2019-08-11 10:43:30 +02:00
François Laignel
3cf034d94b Update gir 2019-08-10 19:19:56 +02:00
François Laignel
26fda95a54 Fix functions unit tests for v < 1_12 2019-08-08 19:38:42 +02:00
Sebastian Dröge
51ea339a19 Regenerate with latest gir 2019-08-05 13:08:01 +03:00
Sebastian Dröge
4cfcba0811 Update gir 2019-08-05 12:55:29 +03:00
Sebastian Dröge
1eb5525a27 Update array-init to 0.1 and gl_generator to 0.13 2019-07-24 14:23:15 +03:00
Josh Matthews
0e36ac5205 Add high level bindings for adding new log handlers and removing the default handler. 2019-07-22 16:06:41 +00:00
Sebastian Dröge
fcc361f920 gstreamer: Add bindings for gst::calculate_linear_regression() 2019-07-17 00:24:13 +03:00
Sebastian Dröge
eb59456ae3 Update CHANGELOG.md for 0.14.3 2019-07-16 12:47:15 +03: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
e3282c27f1 video: Generate VideoBufferFlags and add a extension trait for setting/getting them on buffers 2019-07-16 11:51:23 +03:00
Sebastian Dröge
36b0cafc5e Update CHANGELOG.md for 0.14.2 2019-07-15 20:03:48 +03:00
Sebastian Dröge
ae58a469d1 meta: Add support for ReferenceTimestampMeta 2019-07-14 22:32:10 +03:00
Sebastian Dröge
d8325212f4 Fix various clippy warnings 2019-07-11 22:02:01 +03:00
Sebastian Dröge
f63d50546a Don't use ONCE_INIT anymore now that Once::new() is const 2019-07-11 17:56:50 +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
Sebastian Dröge
3ea9a435e2 Update minimum supported Rust version to 1.36 2019-07-10 11:21:53 +03:00
Sebastian Dröge
bde6a04780 Regenerate everything with latest gir 2019-07-10 11:21:28 +03:00
Sebastian Dröge
606525b430 Update gir 2019-07-10 11:17:55 +03:00
Sebastian Dröge
dcbf68e9e7 Update CHANGELOG.md for 0.14.1 2019-07-06 23:57:28 +03:00
Sebastian Dröge
9a3e7d0aa9 gstreamer/format: Fix serde serialization unit test
Regression from fdb95f0033
2019-07-06 10:19:03 +03:00
Sebastian Dröge
04ed22a356 examples/futures: Use future::pending() instead of future::empty()
It was renamed in the last release.
2019-07-06 09:56:34 +03:00
Sebastian Dröge
f7cf709062 tutorials/basic-tutorial-5: Make sure to only declare GDK C functions for the right platform
Otherwise linking might fail depending on the compiler flags if the
linker does not remove all references to unused code.
2019-07-06 02:38:58 +03:00
Sebastian Dröge
39ea788835 examples/gtkvideooverlay: Make sure to only declare GDK C functions for the right platform
Otherwise linking might fail depending on the compiler flags if the
linker does not remove all references to unused code.
2019-07-06 02:38:58 +03:00
Sebastian Dröge
27f0d86068 Run stable clippy in gitlab CI again and also build all features on stable
Now that futures are stable in 1.36 we can do that again.
2019-07-04 17:28:15 +03:00
Guillaume Desmottes
f84e94db78 audio: AudioInfo: display format info in Debug 2019-07-03 15:27:30 +02:00
Guillaume Desmottes
6c1392220d audio: implement proper Debug on AudioFormatInfo 2019-07-03 15:25:40 +02:00
Guillaume Desmottes
86f7a1dd9b video: VideoInfo: display format info in Debug 2019-07-03 14:32:43 +02:00
Guillaume Desmottes
71414fe052 video: implement proper Debug on VideoFormatInfo 2019-07-03 14:23:58 +02:00
Sebastian Dröge
38f3d3eff2 video-info: Use gst_video_info_set_interlaced_format() when building for 1.16 and having an interlace-mode set
This ensures that the plane information is filled correctly.
2019-06-26 12:42:33 +03:00
Sebastian Dröge
6871e501db webrtc: Generate various new enum types that were added in 1.14.1/1.16 2019-06-25 19:20:37 +03:00