In affected project of this crate, the lifetime of the iterator produced
by Vec::into_iter() is not constrained to the lifetime of the Bump that
allocated the vector's memory. Using the iterator after the Bump is
dropped causes use-after-free accesses.
Link: https://github.com/ValveSoftware/Proton/pull/6792
If a stream ID is not set, gstreamer will generate random stream IDs for
the streams in downstream elements. This can cause decodebin to generate
its source pads in a non-deterministic order, as decodebin takes into
account the stream IDs when sorting the source pads.
This patch includes some changes from Arek Hiler.
CW-Bug-Id: #21192
1. ElementImpl trait requires GstObjectImpl
2. gst logging macros are no longer globals prefixed with gst_, they
live inside gst:: instead
3. element is not longer passed around in many places, it can be
accessed as self.obj() or self.instance()
4. query_default is now a part of gst::Pad and takes the pad as an argument
5. some constructors were changed to use from_$type()
6. query.view_mut() returns QueryViewMut
7. ElementFactory::make now returns a builder that we have to .build()
There are some extra cleanups as well:
1. spurious 'mut' and '&' are removed, a lot of that can be infered or
were turned into a dereference by the compiler anyway
2. !bla.is_ok() are now bla.is_err()
3. some unneeded imports were removed
Those are the original repos that were later moved to freedesktop.org.
The author recently started updating them as mirrors.
Freedesktop.org goes down much more often than GitHub and we fetch
everything else from GitHub anyway.
It's better to depend on fewer hosting services to have fewer
interruptions.