Commit graph

3494 commits

Author SHA1 Message Date
Guillaume Desmottes
e229288ecd gstreamer: manually implement Debug on PromiseReply
The default implementation was not very useful:

PromiseReply(
    Promise {
        inner: Shared {
            inner: 0x00007ff108001090,
        },
    },
)
2022-08-29 08:59:21 +00:00
Thibault Saunier
a341b4972f validate: Do not check if initialized when initializing
🤦
2022-08-26 11:27:23 -04:00
Guillaume Desmottes
1e24e2d133 gstreamer: caps: improve Debug implementation 2022-08-25 10:54:16 +02:00
Guillaume Desmottes
0c9158f404 gstreamer: taglist: improve Debug implementation 2022-08-25 10:54:16 +02:00
Guillaume Desmottes
64c09353b7 gstreamer: structure: improve Debug implementation
g_strdup_value_contents() output is not easily readable with nested
structures
2022-08-25 10:54:16 +02:00
Thibault Saunier
e9d95eda59 gstreamer: Add extension trait to mark API as plugins API
This adds an extension trait implemented for GType so we can
add and check plugins API status.
Required so we can document plugins written in rust.
2022-08-24 10:38:06 -04:00
Philippe Normand
70d95dca4c validate: New crate for GstValidate bindings
Co-authored-by: Thibault Saunier <tsaunier@igalia.com>
2022-08-23 12:04:05 -04:00
Sebastian Dröge
f65d410fc5 gstreamer-video: Add bindings for VideoInfo::in_info() / out_info() 2022-08-19 19:45:30 +03:00
Sebastian Dröge
ffa6d67868 webrtc: Add accessors for WebRTCICECandidateStats 2022-08-19 19:45:30 +03:00
Sebastian Dröge
76f01516e3 Regenerate with latest GStreamer gir files 2022-08-19 19:42:05 +03:00
Sebastian Dröge
4c7581ab03 ci: Update image version to build newer GStreamer 2022-08-19 19:40:51 +03:00
Sebastian Dröge
0e72d934e1 Update GStreamer gir files 2022-08-19 19:40:33 +03:00
Sebastian Dröge
8d9abb935b gstreamer: Update to ron 0.8 2022-08-16 13:09:49 +03:00
François Laignel
be2de21602 Update option-operations to 0.5.0
This fixes the trait `OptionEq` not being exported in `prelude`.
2022-08-15 22:44:53 +02:00
Sebastian Dröge
fbad0fd0bc Regenerate with latest gir / gir-files / gst-gir-files 2022-08-14 14:02:50 +03:00
Sebastian Dröge
0921028507 Update GStreamer gir files 2022-08-14 12:29:19 +03:00
Sebastian Dröge
212099c55f Update gir-files 2022-08-14 12:01:52 +03:00
Sebastian Dröge
fad06dd47d Update gir 2022-08-14 12:01:33 +03:00
Guillaume Desmottes
c5d19e7c80 miniobject: implement ptr_eq() on ref type 2022-08-12 11:15:08 +02:00
Guillaume Desmottes
c0fd8a8aad gstreamer: add BufferRef::ptr_eq() 2022-08-12 08:29:49 +02:00
Guillaume Desmottes
2dcd5cf9eb as_ptr() and as_mut_ptr() accessors are safe
Nothing unsafe about getting a pointer, deferencing it is unsafe.
2022-08-12 08:29:49 +02:00
Sebastian Dröge
4e221c1b48 ci: Update to Rust 1.63 2022-08-11 18:18:51 +03:00
Sebastian Dröge
b06a692dea Fix a new beta clippy warning
warning: unused return value of `std::boxed::Box::<T>::from_raw` that must be used
  --> gstreamer-rtsp-server/src/rtsp_session_pool.rs:23:5
   |
23 |     Box::<F>::from_raw(ptr as *mut _);
   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
   |
   = note: `#[warn(unused_must_use)]` on by default
   = note: call `drop(from_raw(ptr))` if you intend to drop the `Box`
2022-08-10 10:27:27 +00:00
Vivia Nikolaidou
583ef0395d audio: Add new_interleaved() to AudioCapsBuilder
Because it's very common that elements support only interleaved audio.
2022-08-10 09:50:01 +00:00
Sebastian Dröge
2cb7fc8122 gstreamer: Add GstParamSpecBuilderExt trait to easily allow setting controllable, mutable-ready and other extension flags 2022-08-10 12:28:05 +03:00
Sebastian Dröge
446f09fec6 gstreamer: Implement new ParamSpecBuilderExt trait from glib 2022-08-10 12:03:51 +03:00
Sebastian Dröge
8a50bbcaa3 audiobuffer: Remove unnecessary ref/deref
warning: deref on an immutable reference
   --> gstreamer-audio/src/audio_buffer.rs:255:35
    |
255 |             Self::Owned(ref b) => &*b,
    |                                   ^^^
    |
    = note: `#[warn(clippy::borrow_deref_ref)]` on by default
    = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#borrow_deref_ref
2022-08-09 21:08:22 +00:00
Sebastian Dröge
9018d1e3ac examples: Update to glutin 0.29 2022-08-09 18:46:00 +00:00
Vivia Nikolaidou
7a9537c0fd audio, video: Default values in caps builders
AudioCapsBuilder::new() will have the default values for
rate/channels/layout/format. Similarly, VideoCapsBuilder::new() will
have the default values for format/width/height/framerate.
2022-08-09 15:00:54 +03:00
Vivia Nikolaidou
751a5b4788 gstreamer-video: Add tests for previous/next fraction 2022-07-20 11:06:21 +00:00
Vivia Nikolaidou
138bc71051 gstreamer-audio: Add AudioCapsBuilder 2022-07-20 11:06:21 +00:00
Vivia Nikolaidou
32fbb04fa4 gstreamer-video: Add VideoCapsBuilder 2022-07-20 11:06:21 +00:00
Sebastian Dröge
95b541cf82 ci: Update to Rust 1.62.1 2022-07-19 16:51:18 +03:00
François Laignel
2d17d46c50 gst: use Signed where applicable 2022-07-18 23:26:20 +02:00
François Laignel
414222aa99 gst/format: Signed wrapper
Functions such as Segment::to_running_time_full replicate the C
signature for the return type: an integer indicates whether the
resulting value must be interpreted as positive or negative.
In Rust, alternatives are usually represented using an enum.

This commit implements an enum wrapper to represent the sign
and adds functions to FormattedValue to ease Signed handling.
2022-07-18 23:26:20 +02:00
Sebastian Dröge
dccd0f9e01 ci: Update rustup to 1.25.1 2022-07-18 13:26:17 +03:00
Sebastian Dröge
8cb13ac752 video: Add new Colorimetry::is_equivalent() 2022-07-18 13:25:48 +03:00
Sebastian Dröge
b5920ee729 Regenerate with latest gir 2022-07-18 13:25:36 +03:00
Sebastian Dröge
16655828ab Update GStreamer gir files 2022-07-18 13:20:45 +03:00
Sebastian Dröge
afe594089b Update gir-files 2022-07-18 13:14:34 +03:00
Sebastian Dröge
4201727769 Update gir 2022-07-18 13:14:23 +03:00
Sebastian Dröge
cf1a64ecf8 gstreamer: Hide some useless enum variants that only make sense in C 2022-07-18 13:13:48 +03:00
François Laignel
99fb9423d2 regen: optional return type for TestClock::next_entry_type 2022-07-15 13:38:23 +02:00
François Laignel
8720c9c386 check: fix optional return type for TestClock::next_entry_type 2022-07-15 13:38:23 +02:00
Tomasz Andrzejak
2090452e3d Update minimum supported rust version 2022-07-14 15:23:34 +02:00
Sebastian Dröge
538eb95e51 ci: Update to rustup 1.25.0 and meson 0.63.0 2022-07-12 10:26:44 +03:00
François Laignel
a787197254 Use CompatibleFormattedValue where applicable
See https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1059
2022-07-11 19:45:52 +02:00
François Laignel
865df62f8d gst/format: add CompatibleFormattedValue
The trait CompatibleFormattedValue can be used to check argument
compatibility to a certain Format. This is convenient to define
function which accept several FormattedValues which must hold
values of the same Format.

This trait enforces format compatibility at compilation time for
SpecificFormattedValues and at runtime when a GenericFormattedValue
is provided.

See https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1059
2022-07-11 19:45:52 +02:00
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
Guillaume Desmottes
fbceaab941 utils: streamproducer: add API to retrieve last sample from producer
This may be used for example to easily generate thumbnails from video
producers.
2022-07-11 11:32:06 +02:00