Sebastian Dröge
e4788662b9
webrtchttp: Don't use let-else for now
...
We still support Rust 1.63.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1008 >
2022-12-12 13:39:04 +02:00
Sebastian Dröge
cab5410782
webrtchttp: Fix formatting
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1008 >
2022-12-12 13:38:59 +02:00
Sanchayan Maity
8ac5632561
webrtchttp: Use tokio runtime for spawning thread used for candidate offer
...
While at it, we had a bug in whepsrc where for redirect we were
incorrectly calling initial_post_request instead of do_post. Fix
that.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1008 >
2022-12-12 13:38:53 +02:00
Sanchayan Maity
4f67623c22
webrtchttp: Use a proper Rust type name for ICE transport policy
...
We don't need to namespace here but can just use the Rust namespaces.
Only the GType name has to stay like it is.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1008 >
2022-12-12 13:38:48 +02:00
Sanchayan Maity
1d4d9b3bdb
webrtchttp: Do not import element_imp_error
...
element_imp_error and such macros should not be imported but rather
only be accessed via gst namespace.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1008 >
2022-12-12 13:38:41 +02:00
Sanchayan Maity
3202c4dc39
webrtchttp: Do not block webrtcbin signal handlers for sending candidates
...
While at it, drop the OPTIONS request in WHIP sink. This was not really
required. See section 4.4 of the spec
https://www.ietf.org/archive/id/draft-ietf-wish-whip-01.html#name-stun-turn-server-configurat
Also introduce a new error type and distinguish between a future being
aborted or returning an error.
We call abort only during shutdown and hence except for the DELETE
resource request being aborted, other waits on future should not
be fatal.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1008 >
2022-12-12 13:38:36 +02:00
Alba Mendez
3bc9df7e71
webrtchttp: whipsink: construct TURN URL correctly
...
Right now the code manually pieces together the components
in a String for efficiency. When credentials contain special
characters this can result in invalid URLs, so do it the proper
way (with Url::parse + format) to make sure components are escaped
as needed.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1008 >
2022-12-12 13:38:29 +02:00
Sanchayan Maity
929c48e19a
webrtchttp: Drop unused dependencies
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1008 >
2022-12-12 13:38:20 +02:00
Sanchayan Maity
4e9ec324e1
webrtchttp: Implement timeout for waiting on futures
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1008 >
2022-12-12 13:37:47 +02:00
Sanchayan Maity
3fc0326084
webrtchttp: whipsink: Add candidates when sending the offer
...
WHIP endpoint providers like Cloudflare do not support Trickle ICE
and need candidates to be send along with the initial offer. Instead
of sending the offer in create-offer promise, send it once the ICE
candidates have been gathered.
While at it add properties to set STUN and TURN server along with the
ICE transport policy as at least when testing the Cloudflare WHIP
endpoint seems unreachable without it. This has also been observed
with Cloudflare provided demos.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1008 >
2022-12-12 13:37:43 +02:00
Sanchayan Maity
420716fb63
webrtchttp: whipsink: Miscellaneous clean up
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1008 >
2022-12-12 13:37:35 +02:00
Sanchayan Maity
baf3da86cc
webrtchttp: Factor out the common bits for WHIP and WHEP
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1008 >
2022-12-12 13:37:30 +02:00
Sanchayan Maity
2e529fa152
Add a WebRTC WHEP source element
...
This implements WHEP specification based on
https://datatracker.ietf.org/doc/html/draft-murillo-whep-00
and has been tested with Cloudflare.
Server offers are likely to be removed from the WHEP specification
in upcoming revisions, to avoid compatibility issues. None of the
commercial services implementing WHEP support server initiated offers.
So we only support client side initiated offers.
Follows session setup and tear down as covered in Figure 1, Section 3
of the specification.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1008 >
2022-12-12 13:37:13 +02:00
Sebastian Dröge
60772d2c06
ci: Disable gst-build job for now
...
See https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/issues/262
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1008 >
2022-12-12 13:37:04 +02:00
Raphael Dürscheid
184f879bf7
webrtcsink: Support nvv4l2vp9enc
...
Naive support for nvv4l2vp9enc by assuming configuration is equivalent
to existing nvv4l2vp8enc. Validated to have relevant properties.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1008 >
2022-12-12 13:37:00 +02:00
Sebastian Dröge
b2ad89cf06
deny: Remove another dependency that is not duplicated anymore
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1008 >
2022-12-12 13:36:50 +02:00
Seungha Yang
506c96e8aa
dav1ddec: Lower rank to primary
...
The rank of AOM av1dec was demoted as secondary, and thus
primary rank is sufficient.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1008 >
2022-12-12 13:36:43 +02:00
Sebastian Dröge
2227b41342
deny: Remove dependencies that are not duplicated anymore
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1008 >
2022-12-12 13:36:38 +02:00
Sebastian Dröge
e6789fc338
rav1e: Update to rav1e 0.6
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1008 >
2022-12-12 13:36:26 +02:00
Sebastian Dröge
b7534643be
gtk4: example: Use a bin with a videoconvert
in the non-GL case
...
The sink only supports RGB formats in that case, which decoders rarely
would output.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1008 >
2022-12-12 13:35:52 +02:00
Sebastian Dröge
0b2aa2646f
gtk4: Make GL support fully optional
...
Don't depend on gstreamer-gl if it's not enabled, and don't try doing
anything with the GDK GL context at all.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1008 >
2022-12-12 13:35:07 +02:00
Jordan Petridis
507377c052
video/gtk4: Implement support for GLTextures when possible.
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1008 >
2022-12-12 13:34:22 +02:00
Jordan Petridis
f590b7e62f
video/gtk4: Restrict visibility of struct related to the Frame
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1008 >
2022-12-12 13:32:32 +02:00
Jordan Petridis
9fa3d88a63
video/gtk4: Rename Object types and struct to something simpler
...
Avoid the confusion caused by SinkPaintable and PaintableSink,
and instead refer to the objects as Paintable for the GdkPaintable
subclass or PaintalbeSink for the gst element.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1008 >
2022-12-12 13:32:25 +02:00
Jordan Petridis
b8d2d98027
mux/{mp4, fmp4}: Hard depend on feature v1_18
...
Else --no-default-features was failing to compile.
v1_18 is needed to for the aggregator code.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1008 >
2022-12-12 13:32:02 +02:00
Jordan Petridis
bfe62488f4
net/ndi: fix build with --no-default-features
...
doc_show_default() is only available with gst/v1_18
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1008 >
2022-12-12 13:30:57 +02:00
Jordan Petridis
922f14ea19
meson: Fix build of static plugins
...
While we were correctly skipping the plugins that couldn't be
built statically, we were still adding their names to the list
and the .pc list causing them to still get built.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1008 >
2022-12-12 13:30:48 +02:00
Jordan Petridis
204e9af663
meson: Fix build of static plugins
...
While we were correctly skipping the plugins that couldn't be
built statically, we were still adding their names to the list
and the .pc list causing them to still get built.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1008 >
2022-12-12 13:30:42 +02:00
Sebastian Dröge
a5f48507c4
textwrap: Don't panic on empty buffers
...
Simply don't calculate with any duration per word for this buffer.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1008 >
2022-12-12 13:30:34 +02:00
Sebastian Dröge
7df114e0e9
deny: Update
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1008 >
2022-12-12 13:30:23 +02:00
Sebastian Dröge
a7c75f8066
fmp4mux: Crank clock for the first fragment in more tests
...
Due to how aggregator works, it depends on how buffers are pulled
whether aggregate() is called again or it is waiting for a timeout or EOS:
works:
- pad 1: 4 buffers, pad 2: 4 buffers
- aggregate ready: take all 4/4 buffers
- pad 1: 1 buffers, pad 2: 1 buffer
- aggregate ready: take all 1/1 buffers
waits:
- pad 1: 5 buffers, pad 2: 4 buffers
- aggregate ready: take all 5/4 buffers
- pad 1: 0 buffers, pad 2: 1 buffer
- aggregate not ready: waiting for timeout or EOS
Also don't manually set the clock time as that's unnecessary.
Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/issues/274
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/999 >
2022-12-05 00:47:51 +00:00
Tim-Philipp Müller
08799d242c
Update Cargo.lock
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/999 >
2022-12-05 00:30:48 +00:00
Vivia Nikolaidou
a59a0340cf
ndisrc: Use actual number of channels in positions_from_mask
...
Otherwise it fails for mono and stereo
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/992 >
2022-11-29 12:19:26 +02:00
Vivia Nikolaidou
cadf36ff01
ndisrc: Use default channel mask for audio output
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/989 >
2022-11-28 17:10:08 +02:00
Sebastian Dröge
6a05b7f56a
mp4: Add version to gst-plugin-version-helper dependency
2022-11-28 11:46:29 +02:00
Sebastian Dröge
1f4a035dc0
Update versions to 0.9.2
2022-11-28 11:44:33 +02:00
Sebastian Dröge
b41d1e3f34
Update Cargo.lock
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/987 >
2022-11-28 10:47:14 +02:00
Sebastian Dröge
649434bd04
mp4mux: For video with N/1001 framerates use N as timescale
...
See https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3049
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/987 >
2022-11-28 10:47:02 +02:00
Sebastian Dröge
10813ed621
mp4mux: Factor out running time to UTC time calculation into a function
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/987 >
2022-11-28 10:47:02 +02:00
Sebastian Dröge
ea0d5751a2
mp4mux: Remove unnecessary error case of negative PTS when doing the ONVIF UTC time calculations
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/987 >
2022-11-28 10:47:02 +02:00
Sebastian Dröge
c771c86631
mp4mux: Skip gap buffers instead of writing empty samples
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/987 >
2022-11-28 10:47:02 +02:00
Sebastian Dröge
516b561191
mp4: Add ONVIF non-fragmented MP4 muxer
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/987 >
2022-11-28 10:47:02 +02:00
Sebastian Dröge
23e8fea170
mp4: Remove unneeded cast in tests
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/987 >
2022-11-28 10:47:02 +02:00
Sebastian Dröge
81a46ee33d
mp4: Update to url 2
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/987 >
2022-11-28 10:47:02 +02:00
Sebastian Dröge
e7f5e73e3f
gst-plugin-mp4: Add new MP4 plugin with a non-fragmented MP4 muxer
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/987 >
2022-11-28 10:47:02 +02:00
Sebastian Dröge
969be7ab52
Update Cargo.lock
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/986 >
2022-11-27 20:53:40 +02:00
Sebastian Dröge
931917e559
aws: Update to env_logger 0.10 for the tests
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/986 >
2022-11-27 20:53:13 +02:00
Sebastian Dröge
1fb0062059
deny: Update
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/986 >
2022-11-27 20:52:39 +02:00
Sebastian Dröge
93ba677b18
fmp4mux: Handle EOS correctly if it happens before a fragment start time was determined
...
Whatever earliest time we have at that point is going to be the start
time.
Also handle the case correctly where all inputs are EOS before any
buffers were received at all.
Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/issues/270
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/986 >
2022-11-27 20:52:30 +02:00
Sebastian Dröge
9491c77540
fmp4mux: For video with N/1001 framerates use N as timescale
...
See https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3049
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/986 >
2022-11-27 20:51:48 +02:00