Commit graph

2037 commits

Author SHA1 Message Date
François Laignel
c987bb0c7d gstreamer/message: enhance Debug impl for Message[Ref]
When "{:?}" printing a Message[Ref], the following issues lower the
experience:

- If the Message seqnum is GST_SEQNUM_INVALID (0), a panic occurs due
  to an assertion failure in MessageRef::get_seqnum.
- The src of the Message displays the GString address.

Origin issue for an occurrence of the first case above fixed in
https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/860
2020-10-13 11:11:38 +02:00
François Laignel
fa3f6eefc9 message: get_seqnum: return next seqnum if Message seqnum is invalid
See https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/601
2020-10-13 11:11:38 +02:00
Sebastian Dröge
3c705a3f3d net: Fix compilation with gio API changes 2020-10-12 09:48:03 +03:00
raytiley
a8ed2ac6e0 Update location of documentation. 2020-10-10 15:51:59 -04:00
Sebastian Dröge
531014a35c gstreamer/clock: Improve ClockId bindings
There is now a separate type for Single and Periodic clock ids. This
allows to have API that is only for one type on that specific type
instead of doing runtime checks, and allows for more refined async
waiting API.
2020-10-10 10:25:44 +00:00
Marijn Suijten
cb362e6fbc gstreamer: plugin: Prefix glib:: with $crate:: in gst_plugin_define
Crates using gst_plugin_define might not (need to) import `glib`
directly into their scope; use the one imported in `gstreamer`s root
to make this macro more portable.
Besides, `glib` is prefixed with `$crate::` just below.
2020-10-10 11:54:20 +02:00
Marijn Suijten
10bc09ba82 gstreamer: error: Prefix gst_error_msg with $crate
This macro might not have been imported in the surrounding scope where
gst_panic_to_error is used, thus reference it directly by the full
namespace.
2020-10-10 11:47:41 +02:00
Sebastian Dröge
7f274ebe91 deny: Update 2020-10-10 11:14:01 +03:00
Sebastian Dröge
5ad45cef42 examples: Rename crates in Cargo.toml and get rid of extern crate 2020-10-10 11:10:20 +03:00
Sebastian Dröge
ad1d78b599 examples: Move to Rust 2018 edition 2020-10-10 11:00:48 +03:00
Sebastian Dröge
096ce958a4 tutorials: Move from failure to anyhow 2020-10-10 10:52:15 +03:00
Sebastian Dröge
dc9a9c4d78 Update CHANGELOG.md for 0.16.4 2020-10-09 13:41:11 +03:00
Sebastian Dröge
0b70e52032 gstreamer/audio/video: Correctly implement ExactSizeIterator
len() is optional but size_hint() must return the correct values. Also
this shouldn't return the overall length but the remaining length.
2020-10-09 11:35:19 +03:00
Sebastian Dröge
6e404f1831 gstreamer/meta: Don't collect iterators just to check their length in the tests 2020-10-09 11:35:19 +03:00
Sebastian Dröge
7aeb0e8f92 gstreamer/buffer: Don't implement ExactSizeIterator on meta iterator
We don't actually know the number of items and using the trait would
panic.
2020-10-09 11:35:19 +03:00
Sebastian Dröge
323bb1269b gstreamer: Update to cfg-if 1.0 2020-10-09 11:35:19 +03:00
Sebastian Dröge
9379098a3f examples/appsrc: Make use of the VideoFrame API for accessing the data
This is not really needed here but useful to have an example for the
videoframe API usage.
2020-10-03 17:55:36 +03:00
Sebastian Dröge
b59b5ada7e gstreamer/clock: Unschedule clock ID when the receiver end of the channel is disconnected 2020-10-01 11:25:40 +03:00
Sebastian Dröge
4778d05238 gstreamer/clock_time: Add From/TryFrom impls to convert between ClockTime and std::time::Duration 2020-10-01 11:00:21 +03:00
Sebastian Dröge
c01f7072fb gstreamer/clock: Add ClockID::wait_async_stream()
This provides an async stream with the values of each timeout.
2020-10-01 11:00:21 +03:00
Alexey Galakhov
4120ded424 Add gstreamer-controller 2020-09-30 16:28:51 +00:00
Jordan Petridis
0d1b65154a
ci: avoid trying to cache cargo registry
There have been some very weird issues, where
cargo keeps fetching older commits of glib-rs
and breaking the build like so [1]

Might be stale cache, or some http/git mirroring
shenanigans, so lets stop trying to use the
cache for now and check if the issue persists.

[1]: https://gitlab.freedesktop.org/slomo/gst-plugins-rs/-/jobs/4715922
2020-09-30 10:07:12 +03:00
Jordan Petridis
8ff3cdde7e
ci: avoid trying to cache cargo registry
There have been some very weird issues, where
cargo keeps fetching older commits of glib-rs
and breaking the build like so [1]

Might be stale cache, or some http/git mirroring
shenanigans, so lets stop trying to use the
cache for now and check if the issue persists.
2020-09-29 18:11:08 +03:00
Alexey Galakhov
57c58f255e Add generation files for gstreamer-controller-sys 2020-09-23 13:48:48 +03:00
Sebastian Dröge
da4efdfa90 examples: Update for glib API changes
Timeouts now use std::time::Duration instead of plain integers.
2020-09-14 16:44:46 +03:00
Sebastian Dröge
8825a27c3e ci: Update minimum supported version to 1.41 2020-09-09 09:55:10 +03:00
Sebastian Dröge
a540274c72 ci: Update minimum supported version to 1.41
Needed for gst-plugins-rs now because one dependency requires a newer
version now.
2020-09-09 09:25:15 +03:00
Sebastian Dröge
4f10eefe1e Update CHANGELOG.md for 0.16.3 2020-09-08 22:02:31 +03:00
Sebastian Dröge
8bfb5b58fa Update CHANGELOG.md for 0.9.1 2020-09-08 21:31:56 +03:00
Sebastian Dröge
8aaec57dac gstreamer: Fix compilation after glib API change 2020-09-08 16:11:39 +03:00
Sebastian Dröge
6ce9a9ce12 video: Rename VideoTransferFunction functions 2020-09-08 15:43:05 +03:00
Sebastian Dröge
55efe30258 Regenerate everything 2020-09-08 15:42:28 +03:00
Sebastian Dröge
0877e6fcb1 Update gir-files to 1.18.0 2020-09-08 15:39:07 +03:00
Sebastian Dröge
f1b4592d17 ci: Rebuild GStreamer to update to 1.18.0 2020-09-08 15:37:48 +03:00
Sebastian Dröge
d2590ff190 Regenerate everything 2020-09-08 15:36:06 +03:00
Sebastian Dröge
ac0cadfd2d Remove v1_18 version overrides
We depend on 1.18.0 now instead of 1.17.2
2020-09-08 15:35:32 +03:00
Sebastian Dröge
a4fb36f972 Update gir-files to 1.18.0 2020-09-08 15:25:41 +03:00
Sebastian Dröge
6e593ef4aa examples: Debug log ringbuffer API requires GStreamer 1.14 or newer
Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/issues/281
2020-09-07 11:11:54 +03:00
Sebastian Dröge
ea3d0246bf gstreamer/log: Fix debug_remove_default_log_function() to actually work
We have to pass `NULL` / `None` instead of the actual default log
function as because of `-Bsymbolic` or how DLLs work on Windows the
external function pointer is different to the internal one.
2020-09-03 10:13:09 +03:00
Marijn Suijten
beaa22fabb base_transform: Reset unused vfuncs on consecutive configure calls
If a user ends up changing the configured mode later on previously
registered vfuncs are not reset meaning the object is effectively stuck
in mode `Both`.
2020-09-02 00:39:38 +02:00
Sebastian Dröge
160728965b gstreamer: Update pretty-hex dependency to 0.2 2020-09-01 09:55:31 +03:00
Sebastian Dröge
2ac5a68896 examples: Remove unused imports
Not required anymore after a fix in glib.
2020-09-01 09:53:09 +03:00
Sebastian Dröge
82b469bc59 Update CI images for Rust 1.46 and GStreamer 1.17.90
And also update to meson 0.55.1 while we're at it.
2020-08-27 19:42:02 +03:00
Sebastian Dröge
fb779b42a8 Use glib::timeout_add_local() instead of removed gtk::timeout_add() 2020-08-27 09:49:27 +03:00
Jordan Petridis
cc525cdf70
ci: ensure the registry cache and lockfile are up-to-date
We are caching the CARGO_HOME which includes git repos of
the gtk-rs bindings. Since we don't specify a branch
so it uses the default branch for the ref.

cargo build usually does an update if it has network access,
but its not guaranteed or the case for other tools like clippy
which may still point to the stale git snapshot like here:

https://gitlab.freedesktop.org/thaytan/gstreamer-rs/-/jobs/4165449
2020-08-26 13:58:48 +03:00
Jordan Petridis
42768a3159
ci: get rid of some template inheretence in yaml
its confusing and it took 3 attempts to get `before_script`
to fucntion as expected. Instead get rid of the anchor
and use a (questionable) but simpler heuristic to detemine
when to update the lockfile.
2020-08-25 19:24:45 +03:00
Jan Schmidt
2ead28defe examples: Add an example of using the debug ringbuffer
A simple example of using the GStreamer debug ringbuffer to only
dump logs on a specific event (in this case EOS).
2020-08-26 00:07:02 +10:00
Jordan Petridis
0ec95b4aae
ci: fix plugins-update jobs
This is a hotfix for 8d9bb82492

These jobs are only run on after merge and were not tested before
2020-08-25 11:33:59 +03:00
Jordan Petridis
8d9bb82492 ci: ensure the registry cache and lockfile are up-to-date
We are caching the CARGO_HOME which includes git repos of
the gtk-rs bindings. Since we don't specify a branch
so it uses the default branch for the ref.

cargo build usually does an update if it has network access,
but its not guaranted or the case for other tools like clippy
which may still point to the stale git snapshot like here:

https://gitlab.freedesktop.org/thaytan/gstreamer-rs/-/jobs/4165449
2020-08-25 07:30:11 +00:00
Sebastian Dröge
a4239c3462 gstreamer: Remove API that was deprecated in 0.16 2020-08-24 17:33:35 +03:00