Commit graph

2250 commits

Author SHA1 Message Date
Sebastian Dröge
919b60bb6b ci: Update to cargo-c 0.9.12 2022-09-07 12:15:21 +03:00
Sebastian Dröge
81ee30771c pngenc: Allow using deprecated compression levels 2022-09-06 19:33:55 +03:00
Xavier Claessens
ef78498dc2 ci: Fix running gst-inspect inside devenv
There are 2 gst-inspect-1.0 executables, one in root builddir and
another one in subprojects/gstreamer/tools/. The latter does not link on
gst-full, meson devenv is supposed to set the former first in PATH, but
it seems to be flicky.
2022-09-06 11:53:15 -04:00
Mathieu Duponchelle
5ebf9913a1 signalling: add and fix test for consumer disconnection
Fixes #92
2022-09-05 22:28:37 +02:00
Mathieu Duponchelle
08b79ab8f1 signalling tests: fix typo in test name 2022-09-05 22:28:37 +02:00
Jordan Petridis
3c6086caeb video/rspng: add missing doc feature gate 2022-09-05 11:47:46 +03:00
Jordan Petridis
d8e3894209 togglerecord: Port example to GTK 4 2022-09-05 11:47:37 +03:00
Jordan Petridis
a60f4e9ae8 fallbackswitch: Port the example to GTK 4 2022-09-05 11:47:28 +03:00
Jordan Petridis
005fbafb30 threadshare: disable tests that can't work on windows
These depend on socket properties that are not available on windows
2022-09-05 11:47:20 +03:00
Jordan Petridis
602c2588dc text/json: hard depend on ser_de feature of gst crate
It's a hard dep instead a feature that can be disabled. It was
working with default features, but it was failing to build with
--no-default-features
2022-09-05 11:47:12 +03:00
Sebastian Dröge
1a40186485 Update for GLib ParamSpec builder API changes 2022-09-05 11:45:47 +03:00
Sebastian Dröge
3924e2e563 ci: Fix up image tags 2022-09-04 23:20:31 +03:00
Sebastian Dröge
46dddaf31c Update minimum supported Rust version to 1.63 2022-09-04 21:31:55 +03:00
Sebastian Dröge
4e7ce210cd meson: Fix directory/plugin name mapping for new webrtchttp plugin 2022-09-03 11:30:34 +03:00
Sebastian Dröge
462d7aa81a meson: Fix gstwebrtc/gstsdp subproject usage 2022-09-03 11:21:03 +03:00
Xavier Claessens
184f862307 meson: Fix deprecation warning
meson.build_root() has been renamed to meson.global_build_root() to not
be confused with meson.project_build_root().
2022-09-02 22:00:57 +00:00
Xavier Claessens
d1d7e99978 meson: Blacklist csound and threadshare plugins for gst-full
They are known to be broken:
- csound is missing pkgconfig file.
- threadshare duplicates rtp symbols from GStreamer.
2022-09-02 22:00:57 +00:00
Xavier Claessens
4ac60165a8 meson: Define gst_plugins with list of dependencies
This is needed to link gst-full with Rust plugins. The script requires
either python11 or the tomli module.
2022-09-02 22:00:57 +00:00
Xavier Claessens
ad48d5e8f2 meson: Import python module only once 2022-09-02 22:00:57 +00:00
Xavier Claessens
8f932a7641 ci: Store meson logs into artifacts
This helps debugging failures.
2022-09-02 22:00:57 +00:00
Xavier Claessens
934e6c3888 ci: Make gst-build job manual on MRs 2022-09-02 22:00:57 +00:00
Xavier Claessens
16f9c37c71 Fix missing pkgconfig requires 2022-09-02 22:00:57 +00:00
Thibault Saunier
664e2b75bd tsjitterbuffer: Fix latency type when getting property 2022-09-02 21:41:35 +00:00
Taruntej Kanakamalla
67e9ba8286 whipsink: A GstBin implementation for WHIP
Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/1410

Created a new plugin 'webrtchttp' to implement all the
WebRTC HTTP protocols under /net/webrtc-http directory.

WhipSink wraps around 'webrtcbin' with HTTP capabilites
to exchange SDP offer/answer so an ICE/DTLS session can
be established between the encoder/media producer (WHIP client)
and the broadcasting ingestion endpoint (Media Server).

Once the ICE/DTLS session is set up, the media will
flow unidirectionally from the WHIP client to the
broadcasting ingestion endpoint (Media Server).
Spec:
https://www.ietf.org/archive/id/draft-ietf-wish-whip-04.html
2022-09-03 00:18:59 +03:00
Sebastian Dröge
827099d22d aws: Update to aws 0.18/0.48 2022-09-02 10:46:02 +03:00
Thibault Saunier
c3a1536849 gcc: Fix deadlock on shutdown
We were holding the element .state lock while trying to shutdown leading
to a deadlock.

Fixes: https://github.com/centricular/webrtcsink/issues/90
2022-08-31 18:11:30 +02:00
Sebastian Dröge
cb339c1bf8 onvifmetadataparse: Pass through other XML as is with the UTC times based on the buffer PTSs 2022-08-31 10:33:16 +00:00
Sebastian Dröge
420f36251a onvif: Rename onvif(de)pay to rtponvifmetadata(de)pay and include the metadata specifier in the other element names too
This is more descriptive and avoids any future conflicts with other
kinds of ONVIF specific RTP (de)payloaders.
2022-08-31 13:00:53 +03:00
Mathieu Duponchelle
8605df4b16 webrtcsink: vp8/9: don't hardcode threads property
and keep it at its default of 0 (automatic).

Hardcoding that value triggered abnormally excessive CPU usage when
connecting multiple consumers.
2022-08-31 01:20:14 +02:00
Mathieu Duponchelle
5b694988d1 Update dependencies 2022-08-31 01:16:39 +02:00
Thibault Saunier
a4f036499e protocol: Rework the way peers set their status
- Remove registration messages
- Add a setPeerStatus method which lets other peers know about their roles
2022-08-30 22:28:55 +02:00
Thibault Saunier
7e59bb519e protocol: Add a welcoming message, removing registering as consumer requirement
Since clients know from the start their Peer ID it is fine to go ahead
and connect as a consumer without prior registration.
2022-08-30 22:28:55 +02:00
Thibault Saunier
dbcbfef8c7 Refactor signalling protocol around a Session ID
This allows for more use cases to be handled like having several session
between 2 peers, and it simplifies the code a bit and makes the protocol
sensibly cleaner

Webrtcsink has been refactored a bit to take the new concept into
account
2022-08-30 22:28:55 +02:00
Thibault Saunier
f243f5fe5c protocol: Add an "Unregister" message type
This way we can use the same WebSocket where several peerTypes being
communicated and some those type can be unregistered, re registered
without ever closing the Socket connection.

This also introduces sensible symmetry between different message types.
2022-08-30 22:28:55 +02:00
Thibault Saunier
e391f1ef25 ci: Check that documentation is updated as required 2022-08-29 18:33:22 -04:00
Thibault Saunier
16d804e761 doc: Mark request::user-agent as doc show default 2022-08-29 18:33:22 -04:00
Thibault Saunier
67e651f57c Allow "unused_doc_comments" as we use hotdoc and not rustdoc 2022-08-29 18:33:22 -04:00
Thibault Saunier
31a53bba8a Generate plugins documentation using hotdoc
Which will automatically be integrated in gstreamer documentation
2022-08-29 18:33:22 -04:00
Thibault Saunier
25465fd9f3 csound: Fix score-offset getter
Name of the property was wrong
2022-08-29 15:29:17 -04:00
Mathieu Duponchelle
052092cd2e onvifmetadata: removing encoding field
The encoding of ONVIF metadata is always UTF-8. ONVIF metadata may
or may not be encoded with gzip, but we don't see a use case for
transporting compressed ONVIF metadata between elements for now.
2022-08-24 08:57:12 +00:00
Arun Raghavan
56e7a2f6ab aws: Document the s3hlssink element in README 2022-08-23 06:19:39 -04:00
Guillaume Desmottes
b5d5cf25fe textahead: generate a buffer with ahead text at segment start
This is useful for karaoke use cases where the first text may appear
after a while but you want to already display the upcoming lyrics to
users.
2022-08-23 08:37:33 +02:00
Vivia Nikolaidou
5606111345 plugins: Simplify code using ParamSpecBuilder 2022-08-22 17:58:43 +03:00
Sebastian Dröge
84f6484140 fmp4mux: Consider invalid running times as zero and before anything else
The code tried to do this before but didn't consider the case where the
first pad has a valid running time, in which case the buffer with the
invalid running time would never be dequeued and the muxer would never
output anything.
2022-08-22 15:20:10 +03:00
Thibault Saunier
2dc42ba0db webrtcsink: Fix the way we handle max-bitrate
Computation of actual max bitrate was broken and in the end it is simpler
to keep the value set by the user and take into account the fec only
when required.
2022-08-20 00:27:23 +02:00
Thibault Saunier
e0ad7e4c16 Update dependencies using the new Signall::builder API 2022-08-18 22:58:15 +02:00
François Laignel
2bb071a950 ts/runtime: slight optimizations for sub tasks related operations
Using callgrind with the standalone test showed opportunities for
improvements for sub tasks addition and drain.

All sub task additions were performed after making sure we were
operating on a Context Task. The Context and Task were checked
again when adding the sub task.

Draining sub tasks was perfomed in a loop on every call places,
checking whether there were remaining sub tasks first. This
commit implements the loop and checks directly in
`executor::Task::drain_subtasks`, saving one `Mutex` lock and
one `thread_local` access per iteration when there are sub
tasks to drain.

The `PadSink` functions wrapper were performing redundant checks
on the `Context` presence and were adding the delayed Future only
when there were already sub tasks.
2022-08-18 18:42:18 +02:00
François Laignel
57da8e649d ts/examples: introduce a standalone pipeline test
Implement a test that initializes pipelines with minimalistic
theadshare src and sink. This can help with the evaluation of
changes to the threadshare runtime or with element
implementation details. It makes it easy to run flamegraph or
callgrind and to focus on the threadshare runtime overhead.
2022-08-18 18:42:18 +02:00
Sebastian Dröge
374bb8323f Fix build after glib SignalBuilder::param_types() API change 2022-08-17 23:37:39 +03:00
Sebastian Dröge
2c99f66ea5 fmp4mux: Dequeue the earliest buffer from any pad first instead of dequeueing up to a whole fragment from the same pad
This keeps the fill levels of each sinkpad in sync.
2022-08-17 19:23:18 +03:00