Commit graph

1406 commits

Author SHA1 Message Date
Jan Schmidt
637a1ca670 examples: Add a custom event example.
Add an example of constructing and parsing a custom event using
a rust helper struct, and sending them / catching them in
a pipeline.
2020-05-29 02:58:47 +10:00
Sebastian Dröge
e9317d0a48 Update CHANGELOG.md for 0.15.6 2020-05-28 15:51:43 +03:00
Sebastian Dröge
40c14ccc03 gstreamer: Update ron dependency to 0.6 2020-05-28 13:18:02 +03:00
Sebastian Dröge
dbf6d1fd1a gstreamer/promise: Return a borrowed StructureRef for the reply from the Future
Prevents an usually unneeded copy of the structure.
2020-05-27 14:48:48 +03:00
Sebastian Dröge
9d851bfc48 gstreamer/promise: Allow resolving the Promise with None and handle None explicitly in the change function
See https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/1300
2020-05-27 13:55:51 +03:00
Sebastian Dröge
7086a754be Add various glib::Value trait impls for borrowed versions of types
For SDPMessageRef, StructureRef and CapsFeatureRef this involves the
conversion from and to a glib::Value. Specifically this means that e.g.
a StructureRef can be retrieved from a glib::Value via borrowing, i.e.
without creating a copy of the structure first.

For all mini objects only retrieval from a glib::Value is implemented as
the other direction would allow to get multiple immutable references
from a mutable reference without borrowing, which is not allowed and
would make it possible to observe a mini object changing while having an
immutable reference to it.
2020-05-27 13:17:54 +03:00
Sebastian Dröge
0b3bfa7ea2 gstreamer/promise: Convert None promise replies to an empty structure in the change_func
webrtcbin likes to put a NULL structure into the reply under some
circumstances when the promise successfully resolved.

See https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/1300
for details.
2020-05-27 12:24:11 +03:00
Sebastian Dröge
dfdf01b868 gstreamer/datetime_serde: Use glib::BoolError instead of a &'static str as TryFrom error type 2020-05-26 19:26:35 +03:00
Sebastian Dröge
5eb1dbd93e video/videoinfo: Use a proper error type in the TryFrom<VideoMultiviewMode> impl for VideoMultiviewFramePacking 2020-05-26 19:26:35 +03:00
Sebastian Dröge
d417656707 Use thiserror more widely for deriving Error/Display impls of error types 2020-05-26 19:26:35 +03:00
Sebastian Dröge
f0e12bbf24 video/videoconverter: Add TryFrom<Structure> and inverse From impl for VideoConverterConfig
Allows converting between both types interchangebly.
2020-05-26 19:26:35 +03:00
Mathieu Duponchelle
02a43819a7 gstreamer-video: expose caps features 2020-05-22 21:31:45 +02:00
Sebastian Dröge
31313fb5c8 video: Add bindings for guess_framerate() 2020-05-20 09:52:03 +03:00
Sebastian Dröge
8029d85232 video: Add bindings for calculate_display_ratio() 2020-05-20 09:52:03 +03:00
Sebastian Dröge
1b7e99938f gstreamer/event: Add setter/getter for the gst::Stream in the stream-start event 2020-05-17 13:38:45 +03:00
Sebastian Dröge
4097c15c96 Don't include LGPL docs in the docs if both embed-lgpl-docs and purge-lgpl-docs features are selected
This makes usage of RLS/rust-analyzer on the repository much faster and
less annoying as the docs don't have to be included and removed on every
change.
2020-05-14 10:44:58 +03:00
Sebastian Dröge
93bc5c9324 gstreamer/gstreamer-app: Don't store strong references in futures Stream/Sink adapters
This applies to the ones of the appsink, appsrc and bus. If we would
store a strong reference then they would keep alive the underlying
object forever even if their pipeline disappeared in the meantime.

Like this e.g. the bus stream would start returning None once the bus
was destroyed, similar to how other channels are working in Rust.
2020-05-13 22:13:11 +03:00
Sebastian Dröge
3f495ce1da gstreamer/plugin: Register plugins with the correct minor version when building for 1.18 2020-05-08 14:32:50 +03:00
Guillaume Desmottes
6cf5914e21 ci: rebuild images
This will update to latest Rust stable (1.43.1).
2020-05-08 09:14:07 +02:00
Sebastian Dröge
781c5785b1 Regenerate 2020-05-05 17:29:14 +00:00
Sebastian Dröge
c588a0bcd5 Update gir-files from gstreamer-rs-sys 2020-05-05 17:29:14 +00:00
Sebastian Dröge
e87eff6271 Update gir 2020-05-05 17:29:14 +00:00
Otavio Salvador
2022890766 examples: Move out from 'failure' crate as it is deprecated
The 'failure' crate has been stale for quite some time and better
alternatives has been developed since its introduction. We choose the
'anyhow' and 'derive_more' to replace it.
2020-05-04 11:16:50 -03:00
Otavio Salvador
6fc70ee6b6 examples: Move to 2018 edition
This code rework the examples to use the new 2018 edition and also
rework the code to avoid using unnecessary 'extern crate' calls.

The 'use extern crate gstreamer as gst', as well as the other gstramer
related crates, were kept, otherwise we'd need to do it on 'Cargo.toml'
but it would make it more difficult to figure out the respective crate
name.
2020-05-03 18:42:57 -03:00
Vivia Nikolaidou
3c1304def5 Add DEVELOPMENT.md
To explain how the development process works (how to update the bindings)
2020-05-03 19:37:13 +03:00
Vivia Nikolaidou
ec4a43be89 Regenerate 2020-05-03 16:48:35 +03:00
Sebastian Dröge
2c254c633b gstreamer-rtsp-server: Update gir-file to fix out parameters 2020-05-03 16:48:35 +03:00
Vivia Nikolaidou
e986119df6 Update Cargo.toml to 1.18 2020-05-03 16:48:35 +03:00
Vivia Nikolaidou
4718f72fed gstreamer-video/video_encoder: Manually implement finish_subframe 2020-05-03 16:48:35 +03:00
Sebastian Dröge
61c80ada48 ci: Run build with v1_18 feature 2020-05-03 16:48:35 +03:00
Sebastian Dröge
90a4918f92 gstreamer-base/aggregator: Add subclassing support for new 1.18 virtual methods 2020-05-03 16:48:35 +03:00
Sebastian Dröge
c449b34b37 gir-files: Sync with gstreamer-rs-sys 2020-05-03 16:48:35 +03:00
Vivia Nikolaidou
3ac7631ea0 gstreamer/bin: Implement iterate_all_by_element_factory_name manually 2020-05-03 16:48:35 +03:00
Vivia Nikolaidou
05852bb19f gstreamer-check/test_clock: Implement process_id manually 2020-05-03 16:48:35 +03:00
Vivia Nikolaidou
0aeccc27ff gstreamer-base/aggregator: Implement update_segment manually 2020-05-03 16:48:35 +03:00
Sebastian Dröge
1be8ec691e gstreamer-video: Add support for the AFD and Bar metas 2020-05-03 16:48:35 +03:00
Vivia Nikolaidou
85f98751cf gstreamer-editing-services: Generate GES.FrameNumber 2020-05-03 15:18:45 +03:00
Vivia Nikolaidou
e0ae19d459 gstreamer: Ignore get_current_running_time and get_current_clock_time
They have a better manual implementation
2020-05-03 15:18:45 +03:00
Vivia Nikolaidou
df3eb56fb1 gir-files: Update to gstreamer master 2020-05-03 15:18:45 +03:00
Sebastian Dröge
3192d74389 Update CHANGELOG.md for 0.15.5 2020-05-03 10:17:18 +03:00
Vivia Nikolaidou
a0fa164b7b Update ci gstreamer to master 2020-04-30 18:17:21 +03:00
Vivia Nikolaidou
118c7d4ad9 Regenerate 2020-04-30 17:16:23 +03:00
Vivia Nikolaidou
5ccbec37f9 fix.sh: Remove more EGL stuff 2020-04-30 17:14:29 +03:00
Vivia Nikolaidou
e1b1d4d95a Update GLib gir files 2020-04-30 17:14:20 +03:00
Vivia Nikolaidou
720c17293b gir-files: Update to 1.16.2 2020-04-30 17:14:11 +03:00
Vivia Nikolaidou
ae965f7256 gir-files: Update files after newer fix.sh 2020-04-30 14:01:41 +03:00
Vivia Nikolaidou
c6831ca28a fix.sh: Incorporate reformat.sh
From https://github.com/gtk-rs/gir-files/blob/master/reformat.sh
2020-04-30 14:01:09 +03:00
Jan Alexander Steffens (heftig)
1d2609d448
gstreamer: Return any lifetime instead of 'static
Following https://github.com/gtk-rs/glib/pull/633
2020-04-30 09:50:00 +02:00
Guillaume Desmottes
f28a92c46c ci: update ci template
Prevent creating a second useless layer, see
https://gitlab.freedesktop.org/freedesktop/ci-templates/-/merge_requests/26

Update image tag to ensure building images is still working.
2020-04-28 16:08:56 +02:00
Guillaume Desmottes
fe30b4a388 ci: improve docker image layering
At the moment we are building 3 independent images, each one having a different
Rust version. This works perfectly fine but we can save storage space and
bandwith by making a smarter use of Docker's layering system.

Introducing a new 'base' image containing all the deps, including
GStreamer, acting as a base for the actual images.
As a result most of the actual content is now shared accross the same
Docker layer. This would save us from downloading/building all the deps
when updating images and will reduce storage and transfers for runners.
2020-04-28 15:25:48 +02:00