Commit graph

269 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
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
Vikram Fugro
0ca6be25c5 examples: remove the use of description() in Error
Replace the use of deprecated method "Error::description()"
with to_string() method
2020-04-01 17:30:17 +03:00
Sebastian Dröge
ca6bcf36ab examples: Stop using deprecated Error::description() 2020-03-19 14:20:52 +02:00
Sebastian Dröge
d0bfdda97f examples: Update for new GLib boxed deriving API 2020-03-19 14:20:52 +02:00
Sebastian Dröge
7e989631f8 rtsp_server: Add example making use of subclassing RTSPMediaFactory and RTSPMedia 2020-02-24 11:41:35 +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
b17f04e866 bus: Make bus Stream private and add functions on the bus directly for it
Also add a helper function that allows filtering the stream directly.
2020-01-22 10:05:36 +02:00
Sebastian Dröge
69be1ce2fc Fix various new clippy warnings from 1.40 2019-12-22 12:10:27 +02:00
Sebastian Dröge
d26ffc2c21 Update version to 0.16.0 2019-12-19 00:48:08 +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
Tony Jinwoo Ahn
3e3c5205db gstreamer-video/video_info: Change functions from returning Option to Result
Partial work for:
https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/issues/216
2019-12-15 08:36:56 +00:00
Tony Jinwoo Ahn
c563fb6f44 gstreamer-audio/audio_info: Change functions from returning Option to Result
Partial work for:
https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/issues/216
2019-12-14 14:10:06 +00:00
Sebastian Dröge
77c6741ae0 Update to futures 0.3 and require Rust 1.39
Also use async/await in the futures examples.
2019-11-11 12:18:49 +01:00
Sebastian Dröge
ccd01b93bf examples: Add an example for subclassing and providing Rust API on the subclass 2019-10-30 16:07:23 +01:00
Jordan Petridis
dc3a039a3b
Add license key for tutorials and examples 2019-10-22 16:36:32 +03:00
Sebastian Dröge
7ab4e8dafd examples: Update gl_generator dependency to 0.14 2019-10-04 09:30:51 +00:00
Sebastian Dröge
107ae588f2 examples: Fix various clippy warnings 2019-10-04 11:01:55 +03:00
Sebastian Dröge
06cfcd57fc Move to_string() methods into the Display trait or rename to to_str(), move from_string() into the FromStr trait
Fixes clippy warnings, prevents confusing errors and is more consistent.

The Display trait provides a to_string() method by itself and FromStr
provides from_str().
2019-10-04 11:01:55 +03:00
Sebastian Dröge
52509b4b95 Remove subclassing feature and make it the default 2019-09-09 11:51:07 +03:00
Sebastian Dröge
ea367bac14 Fix or ignore various clippy warnings
And ignore some common warnings we don't care about in general, while
also making clippy errors fail the build.
2019-09-07 19:39:19 +03:00
Sebastian Dröge
39ef834cfe examples: Fix compilation after GValue API changes 2019-08-13 18:30:40 +03:00
François Laignel
514a05accd Manual update for new Value::get signature 2019-08-13 10:57:32 +02: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
Sebastian Dröge
d8325212f4 Fix various clippy warnings 2019-07-11 22:02:01 +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
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
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
28a24a4fc0 Update versions to 0.15.0 2019-06-24 20:53:05 +03:00
Sebastian Dröge
d44c293753 Use TryFrom/TryInto traits where it makes sense instead of our previous ad-hoc solutions 2019-06-03 18:42:34 +03:00
Sebastian Dröge
4096869075 Update byte-slice-cast to 0.3 2019-05-24 13:26:49 +02:00
Sebastian Dröge
86e969d964 Remove various Into<Option<_>> trait bounds from functions
In autogenerated code these were already replaced but some manual code
still kept them.
2019-05-24 10:04:16 +00:00
Sebastian Dröge
6cef32a4dd Change various mini object references to references to the refcounted object
Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/issues/204
2019-05-24 10:04:16 +00:00
Sebastian Dröge
5f1a50026d Update futures code to futures 0.3
Also clean it up a bit.
2019-05-02 21:35:12 +03:00
Sebastian Dröge
2b122a20c5 examples/glupload: Fix segmentation fault by ensuring the glutin context stays alive longer than the GStreamer GL display
Otherwise the GL display might still use a Wayland display that is
already freed.

Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/issues/196
2019-04-29 15:43:51 +03:00
Sebastian Dröge
4af06f0dd2 examples/glupload: Clean up considerably and port to glutin 0.21 2019-04-24 16:07:15 +03:00
Sebastian Dröge
044e3985a3 Update dependencies 2019-04-24 09:45:56 +03:00
Sebastian Dröge
b2b8bfab52 Add manual implementations for various new 1.16 functions 2019-04-23 20:45:39 +03:00
Sebastian Dröge
8618085d46 Port examples/tutorials to the explicit Option parameter changes 2019-04-15 19:19:19 +03:00
Sebastian Dröge
e7898c1b24 Update manual code 2019-04-15 19:19:19 +03:00
Víctor Manuel Jáquez Leal
2a6343a671 Support Wayland display on glupload example 2019-04-10 19:08:12 +02:00
Víctor Manuel Jáquez Leal
4b3a011882 Support GLX on glupload example 2019-04-10 19:08:12 +02:00
Sebastian Dröge
5a6313c682 examples/glupload: Switch to glutin 0.20 instead of some git version 2019-04-09 09:36:33 +03:00
Víctor Manuel Jáquez Leal
1e4d63d77f examples/glupload: Sync and wait for GL fence
Fixes: #192
2019-03-27 16:37:21 +01:00
Sebastian Dröge
811e8c1dba examples/glupload: Fix build with glutin API changes 2019-03-12 08:27:50 +01:00
Sebastian Dröge
e0c0c7d417 examples/glupload: Fix build after glutin API changes
Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/issues/191
2019-03-07 14:05:35 +02:00
Sebastian Dröge
86a31b4139 Silence/fix various clippy warnings 2019-03-07 14:05:35 +02:00
Sebastian Dröge
8c39da4e5b Update to Rust 1.31 linter-specific attributes 2019-03-04 15:16:01 +02:00
Víctor Manuel Jáquez Leal
066b22efc5 Fix examples and tutorial with GTK API updates 2019-02-28 12:02:51 +01:00
Víctor Manuel Jáquez Leal
c378167573 glupload: panic if target OS is not Linux
For now this is the only OS supported by this test.
2019-02-28 12:02:51 +01:00
Víctor Manuel Jáquez Leal
07ddf2f370 glupload: update glutin API
GlWindow was dropped in favor of CombinedContext and ContextTrait

Fixes: #190
2019-02-28 12:02:51 +01:00
Sebastian Dröge
32e961d418 Update versions to 0.14.0 2019-02-22 13:04:56 +02:00
Sebastian Dröge
95f6844702 Fix various minor clippy warnings 2019-02-21 19:56:23 +02:00
François Laignel
e2d448f002 examples: fix ges warnings 2019-02-12 16:10:02 +01:00
Sebastian Dröge
f2d79fb352 Make use of Bus::add_watch_local() 2019-02-10 12:06:40 +02:00
Sebastian Dröge
de978bd115 Update gtk feature flags
The minimum supported version of GTK is now 3.14 so we don't have to
opt-in for 3.8/3.10 APIs anymore.
2019-02-07 09:49:07 +02:00
Sebastian Dröge
d8085a5d79 Fix GES example
Some constructors are returning None now based on the annotations
2019-01-29 16:45:35 +02:00
Guillaume Desmottes
3f6424d2ac examples: playbin: show how to use debug_to_dot_file() 2019-01-28 15:53:07 +01:00
François Laignel
333d71f92b Update functions returning bool to use Result<(), glib::BoolError>
See https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/issues/171
2019-01-17 23:13:44 +01:00
Víctor Manuel Jáquez Leal
ee87f286a0 Change to the official glutin repository
Since the PR for egldisplay was already merged.
2019-01-16 21:50:24 +01:00
Sebastian Dröge
3fcbf3fba4 Use default instead of default-features in Cargo.toml 2019-01-16 17:10:01 +02:00
Sebastian Dröge
931c485150 Update manual code for glib API changes 2019-01-16 13:52:56 +02:00
François Laignel
948fb2ae4b Replace XXXReturn with Result<XXXSuccess, XXXError>
... in function signatures.

These breaking changes aim at improving usability by allowing users
to take advantage of Rust error management features sur as `ok_or`,
`map_err`, `expect` and the `?` operator. See the `examples` and
`tutorials` to get an idea of the impacts.
2019-01-11 18:33:04 +01:00
Philippe Normand
98d0bc01ac examples: Fix v1.10 feature build
GLib-rs macros are needed for this feature.
2019-01-03 22:01:41 +00:00
Philippe Normand
bef6d741d3 Fix examples and tutorials for GString support 2019-01-03 22:01:41 +00:00
Sebastian Dröge
69af6a5975 bus: Add iter() and iter_timed() that return Iterators around the corresponding pop() functions
And make use of them in the examples where it makes sense.
2018-12-28 00:06:03 +02:00
Sebastian Dröge
67f9ee4774 Update gl_generator dependency to 0.10 2018-12-19 13:12:47 +02:00
Sebastian Dröge
e804ef4d76 Switch to Rust 1.31 as minimum supported version
Too many dependencies switched and we can't really keep everything at an
older version.

Commented out for now until stable becomes 1.32.
2018-12-19 12:45:57 +02:00
Jordan Petridis
02dc888a3a
Examples: Pin some dependencies to builda with rustc 1.28
These dependencies require rustc 1.31, which we can't yet use.
Since they are only affecting examples its not a big deal to pin
them to an earlier version.
2018-12-17 14:52:45 +02:00
Víctor Manuel Jáquez Leal
2778f9c3fb examples: glupload example 2018-12-05 23:03:49 +01:00
Sebastian Dröge
237fd55a4a Remove left-over HELP comment from the GES example 2018-11-30 23:04:02 +02:00
Markus Ebner
466e02df3a Add verbose documentation to the examples
Added verbose documentation to all of the repository's examples.
2018-11-29 19:59:57 +01:00
Sebastian Dröge
db6a6543b4 Update for some more glib-rs API changes 2018-11-29 00:22:43 +02:00
Sebastian Dröge
ab626adc4a Use new GLib boxed-type definition feature for carrying Rust types over GStreamer error messages 2018-11-28 08:57:17 +02:00
Sebastian Dröge
8c9d1abe9d Remove GitLab badge
It only works for gitlab.com currently
2018-11-26 16:16:26 +01:00
Markus Ebner
fbe6d5ce38 Add transmuxing example showing typefind, multiqueue and dynamic pad usage
This adds a usage example for the typefind and multiqueue elements, and dynamic pads.
2018-11-05 13:06:01 +01:00
Thibault Saunier
7360e50280 ges: Work around trait naming conflicts
Fixes #151
2018-11-04 16:55:33 -03:00
Thibault Saunier
8639aed456 Generate bindings for the GStreamer Editing Services 2018-11-04 11:35:54 -03:00
Sebastian Dröge
f4a6aa4481 Change all references from GitHub to freedesktop.org GitLab 2018-11-03 20:08:42 +02:00
Sebastian Dröge
8a6bcbcedb Run through rustfmt once again 2018-10-28 13:47:02 +00:00
Jan Alexander Steffens (heftig)
fd2776f0b0 examples: Make gstreamer-rtsp-server-sys properly optional
Fixes https://github.com/sdroege/gstreamer-rs/issues/136
2018-10-19 17:57:04 +03:00
Sebastian Dröge
eb0a804a50 Run everything through latest rustfmt 2018-10-08 15:02:23 +03:00
Sebastian Dröge
2c7dff3b45 Run everything through rustfmt again 2018-10-08 09:32:08 +03:00
Sebastian Dröge
2d45d3840f Clean up imports a bit 2018-10-08 09:31:39 +03:00
Thiago Santos
382138b75a More encoding_profile binding improvements
- enable is_equal function again (unsure why it was disabled)
- remove restriction-caps property, encoding-profile objects are
immutable
- remove cast need by using IsA<EncodingProfile> in parameters and
returning the correct type of encodingprofile subclass from the build()
functions. It used a internal hack for storing those IsA objects in
order to keep the API clean and ready to be used, this should be sorted
out as soon as we figure out how to store them in the buidlers.
- encodebin example: remove Result error propagation when it is caused
by programming mistakes. A panic will happen in those cases.
- run rustfmt
2018-10-08 09:06:46 +03:00
Thiago Santos
f3c8dfeb9b EncodingProfile: remove setters and constructors, use builders
Provide builders for the EncodingProfile so that the created objects are
imutable and can have the Send and Sync traits
2018-10-08 09:06:46 +03:00
Thiago Santos
861f052c3d encoding_profile: add builders for all types 2018-10-08 09:06:46 +03:00
Thiago Santos
67bdfee1f6 encodebin: add an example for encodebin usage 2018-10-08 09:06:46 +03:00
Sebastian Dröge
3119593292 Add pango-cairo example 2018-08-30 11:14:59 +03:00
Arun Raghavan
acdc837a15 examples: Explicitly define [bin] section for discoverer 2018-08-18 11:45:10 +03:00
Sebastian Dröge
06bd23f833 Fix compilation of iterator example 2018-08-13 23:46:22 +03:00
Sebastian Dröge
33a6aab6d7 Run everything through latest rustfmt 2018-07-27 13:36:40 +03:00
Sebastian Dröge
8f9c0a72e0 Get rid of all usage of send-cell 2018-07-27 13:25:47 +03:00
Sebastian Dröge
c0422acf66 Fix reference cycles and minor related problems in all examples and tutorials
These are now all leak-free.
2018-07-27 13:07:24 +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
a3dffc2faa Switch from futures to futures-preview crates
Fixes https://github.com/sdroege/gstreamer-rs/issues/118
2018-06-29 07:43:29 +02:00
Sebastian Dröge
8d0a0ee6b1 Directly use byte-slice-cast on the mapped buffer
No need to first get a byte slice from it anymore due to the buffer map
implementing AsRef/AsMut for byte slices
2018-06-01 11:55:13 +03:00
Sebastian Dröge
8ff9294f9d Update to byte-slice-cast 0.2.0 2018-06-01 11:52:56 +03:00
Sebastian Dröge
dc219af36e Add another comment to the appsrc example about the need-data callback not being mandatory 2018-05-18 11:42:24 +03:00