Marijn Suijten
ce98a4755e
examples: Return anyhow::Result
out of main()
...
It is annoying to see only a single line of error when debugging a chain
of (e.g. `anyhow::Context::context()`-created) errors, and have a
zero exit-code while at it.
Instead Rust supports returning a `Result` type straight from main which
is `Debug`- instead of `Display`-printed, so that - in the case of
`anyhow::Error` - all nested (via `.source()`) `Error`s are printed in
backtrace-like form, and the exit code is appropriately non-zero.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1336 >
2023-11-10 12:53:08 +01:00
Marijn Suijten
1ec4560b62
gl/egl: Appropriately mark display functions as manual
...
Two functions were manually implemented but not marked as such, leaving
unneeded "TODO call ffi:xxx" markers in the codebase. Also improve the
aliases on the manual implementations.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1336 >
2023-11-10 12:53:08 +01:00
Marijn Suijten
5741b6a52e
gl: Provide raw handle()
getter function on GLDisplay
...
Having access to the raw handle is useful when sharing the display
and context with an existing application.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1336 >
2023-11-10 12:53:08 +01:00
Sebastian Dröge
5ee8ee8545
utils: streamproducer: Don't use gst_element_send_event()
in another place
...
It can cause deadlocks thanks to taking the state lock.
2023-11-10 09:45:09 +02:00
Sebastian Dröge
754b6487d4
ci: Run cargo update
as part of the cargo deny
/ cargo outdated
jobs
2023-11-10 08:56:32 +02:00
Sebastian Dröge
41519511aa
Add Cargo.lock to the repository
...
This makes sure that any broken dependency updates are not breaking our
build, at the cost of requiring us to update the lock file regularly.
See also https://blog.rust-lang.org/2023/08/29/committing-lockfiles.html
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1340 >
2023-11-09 10:07:47 +02:00
Sebastian Dröge
3051401aa4
deny: Add override for duplicated toml_edit dependency
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1340 >
2023-11-09 10:03:23 +02:00
Sebastian Dröge
4b3d9f586e
element: Add catch_panic_future()
helper function for subclasses
...
This allows wrapping a future in a way that panics are converted to
error messages on the object.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1339 >
2023-11-07 10:43:20 +02:00
Sebastian Dröge
f471501df5
gstreamer: meta: Add MetaRef::copy()
for copying a meta between buffers
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1338 >
2023-11-03 11:55:20 +02:00
Sebastian Dröge
eb6d3a6c6c
gstreamer: meta: Add as_meta_ref()
to MetaRefMut
...
This reduces code duplication between `MetaRef` and `MetaRefMut`.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1338 >
2023-11-03 11:49:41 +02:00
Sebastian Dröge
86d470e82c
gstreamer: meta: Give returned tags array an arbitrary lifetime
...
The tags are statically stored.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1338 >
2023-11-03 11:48:23 +02:00
Sebastian Dröge
e84af103a1
Regenerate with latest gir / gir-files
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1335 >
2023-11-02 15:09:20 +02:00
Sebastian Dröge
339bec6aef
Update gir / gir-files
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1335 >
2023-11-02 15:08:17 +02:00
Fabian Orccon
b901322c46
gstreamer: rank: Do not implement gst::Rank as enum
...
Rank is not limited to known types like GST_RANK_NONE,
GST_RANK_MARGINAL, GST_RANK_SECONDARY and GST_RANK_PRIMARY, but it
can be whatever arbitrary number.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1327 >
2023-11-02 13:32:00 +02:00
Sebastian Dröge
4a015d94af
Use let-else instead of match for weak reference upgrades
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1333 >
2023-10-30 11:00:58 +02:00
Sebastian Dröge
fc4a0d29c6
tutorials: Use async-channel instead of the glib MainContext channel
...
The latter will be removed in favour of using async code in the future,
and async code generally allows for more flexible message handling than the
callback based MainContext channel.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1333 >
2023-10-30 11:00:58 +02:00
Marc Wiblishauser
130dc49b22
gstreamer-tag: Introduce gstreamer-tag
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1330 >
2023-10-27 13:27:26 +03:00
Sebastian Dröge
bd4122e334
gstreamer: error: Allow using variable expansion in loggable_error!
macro
...
Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/issues/490
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1332 >
2023-10-26 11:49:58 +00:00
Sebastian Dröge
bd9b1d6e38
gstreamer: meta: Move has_tag()
and tags()
getters to MetaRef
...
On `MetaAPI` only the static meta API type is known and based on that
it's not possible to work with the tags of a specific meta instance's
API.
As the methods take a `&self` anyway they would be expected to check the
value at hand instead.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1331 >
2023-10-26 13:41:50 +03:00
Sebastian Dröge
a26fcaf0ad
gstreamer: meta: Add upcast_ref()
function to go from a specific to a generic meta
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1331 >
2023-10-26 13:41:50 +03:00
Sebastian Dröge
16acea71d4
gstreamer: meta: Remove useless API on Meta
that can't be called anyway
...
`Meta` only exists inside a `MetaRef` / `MetaRefMut` and that already
provides exactly the same functions for all meta types.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1331 >
2023-10-26 13:41:47 +03:00
Sebastian Dröge
d5ba6c1336
gstreamer: meta: Add some more AsRef
and AsMut
impls
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1331 >
2023-10-26 13:38:07 +03:00
Sebastian Dröge
4d19d7b0b6
gstreamer: format: Implement some more conversion traits
...
Specifically, `From<$formatted_type> for $inner` and
`TryFrom<$formatted_type> for usize` for some types.
Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/issues/492
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1329 >
2023-10-25 12:09:45 +03:00
Sebastian Dröge
414019af21
gstreamer: Implement Default
trait for AllocationParams
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1328 >
2023-10-24 15:04:14 +00:00
François Laignel
a41dc25eba
video: fix big endian video format order
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1326 >
2023-10-22 18:24:39 +02:00
Sebastian Dröge
a04ed127af
gstreamer: Fix API typo in owned ReferenceTimestampMeta
reference getter
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1325 >
2023-10-16 15:45:12 +03:00
Sebastian Dröge
5312131069
gstreamer: Simplify MetaAPIExt
trait implementation
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1325 >
2023-10-16 15:19:52 +03:00
Sebastian Dröge
62f58620b7
gstreamer: Add accessors for PadProbeData
s on PadProbeInfo
...
And make use of it in examples and other code.
This allows to simplify usage a bit in most cases.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1324 >
2023-10-16 11:28:18 +03:00
François Laignel
4c8d16d09e
video: fix visibility for VideoVBIEncoder::try_new
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1323 >
2023-10-11 17:53:43 +02:00
Sebastian Dröge
547cfb44e2
gstreamer: Simplify Element::element_class()
implementation a bit
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1322 >
2023-10-11 16:06:20 +03:00
Sebastian Dröge
3f16233a01
gstreamer: Add DeviceProviderClassExt
extension trait for class methods
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1322 >
2023-10-11 16:06:16 +03:00
Bilal Elmoussaoui
27a0bc5af0
docs/gstreamer: Embed docs for ElementClass functions
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1322 >
2023-10-11 12:49:51 +00:00
François Laignel
abdd4df415
gst-video: bindings for VideoVBIEncoder & VideoVBIParser
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1319 >
2023-10-09 18:21:16 +00:00
François Laignel
b158ca83f9
gst-video: generate vertical blanking interval related bindings
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1319 >
2023-10-09 18:21:16 +00:00
Sebastian Dröge
a2387d1f84
examples: Updates to memmap2 0.9
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1321 >
2023-10-06 09:08:29 +03:00
Sebastian Dröge
8df470b85c
ci: Update to Rust 1.73
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1320 >
2023-10-06 00:15:45 +03:00
Sebastian Dröge
b42b01ba86
Update CHANGELOG.md for 0.21.1
2023-10-04 13:30:40 +03:00
Sebastian Dröge
3a5f69b64c
gl: Don't autogenerate GL buffer pool configuration functions
...
These need manual bindings.
2023-10-04 10:22:03 +03:00
Sebastian Dröge
a6470f13c9
Fix various new 1.73 clippy warnings
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1317 >
2023-10-03 17:44:12 +03:00
Guillaume Desmottes
7bde0285ff
gst-utils: prevent dead lock when requesting key unit
...
Sending the UpstreamForceKeyUnitEvent using gst_element_send_event()
internally takes the state lock. If appsink is pre-rolling we are also
holding the preroll lock.
This may result in a dead lock with the thread doing the state change as
this one takes the state lock and then the pre-roll lock.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1316 >
2023-10-03 11:45:51 +02:00
Sebastian Dröge
d7494bf1db
gst: Add CustomMeta::register_simple()
...
As a wrapper around the 1.20 `gst_meta_register_custom()` instead of the
new 1.24 convenience function to make it available to more versions.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1310 >
2023-10-02 19:50:41 +03:00
Sebastian Dröge
fa3ce573d7
app: Add max-bytes and max-time setters to the AppSink
builder
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1310 >
2023-10-02 19:49:10 +03:00
Sebastian Dröge
44602238d9
Regenerate with latest GStreamer gir files
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1310 >
2023-10-02 19:44:35 +03:00
Sebastian Dröge
c0696d872d
Update GStreamer gir files
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1310 >
2023-10-02 19:43:18 +03:00
Sebastian Dröge
635b31614c
video: Fix ordering of video formats according to latest libgstvideo
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1310 >
2023-10-02 19:39:46 +03:00
Sebastian Dröge
72a5b1bdb9
ci: Update to Rust 1.72.1
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1310 >
2023-10-02 19:39:46 +03:00
Anders Hellerup Madsen
3e5316c869
gl: implement Debug for GL video frames
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1312 >
2023-10-02 11:33:57 +02:00
Anders Hellerup Madsen
f8effdda61
gl: export GLMemory getter methods on GLVideoFrame
...
also change `as_non_null_ptr()` to `as_raw()`
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1312 >
2023-10-02 11:33:57 +02:00
Anders Hellerup Madsen
6eb01dc916
video_frame: refactor traits
...
this adds an IsVideoFrame trait that makes it easier to provide all the
shared methods between VideoFrame, VideoFrameRef, GLVideoFrame and
GLVideoFrameRef. Now only a single method, `as_non_null_ptr()` has to be
implemented and the rest of the shared methods will be provided by the
`VideoFrameExt` trait.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1312 >
2023-10-02 11:33:57 +02:00
Anders Hellerup Madsen
61d559521b
gl: add memory access functions to GLVideoFrame
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1312 >
2023-10-02 11:33:57 +02:00