Commit graph

3494 commits

Author SHA1 Message Date
Guillaume Desmottes
0e17878bed utils: streamproducer: add API to retrieve pushed and dropped buffers
This may be used by applications to compute statistics about the overall
pipeline health, like the ratio of buffers dropped.
2022-07-11 09:10:52 +02:00
Paolo Borelli
f2a2e6702c caps: add new_empty_simple constructor 2022-07-05 14:49:21 +02:00
Sebastian Dröge
17005f220b ci: Update to Rust 1.62 2022-07-01 00:04:33 +03:00
Sebastian Dröge
4dade30f0d Fix/silence a couple new clippy warnings 2022-06-30 13:08:33 +00:00
Sebastian Dröge
f30fcbcf9a pbutils: Fix PbUtilsCapsDescriptionFlags serde (de)serialization tests 2022-06-30 12:42:37 +03:00
Sebastian Dröge
65629426cb tracer: Add bindings for new pad chain hooks 2022-06-30 08:46:06 +03:00
Sebastian Dröge
07562c592f video: Add bindings for is_common_aspect_ratio() 2022-06-30 08:46:06 +03:00
Sebastian Dröge
90aaa32957 Regenerate 2022-06-30 08:46:06 +03:00
Sebastian Dröge
fb724aedeb Update gst-gir-files 2022-06-30 08:46:06 +03:00
Sebastian Dröge
8e9e135128 Update gir-files 2022-06-30 08:46:06 +03:00
Sebastian Dröge
542bb130f4 Update gir 2022-06-30 08:46:06 +03:00
Sebastian Dröge
f333991a5a ci: Update image 2022-06-30 08:46:06 +03:00
Sebastian Dröge
c61d913ec6 tracer: Add support for the 1.20 "plugin-feature-loaded" hook 2022-06-29 10:13:59 +03:00
Sebastian Dröge
9e77ab3212 tracer: Re-order trait functions slightly for the order to make more sense 2022-06-29 10:13:36 +03:00
Sebastian Dröge
14f485d0b1 bus: Take ownership of the message in post() 2022-06-28 23:36:08 +03:00
Sebastian Dröge
20ac231146 gstreamer: Allow borrowing Segments from Values without copying 2022-06-27 22:28:49 +03:00
Sebastian Dröge
c9d07219c8 Store whether GStreamer was initialized in an AtomicBool
Avoids a function call in the normal case.
2022-06-27 10:28:28 +03:00
Sebastian Dröge
7754b8dd70 allocators: Reduce number of initialization check macros 2022-06-27 10:07:58 +03:00
Sebastian Dröge
310ff531fb base: Fix memory leak if BaseSrc/PushSrc parent class is not filling the provided buffer as it should 2022-06-24 11:13:06 +03:00
Sebastian Dröge
b28664ccbd gstreamer: Fix serde serialization tests
ron serialization is now writing `1.0` instead of just `1`.
2022-06-24 11:13:06 +03:00
Sebastian Dröge
6b47d646c0 base: Add support for returning buffer lists from BaseSrc/PushSrc subclasses 2022-06-24 11:13:06 +03:00
Sebastian Dröge
5e3ace0ecc ci: Fix syntax for coverage reports to the new format 2022-06-07 09:04:40 +03:00
Sebastian Dröge
2c373f5d24 examples: Update to memfd 0.6 2022-06-06 11:18:40 +03:00
Sebastian Dröge
50f3eee8eb play: Mark play_message module as private
The only type that is defined in it is re-exported at the crate root.
2022-05-24 11:02:27 +03:00
Philippe Renon
01b8279bc1 examples: add GstPlay example 2022-05-24 06:55:12 +00:00
Philippe Renon
35aff36c61 Introduce gstreamer-play 2022-05-24 06:55:12 +00:00
Philippe Renon
f35baffb52 Update gst-gir-files 2022-05-24 06:55:12 +00:00
Stephan Seitz
c254c5fd1a gstreamer: add PadProbeId::as_raw()
This allows to convert PadProbeId to numberic values without
taking them by value (like `into_glib`).

See https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/issues/382#note_1391236
2022-05-23 08:19:47 +00:00
Sebastian Dröge
cb1f08a425 gstreamer: Implement FusedFuture for PromiseFuture 2022-05-22 12:42:42 +03:00
Sebastian Dröge
aaf601831e gstreamer: Index structures/taglist more safely
Accessing after the length will lead to a critical warning and should
not happen.
2022-05-22 12:42:42 +03:00
Sebastian Dröge
d4430ecc6a Implement more iterator functions / traits in custom iterators for efficiency reasons 2022-05-22 12:42:42 +03:00
Philippe Renon
8f1c94f45d Regenerate with latest gir 2022-05-20 17:48:40 +02:00
Philippe Renon
5ed8416717 Update gir 2022-05-20 17:48:40 +02:00
Sebastian Dröge
e76ae3f434 gstreamer: Fix a few new clippy warnings 2022-05-20 11:19:07 +03:00
Sebastian Dröge
0055399471 ci: Update to Rust 1.61 2022-05-19 18:10:24 +03:00
Jordan Petridis
7283fe69b2 ci: Build gstreamer-gl on windows
This was disabled since DirectX wasn't available, but its working
now on the server2022 image that provides the required headers
and dlls.
2022-05-19 13:26:34 +03:00
Jordan Petridis
9d873d6755 ci: define the dependencies between jobs
This means that jobs can start the moment they are ready, instead
of waiting for the previous stage to finish.

Also define their interruptibility so new pipelines can automatically
cancel the previous ones.

https://docs.gitlab.com/ee/ci/yaml/index.html#needs
2022-05-18 22:21:08 +03:00
Jordan Petridis
7075a4b3ea ptp_clock: fix build on windows
c_ulong/gulong can be 32bit or 64bit depending on the platform.
Always cast it to u64 so the compiler will be happy.
2022-05-18 22:20:37 +03:00
Jordan Petridis
4d7bd9bfcb ci: use rules instead of only/except
only/except has got deprecated in favour of rules

maybe it fixes #370 ?

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/701>
2022-05-18 19:51:49 +03:00
Jordan Petridis
d53dfcf94e ci: use a custom powershell script to run windows tests
There are a couple things going on here.

First, we need to avoid building egl/wayalnd/x11 crates on windows
as they can't be built.

Then we need to avoid running -sys tests as they don't succeed
currently. See [1]

Finally use a matrix:parallel job to tests multiple build
configurations.

[1] https://github.com/gtk-rs/gtk3-rs/issues/54

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/701>
2022-05-18 19:51:49 +03:00
Jordan Petridis
5e27da5a1c ci: add an msvc 2017 test
Tests disabled for now, till some quirks are worked out.
Thi should be good enough to at least not break the build though.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/701>
2022-05-18 19:51:49 +03:00
Jordan Petridis
842dad3fa5 Cargo.toml: add cross-platform crates to default-members
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/701>
2022-05-18 13:12:47 +03:00
Philippe Renon
5d2f36fac3 gstreamer: implement FromGlibPtrBorrow trait for gst::Structure
needed for callbacks that pass GstStructure by reference
for example: the PlaySignalAdapter error and warning signals

needed by https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1036
2022-05-17 23:19:35 +02:00
Philippe Renon
268e351dde examples: fix clippy errors 2022-05-17 21:47:34 +02:00
Thibault Saunier
8c69388eff utils: Re export AddConsumerError 2022-05-17 20:19:12 +03:00
Guillaume Desmottes
5349822962 utils/streamproducer: add ConsumptionLink
Having an explicit link object makes it much easier to build complex
producers/consumers dynamics graphs.
It provides helper to switch producers and prevent accidentally keeping
broken links around as they are disconnected on Drop.
2022-05-17 11:04:35 +03:00
Guillaume Desmottes
f68efd0cab utils/streamproducer: add API to not forward eos to consumers
User may want to plug another producer when one is eos, in such case we
don't want to propagate eos to consumers.
2022-05-17 11:04:35 +03:00
Guillaume Desmottes
351f070c8e utils/streamproducer: reset callbacks when removing consumer 2022-05-12 14:56:55 +02:00
Sebastian Dröge
98cc289bcc utils/streamproducer: Add StreamProducer::error() to signal an error message to all consumers 2022-05-12 10:51:56 +03:00
Sebastian Dröge
e263bd8945 utils/streamproducer: Request keyframes without a lock held and also after an appsrc has dropped some data 2022-05-12 10:44:59 +03:00