gstreamer-rs/gstreamer-video/src
François Laignel fe319af598 Implement FormattedValue on any candidate type
The trait FormattedValue was only implemented on types which
could implement the full range of values for a Format. In order
to declare a function which could take both the intrinsic type
of any Format (e.g. `ClockTime`) as well the full range of values
(e.g. `Option<ClockTime>`), the argument was declared:

```rust
    impl Into<GenericFormattedValue>,
```

This commit implements `FormattedValue` for any type representing
a format. E.g.: both `ClockTime` and `Option<ClockTime>` will now
implement `FormattedValue`. The trait `FormattedValueFullRange`
is implemented on types which can be built from any raw value.

These changes are intended to help for the implementation of a
means to enforce format conformity at compilation time for
functions with multiple formatted value arguments.

The following signatures were found to be incorrect and are fixed:

- `message::StepDone`: forced the type for `amount` and `duration`
  to be of the same type, when `duration` is expected to be of the
  `Time` format.
- `query::Convert::set`: the two arguments were forced to the same
  type, so potentialy the same format, unless a
  `GenericFormattedValue` was used.

See https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1059
2022-07-11 19:45:52 +02:00
..
auto Regenerate 2022-06-30 08:46:06 +03:00
subclass Use IntoGlibPtr trait instead of implementing into_ptr 2022-05-07 13:38:11 +02:00
caps_features.rs Fix license header situation 2020-12-15 11:53:31 +01:00
color_balance_channel.rs video: Add bindings for ColorBalance / ColorBalanceChannel 2021-11-15 20:38:06 +00:00
flag_serde.rs Add De/Serialization for most bitflag types 2022-05-06 09:05:52 +00:00
functions.rs video: Add bindings for is_common_aspect_ratio() 2022-06-30 08:46:06 +03:00
lib.rs Store whether GStreamer was initialized in an AtomicBool 2022-06-27 10:28:28 +03:00
navigation.rs Use IntoGlibPtr trait instead of implementing into_ptr 2022-05-07 13:38:11 +02:00
utils.rs video: Add bindings for VideoAggregator 2022-03-22 19:00:32 +02:00
video_aggregator.rs video: Add bindings for VideoAggregator 2022-03-22 19:00:32 +02:00
video_aggregator_convert_pad.rs video: Add bindings for VideoAggregator 2022-03-22 19:00:32 +02:00
video_aggregator_pad.rs video: Add bindings for VideoAggregator 2022-03-22 19:00:32 +02:00
video_buffer_pool.rs Generate missing doc aliases for newtypes 2021-06-01 15:15:59 +02:00
video_codec_frame.rs Use IntoGlibPtr trait instead of implementing into_ptr 2022-05-07 13:38:11 +02:00
video_codec_state.rs manual code: fix-getters-def doc aliases 2021-05-03 20:46:57 +02:00
video_color_matrix.rs manual code: fix-getters-def doc aliases 2021-05-03 20:46:57 +02:00
video_converter.rs Use IntoGlibPtr trait instead of implementing into_ptr 2022-05-07 13:38:11 +02:00
video_decoder.rs Use IntoGlibPtr trait instead of implementing into_ptr 2022-05-07 13:38:11 +02:00
video_encoder.rs Use IntoGlibPtr trait instead of implementing into_ptr 2022-05-07 13:38:11 +02:00
video_event.rs Add De/Serialization for most bitflag types 2022-05-06 09:05:52 +00:00
video_format.rs Implement more iterator functions / traits in custom iterators for efficiency reasons 2022-05-22 12:42:42 +03:00
video_format_info.rs video: Add bindings for VideoFormatInfo::tile_sizes() 2022-05-03 15:41:54 +03:00
video_frame.rs video: Add various VideoFormatInfo/VideoInfo/VideoFrame helper API 2022-04-04 15:50:09 +03:00
video_hdr.rs Remove unneeded std::convert::TryFrom/TryInto and std::str::FromStr imports 2021-10-31 18:20:31 +02:00
video_info.rs Implement FormattedValue on any candidate type 2022-07-11 19:45:52 +02:00
video_message.rs Fix/silence a couple new clippy warnings 2022-06-30 13:08:33 +00:00
video_meta.rs Implement more iterator functions / traits in custom iterators for efficiency reasons 2022-05-22 12:42:42 +03:00
video_overlay.rs Add missing doc aliases to manual code 2021-05-19 22:36:18 +02:00
video_overlay_composition.rs Implement more iterator functions / traits in custom iterators for efficiency reasons 2022-05-22 12:42:42 +03:00
video_rectangle.rs video/video_rectangle: Mark struct as repr(C) for FFI transparency 2021-09-04 00:13:24 +02:00
video_time_code.rs Update minimum supported version to 1.14 2022-04-07 12:45:47 +03:00
video_time_code_interval.rs Implement glib::ValueTypeOptional for various types 2021-12-16 17:40:39 +00:00