Commit graph

185 commits

Author SHA1 Message Date
Sebastian Dröge 46dddaf31c Update minimum supported Rust version to 1.63 2022-09-04 21:31:55 +03:00
Xavier Claessens 16f9c37c71 Fix missing pkgconfig requires 2022-09-02 22:00:57 +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
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
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
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
Vivia Nikolaidou 5606111345 plugins: Simplify code using ParamSpecBuilder 2022-08-22 17:58:43 +03: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 9827406113 onvifmetadataparse: Use NTP reference timestamp meta
The times are in the NTP epoch.
2022-08-16 15:51:32 +03:00
Sebastian Dröge be56991b73 onvifmetadataparse: use NTP epoch everywhere instead of mixing UNIX/NTP epochs 2022-08-16 14:14:24 +03:00
Mathieu Duponchelle 3011764da1 onvifaggregator: refactor, expect parsed metadata
The aggregator was consuming meta buffers too greedily, causing
potential interleaving starvation upstream. Refactor to consume
media and meta buffers synchronously

Also expect parsed=true metadata caps (requiring an upstream
onvifmetadataparse element).
2022-08-16 12:28:52 +03:00
Sebastian Dröge 837126be76 onvifmetadataparse: Only define the namespace prefix once for the top-level element 2022-08-12 22:35:40 +03:00
Sebastian Dröge 2b61d51e91 Remove unnecessary unsafe blocks for Buffer::as_ptr() 2022-08-12 18:12:22 +03:00
Sebastian Dröge 35b42b88d9 onvif: Add onvifmetadataparse element
This splits XML metadata into separate frames and ensures properly
timestamped metadata.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/781>
2022-08-12 14:00:27 +00:00
Sebastian Dröge 05207cafea raptorq: Derive Eq for some more structs
warning: you are deriving `PartialEq` and can implement `Eq`
  --> net/raptorq/src/fecscheme.rs:13:24
   |
13 | #[derive(Clone, Debug, PartialEq)]
   |                        ^^^^^^^^^ help: consider deriving `Eq` as well: `PartialEq, Eq`
   |
   = note: `#[warn(clippy::derive_partial_eq_without_eq)]` on by default
   = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#derive_partial_eq_without_eq

warning: you are deriving `PartialEq` and can implement `Eq`
  --> net/raptorq/src/fecscheme.rs:38:24
   |
38 | #[derive(Clone, Debug, PartialEq)]
   |                        ^^^^^^^^^ help: consider deriving `Eq` as well: `PartialEq, Eq`
   |
   = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#derive_partial_eq_without_eq
2022-08-09 13:40:39 +00:00
Sebastian Dröge cbb55c2322 hlssink3: Update to m3u8-rs 5 2022-08-09 13:40:39 +00:00
Sebastian Dröge 8b11aee04d aws: Update to aws 0.17/0.47 2022-08-09 13:40:39 +00:00
Mathieu Duponchelle f646cabb3d aws_transcriber: expose filtering related properties
- vocabulary-filter-name allows picking a vocabulary to filter words
- vocabulary-filter-method allows controlling how words are filtered
2022-08-09 12:14:31 +00:00
Sanchayan Maity d240bbc4e2 aws_transcriber: Fix regression with credentials mechanism
A regression was introduced during the migration to AWS SDK. One used
to be able to provide credentials in multiple ways with the earlier
Rusoto ChainProvider (config file / environment variables). Now one
has to explicitly set the properties.

Use the DefaultCredentialsChain from AWS SDK to restore the previous
functionality.

See
https://docs.rs/aws-config/0.46.0/aws_config/default_provider/credentials/struct.DefaultCredentialsChain.html.
2022-08-04 12:15:32 +00:00
Sanchayan Maity a4893f30c8 net/aws: Add support for specifying endpoint
Allow specifying an endpoint to be used for S3 requests. This makes
it possible to use integrations providing object storage based on S3
API like MinIO.

When the endpoint-uri property is specified, the endpoint resolver to
use will be overridden when making S3 requests.
2022-08-04 10:37:37 +05:30
Bilal Elmoussaoui 52973d975e Update per glib::SignalBuilder changes 2022-07-21 20:03:13 +02:00
Tomasz Andrzejak 14160d1d31 Add RaptorQ RTP FEC plugins 2022-07-20 13:34:58 +00:00
Sebastian Dröge 42b6c32f34 onvif: Update to minidom 0.15 2022-07-18 11:21:04 +03:00
Rafael Caricio adde6fc4e3
hlssink3: convert playlist type to an enum
Change the property `playlist-type` to an enum. We also expose the
new enum externally from the crate so users of Rust can directly use it.
2022-07-08 11:24:32 +02:00
Rajneesh Soni 08c6ab29e1 hlssink3: Put EXT-X-ENDLIST for vod playlist-type.
Ideally, when player encounter PLAYLIST-TYPE is VOD, player should
not reload the playlist. For playlist-type=vod, initially we put
PLAYLIST-TYPE=EVENT, and later change it to VOD, which confuse some
players so we shold put ENDLIST here.
In any case putting ENDLIST is right thing to do to indicate no new
segment will be added to playlist.
2022-07-04 15:15:20 +00:00
Rajneesh Soni 4ff2c8f1bc hlssink3: Dont reset end_list after stop is called.
in current implementation EXT-X-ENDLIST is never set for any playlist-type.
After calling playlist.stop(), during write_final_playlist() is called.
in final playlist write, segment is not added but update_playlist is called.
and update_playlist reset end_list again, so plugin never put ENDLIST.
2022-07-04 15:15:20 +00:00
Sebastian Dröge 88bb91a5cb aws: Update to aws 0.15/0.45 2022-07-04 10:20:43 +03:00
Sebastian Dröge 51c7d0652e Fix/silence a couple new clippy warnings 2022-06-30 16:07:32 +03:00
Sanchayan Maity a85a647794 net/aws: Add support for S3 HLS sink
This is a helper bin allowing the output of HLS sink to be uploaded
to S3.
2022-06-29 17:35:37 +00:00
Sanchayan Maity e0594ef349 net/aws/aws_transcriber: Fix clippy warning 2022-06-29 17:35:37 +00:00
Sanchayan Maity 7bc785fba3 net/aws: Clean up pending rusoto references 2022-06-29 17:35:37 +00:00
Sebastian Dröge cb84206457 Fix a couple of new 1.62 clippy warnings 2022-06-28 14:52:20 +03:00
Sebastian Dröge 5c00db62b7 aws: Update to aws 0.14/0.44 2022-06-27 10:11:16 +03:00
Rajneesh Soni b3e558bec0 aws: s3sink,s3src,transcriber: Add property to set temporary credentials.
STS provide temporary credentials to access AWS resource. Temporary
credentials include, AccessKeyId, SecretAccessKey and SessionToken.
With session-token property, element will be able to use temporary
credentials. When session-token is not set, element can use long
term credentials.
2022-06-22 18:45:41 +00:00
Sebastian Dröge d902ecca4f aws: Update to aws 0.13/0.43 2022-06-21 06:45:24 +00:00
Mathieu Duponchelle 20d2a7d05b onvifoverlay: render polygons when present 2022-06-15 14:32:48 +00:00
Sebastian Dröge dfa5b9d8bb onvifaggregator: Add support for UNIX reference timestamp metadata
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/780>
2022-06-14 23:44:00 +02:00
Sebastian Dröge 939f37dec5 onvif: Disable default features for the chrono dependency
We don't need all those.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/780>
2022-06-14 23:43:47 +02:00
Sanchayan Maity 19f69614a2 aws: s3sink: Add a deprecation warning for retry duration properties
Keeping the upload-part-retry-duration & complete-upload-retry-duration
properties changes the semantics in comparison to their usage in
rusotos3sink. Deprecate these two properties and add a warning while
making them noop.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/759>
2022-06-14 08:03:49 +00:00
Sanchayan Maity 511ee766df Rename rusoto to aws
Now that migration to AWS SDK is complete, rename directory and
references to aws/AWS SDK.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/759>
2022-06-14 08:03:49 +00:00
Sanchayan Maity 81437bb1c9 net/rusoto: Rename to aws
Rename all the elements to use aws prefix now but still register a
backwards compat element factory.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/759>
2022-06-14 08:03:49 +00:00
Sanchayan Maity 2b0bf218b1 net/rusoto: Drop rusoto crates
Now that all elements are migrated to AWS SDK drop the rusoto
dependencies.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/759>
2022-06-14 08:03:49 +00:00
Sanchayan Maity 753425507a Migrate transcriber to aws sdk
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/759>
2022-06-14 08:03:49 +00:00
Sanchayan Maity 768fad2445 Migrate s3src and s3sink to use AWS SDK
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/759>
2022-06-14 08:03:49 +00:00
Mathieu Duponchelle ab01fc6143 onvifaggregator: refactor to support duration-less media buffers
For instance when dealing with a variable framerate media stream,
input media buffers may not hold a duration, in which case we try
to calculate one by waiting for the following buffer.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/765>
2022-05-25 17:35:04 +00:00