Philippe Normand
517dc286d0
rtpav1depay: Implement srcpad set_caps
...
Without this auto-pluggers such as decodebin or parsebin will be unable to
process AV1 RTP payloads.
Tested with: `videotestsrc num-buffers=50 ! videoconvert ! av1enc ! av1parse ! rtpav1pay ! queue ! decodebin3 ! videoconvert ! queue ! autovideosink`
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1038 >
2023-01-07 13:25:15 +02:00
Guillaume Desmottes
514a8e48ef
textahead: fix previous buffers
...
Actually implement a proper queue.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1038 >
2023-01-07 13:25:07 +02:00
Sebastian Dröge
ff1c99df98
gtk4: Rename a variable to make more sense
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1038 >
2023-01-07 13:25:00 +02:00
Sebastian Dröge
696944c08e
gtk4: Handle more GL context creation failures gracefully
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1038 >
2023-01-07 13:24:53 +02:00
Sebastian Dröge
37dedfd4d0
gtk4: Reset app context and display if GL context creation fails
...
No need to keep them around and that way we either have all 3 values set
or none of them.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1038 >
2023-01-07 13:24:48 +02:00
Sebastian Dröge
bb2f632c9c
gtk4: Reduce number of unwraps during GL context creation and query handling
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1038 >
2023-01-07 13:24:42 +02:00
Jordan Petridis
f6b092d2af
video/gtk4: Fix typo in info logs
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1038 >
2023-01-07 13:24:30 +02:00
Nirbheek Chauhan
cd5a93dc09
meson: Enable gstreamer-gl-1.0 features in gtk4 plugin
...
Basically, if gstreamer-gl-1.0 is built with wayland / x11 / egl, use
those features in the gtk4 plugin.
MacOS always uses CGL, and it's always available. Windows version does
not use GL yet.
Requires https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3654
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1038 >
2023-01-07 13:24:24 +02:00
Nirbheek Chauhan
a5a3c44951
cargo_wrapper: Write to log with line-buffering
...
So we get log output while cargo is running, not just when it completes
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1038 >
2023-01-07 13:24:18 +02:00
Nirbheek Chauhan
a0dbb94e01
gtk4: Remove 'gst' prefix from another debug category
...
Missed it last time. Caught all of them this time. Continuation from:
https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1029
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1038 >
2023-01-07 13:24:12 +02:00
Nirbheek Chauhan
7013416a39
meson: Require gstreamer-gl-1.0 for gtkpaintablesink
...
This is required on macOS, and is also highly recommended on Linux.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1038 >
2023-01-07 13:24:05 +02:00
Nirbheek Chauhan
9f8fa99089
gtk4: Use GL implicitly without the gst_gl feature on macOS
...
We already require gstreamer-gl as a dependency on macOS, so reflect
that in the code too.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1038 >
2023-01-07 13:23:59 +02:00
Sebastian Dröge
34434bd877
gtk4: Add support for GL on macOS
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1038 >
2023-01-07 13:23:53 +02:00
Nirbheek Chauhan
d67baa7668
meson: Add an option to build examples
...
Required renaming threadshare/benchmark to threadshare/ts-benchmark
because 'benchmark' as a target name is reserved for meson's
`benchmark` target.
Disabled by default because cargo decides that it has to rebuild
everything, and is really slow because of that.
Also required adding --features for setting features required by the
examples.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1038 >
2023-01-07 13:23:47 +02:00
Nirbheek Chauhan
8cdb30bd39
meson: Add options for all plugins
...
Required a slight rework of the build file, and how options are passed
to cargo_wrapper.py
Necessitated a bump of the required gstreamer version to 1.20, which
should be fine for the meson build since its primary function is to be
built as part of the gstreamer monorepo build to get a dev env.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1038 >
2023-01-07 13:23:41 +02:00
Nirbheek Chauhan
efc07cecf7
cargo_wrapper: Fix setting of PKG_CONFIG_PATH and CARGO_TARGET_DIR
...
Don't need to use an env var for the latter.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1038 >
2023-01-07 13:23:36 +02:00
Nirbheek Chauhan
7db53aba22
meson: Require tomllib / tomli python modules explicitly
...
These are required by dependencies.py
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1038 >
2023-01-07 13:23:29 +02:00
Nirbheek Chauhan
2045847bd6
gtk4: Remove 'gst' from gtksink debug category name
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1038 >
2023-01-07 13:23:23 +02:00
Sebastian Dröge
f4cb4b9da6
Update Cargo.lock
2022-12-27 13:15:11 +02:00
Sebastian Dröge
b0bd55c4d2
Update versions to 0.9.4
2022-12-27 13:14:59 +02:00
Sebastian Dröge
b9e6c817b7
Update Cargo.lock
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1027 >
2022-12-27 12:53:56 +02:00
Sebastian Dröge
e95a2c1016
gtk4: Release GStreamer GL context and display when going back to NULL state
...
And acquire it again next time when going to READY state.
Also clean up the whole GL context initialization.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1027 >
2022-12-27 12:39:56 +02:00
Sebastian Dröge
31760b8f9a
gtk4: Use glib::ThreadGuard
instead of the fragile crate
...
Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/issues/272
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1027 >
2022-12-27 12:39:56 +02:00
Sebastian Dröge
8d7ce380c4
gtk4: Don't try to use GL mapped video frames as raw RGB memory
...
This will fail badly because the memory pointers are actually GL texture
IDs, however this case can't really happen in practice so simply assert
on this.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1027 >
2022-12-27 12:39:56 +02:00
Sebastian Dröge
e8701652e2
gtk4: Don't error out when the main context channel does not exist anymore when rendering
...
But instead return flushing to shut down silently.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1027 >
2022-12-27 12:39:56 +02:00
Sebastian Dröge
993619d654
gtk4: Flush frames from the paintable when shutting down the sink
...
Otherwise it will continue showing the last frames forever and keep
around the frames forever instead of rendering black.
Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/issues/281
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1027 >
2022-12-27 12:39:56 +02:00
Johan Bjäreholt
d9d5571641
fmp4mux: Only push fragment_offset if write_mfra is true
...
This is done so that the fragment_offset vector does not infinitely
build up when write_mfra is disabled.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1027 >
2022-12-27 12:39:56 +02:00
Nirbheek Chauhan
ba889c143c
meson: Disable webp plugin on Windows and macOS
...
Known to be broken, should be kept disabled till the fix is in
a release: https://github.com/qnighy/libwebp-sys2-rs/pull/13
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1027 >
2022-12-27 12:39:56 +02:00
Nirbheek Chauhan
4b95bde38f
meson: Handle windows path separator correctly
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1027 >
2022-12-27 12:39:56 +02:00
Nirbheek Chauhan
041f51c4bb
cargo_wrapper: Handle windows paths for depfiles
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1027 >
2022-12-27 12:39:56 +02:00
Sebastian Dröge
161c6db641
deny: Update
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1027 >
2022-12-27 12:39:56 +02:00
Sebastian Dröge
deeff67f94
aws: Update to AWS SDK 0.52/0.22
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1027 >
2022-12-27 12:39:56 +02:00
Nirbheek Chauhan
568c2be582
meson: Fix pkgconfig detection when specified in machine file
...
When pkgconfig and pkg_config_path are specified in the machine file,
we need to parse those and pass them on to the cargo_wrapper.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1027 >
2022-12-27 12:39:56 +02:00
Nirbheek Chauhan
548fe54ba9
meson: Do not serialize env, use env: kwarg
...
This is simpler, and more correct.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1027 >
2022-12-27 12:39:56 +02:00
Sebastian Dröge
a1afef2207
Update Cargo.lock
...
This time correctly.
2022-12-27 10:43:00 +02:00
Sebastian Dröge
778c4da27e
Update Cargo.lock
2022-12-27 10:32:03 +02:00
Sebastian Dröge
cbc99fb198
Revert "Revert "rav1e: Update to rav1e 0.6""
...
This reverts commit 5f6afce842
.
It should be building fine on macOS too now.
2022-12-27 10:31:33 +02:00
Sebastian Dröge
b701003352
livesync: Add missing version to the gst-plugin-gtk4 / gst-plugin-version-helper dependencies
2022-12-16 20:37:58 +02:00
Sebastian Dröge
5f9645bb74
Update Cargo.lock
2022-12-16 20:24:01 +02:00
Sebastian Dröge
bae5294e8f
Update versions to 0.9.3
2022-12-16 20:22:17 +02:00
Sebastian Dröge
19957d1d23
Update Cargo.lock
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1017 >
2022-12-16 18:59:32 +02:00
Sebastian Dröge
bc9408840f
livesync: Use release versions of the GLib/GStreamer bindings
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1017 >
2022-12-16 18:59:32 +02:00
Sebastian Dröge
08668a4bbb
livesync: Fix version
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1017 >
2022-12-16 18:59:32 +02:00
Sebastian Dröge
fb745f077b
fmp4mux: Skip gap buffers earlier to consider them for the sample durations and fragment start durations
...
Otherwise dropping the gap buffers would offset the timestamps of
following samples.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1017 >
2022-12-16 18:59:32 +02:00
Sebastian Dröge
1eea2219c6
mp4mux: Adjust durations and possibly stream start time on encountering a gap buffer
...
If there was a previous sample in this stream then its duration needs to
be extended by the gap position, and if there was none then the start
time of the whole stream has to be shifted by the duration.
Not doing so causes timestamps to be offset wrongly by the duration of
the gap.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1017 >
2022-12-16 18:52:03 +02:00
Sebastian Dröge
9b2d9ba4f9
mp4mux: Fix edit list shift for streams with initial DTS smaller earliest PTS but initial DTS positive
...
This would be a stream where the initial DTS is negative if the initial
PTS was zero, but it is offset so the initial DTS became positive now.
The edit list shift has to happen exactly the same way though.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1017 >
2022-12-16 18:51:57 +02:00
Sebastian Dröge
00615ab478
mp4mux: Don't write gap edit lists if their duration would be zero
...
The track might start later than the earliest track by less than one
timescale units, in which case writing an empty gap edit list would be
useless and confusing.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1017 >
2022-12-16 18:51:50 +02:00
Sebastian Dröge
6ceccac1be
mp4mux: Don't write empty chunks at the end if the last buffer of a stream started a new chunk and happened to be a from a gap event
...
Empty chunks are not valid in MP4.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1017 >
2022-12-16 18:51:30 +02:00
Jan Alexander Steffens (heftig)
6596b6cdd1
Add livesync plugin
...
It attempts to produce a (nearly) gapless live stream by synchronizing
its output to the running time and forwarding the next input buffer if
its start is (nearly) flush with the end of the last output buffer.
If the input buffer is missing or too far in the future, it duplicates
the last output buffer with adjusted timestamps. If it is operating on a
raw audio stream, it will fill duplicate buffers with silence.
If an input buffer arrives too late, it is thrown away. If the last
input buffer was accepted too long ago (according to `late-threshold`),
a late input buffer is accepted anyway, but immediately considered a
duplicate. Due to the silence-filling, this has no effect on audio, but
video gets a "slideshow" effect instead of freezing completely.
The "many-repeats" property will be notified when this element has
recently duplicated a lot of buffers or recovered from such a state.
Co-authored-by: Vivia Nikolaidou <vivia@ahiru.eu>
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1017 >
2022-12-16 18:51:22 +02:00
Michiel Konstapel
b5641d838e
audiornnoise: Add debug output for voice activity to help you choose a threshold
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1017 >
2022-12-16 18:51:15 +02:00