Commit Graph

74 Commits

Author SHA1 Message Date
Alessandro Ros
e3b8af8933 switch to gortsplib/v5 (#4978) 2025-09-16 13:10:34 +02:00
Alessandro Ros
e0f4748839 modernize code (#4947) 2025-09-07 16:08:47 +02:00
Alessandro Ros
c80220eb7c webrtc: solve domains in webrtcAdditionalHosts on server-side (#4817) (#4866) 2025-08-12 15:49:38 +02:00
Alessandro Ros
b627128d0f remove context from webrtc.PeerConnection arguments (#4854)
contexts are useless since there's already PeerConnection.Close().
2025-08-12 15:19:59 +02:00
Alessandro Ros
5ae934887d remove custom forks of pion/webrtc and pion/ice (#4861)
this fixes IPv6 reliability issues and allows to receive upstream
updates in a more linear way.
2025-08-12 14:30:08 +02:00
Alessandro Ros
03623799f5 use slices.Contains when possible (#4859) 2025-08-12 12:28:20 +02:00
Alessandro Ros
6d4dfff959 webrtc: fix clock rate of outgoing RTCP receiver reports (#4852) 2025-08-11 13:59:10 +02:00
dependabot[bot]
9e073cd34f build(deps): bump github.com/bluenviron/gortsplib/v4 (#4850)
Bumps [github.com/bluenviron/gortsplib/v4](https://github.com/bluenviron/gortsplib) from 4.16.0 to 4.16.1.
- [Commits](https://github.com/bluenviron/gortsplib/compare/v4.16.0...v4.16.1)

---
updated-dependencies:
- dependency-name: github.com/bluenviron/gortsplib/v4
  dependency-version: 4.16.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-08-11 11:05:29 +02:00
Alessandro Ros
eeb6ac3824 webrtc: re-enable ipv6 (#3227) (#4816) 2025-08-02 23:32:48 +02:00
Alessandro Ros
548cdbeb8f webrtc: fix crash introduced in #4795 (#4814) 2025-08-02 12:58:45 +02:00
Alessandro Ros
81abc2e008 webrtc: speed up candidate extraction (#4801) 2025-07-29 12:09:12 +02:00
Alessandro Ros
89e295eb4a metrics: add additional WebRTC metrics (#3304) (#4797)
webrtc_sessions_rtp_packets_received, webrtc_sessions_rtp_packets_sent,
webrtc_sessions_rtp_packets_lost, webrtc_sessions_rtp_packets_jitter,
webrtc_sessions_rtcp_packets_received,
webrtc_sessions_rtcp_packets_sent.
2025-07-29 11:17:12 +02:00
Alessandro Ros
534ea4d0c6 api: add additional WebRTC statistics (#4795)
rtpPacketsReceived, rtpPacketsSent, rtpPacketsLost, rtpPacketsJitter,
rtcpPacketsReceived, rtcpPacketsSent
2025-07-29 10:43:52 +02:00
Alessandro Ros
d423a71aaa update linter settings (#4790) 2025-07-26 16:44:32 +02:00
Alessandro Ros
1083eea307 make RTP packet size compatible with RTSP/SRTP (#4692)
when RTSP encryption is enabled, maximum RTP packet size is slightly
decreased to make room for SRTP.
2025-07-05 15:42:58 +02:00
Alessandro Ros
3c703052f6 webrtc: fix writing tracks to some clients (#4602)
some clients require PayloadType to be unique among all tracks, not
only among tracks of same kind.
2025-06-03 16:23:38 +02:00
Alessandro Ros
823697210e webrtc: fix race condition after #4558 (#4564) 2025-05-27 15:17:31 +02:00
Alessandro Ros
5d203b4d98 webrtc: prevent routine leaks (#4558)
wait for all routines to exit before assuming a WebRTC connection is closed.
2025-05-26 11:33:46 +02:00
Alessandro Ros
77a3c7ae6e webrtc: route original absolute timestamp of packets (#1300) (#4415) 2025-04-12 11:34:27 +02:00
Alessandro Ros
49bcd35afd bump gortsplib (#4416) 2025-04-12 11:29:37 +02:00
Alessandro Ros
986e270862 count and log all discarded frames, decode errors, lost packets (#4363)
Discarded frames, decode errors and lost packets were logged
individually, then there was a mechanism that prevented more than 1 log
entry per second from being printed, resulting in inaccurate reports.

Now discarded frames, decode errors and lost packets are accurately
counted, and their count is printed once every second.
2025-03-25 21:59:58 +01:00
Alessandro Ros
416ac1357e bump mediacommon and gortsplib (#4364) 2025-03-24 17:25:18 +01:00
Alessandro Ros
b329c4bbe8 replace New* with Initialize() (#4345) 2025-03-16 15:34:53 +01:00
Alessandro Ros
c692f3b78c webrtc: rewrite WHIP client (#4299) 2025-03-01 17:01:57 +01:00
Alessandro Ros
aa101c680c webrtc: make client always provide UDP candidates (#4298) 2025-03-01 16:52:59 +01:00
Alessandro Ros
5c6cf58d75 webrtc: fix connecting to TCP-only sources (#4293) 2025-03-01 11:07:50 +01:00
Alessandro Ros
244da930a1 switch to mediacommon/v2 (#4259) 2025-02-17 14:54:58 +01:00
Jean-Philippe Bergeron
e8297478f3 Configurable webrtcSTUNGatherTimeout (#4221) 2025-02-07 16:34:17 +01:00
Alessandro Ros
a1c6da84dc webrtc: fix detecting closure of some sessions (#4204) (#4212) 2025-02-01 13:43:57 +01:00
Alessandro Ros
e86a7a8217 webrtc: disable UDP when not needed (#4176) 2025-01-19 15:43:58 +01:00
Alessandro Ros
8f6267deb8 bump pion/webrtc to v4 (#4145) 2025-01-13 23:19:29 +01:00
Alessandro Ros
d4c29f8283 webrtc: switch to recvonly transceivers (#4059) (#4108)
This fixes compatibility with devices that support decoding AV1 but
don't support encoding it.

This was previously impossible to achieve due to a bug that prevented
video from being displayed when recvonly transceivers were in use and
audio was not present.
2025-01-04 16:36:03 +01:00
Alessandro Ros
b49acb1e00 accept durations expressed as days (i.e. '1d') (#4094) 2025-01-02 12:44:15 +01:00
Alessandro Ros
72a8b3ca8a webrtc: support publishing and reading H265 tracks (#4003) 2024-12-02 23:55:54 +01:00
Andres Uribe
f8b366c604 webrtc: restart ICE only on failed connection states (#3899)
* webrtc: Restart ICE only on failed connection states

* rename "connected" into "ready" since WebRTC can emit the "connected" state multiple times

---------

Co-authored-by: aler9 <46489434+aler9@users.noreply.github.com>
2024-10-31 12:47:35 +01:00
Alessandro Ros
23002d9f5f route original timestamps without converting to durations (#3839)
This improves timestamp precision.
2024-10-07 17:59:32 +02:00
Alessandro Ros
2586782031 fix race condition in tests (#3834) 2024-10-05 21:54:11 +02:00
Alessandro Ros
4c3ac34425 fix memory leak in case of errors during initialization of a reader (#3831) 2024-10-05 00:49:44 +02:00
Alessandro Ros
1e30dcb555 webrtc: fix crash in case of congestion (#3813) (#3815) 2024-09-29 09:56:06 +02:00
Alessandro Ros
658848f8c8 log track ID when skipping tracks (#3798) 2024-09-26 14:42:48 +02:00
Alessandro Ros
471019f606 warn users about skipped tracks when reading or publishing (#3753) 2024-09-15 19:28:05 +02:00
Alessandro Ros
6a38c87a5b hls, webrtc: add FromStream / ToStream (#3752) 2024-09-09 12:59:23 +02:00
Alessandro Ros
e6653857aa rtmp: support ingesting AV1, VP9, H265, MP3, PCM from other servers (#3751) 2024-09-09 12:26:35 +02:00
Alessandro Ros
a1dc9f45f5 webrtc: support publishing H265 tracks (#3435) (#3492)
IMPORTANT NOTE: this doesn't allow to read H265 tracks with WebRTC,
just to publish them. The inability to read H265 tracks with WebRTC is
not in any way related to the server but depends on browsers and on the
fact that they are not legally entitled to embed a H265 decoder inside
them.
2024-06-19 21:02:08 +02:00
Alessandro Ros
427249877c webrtc: fix error "Failed to setup RTCP mux" on some readers (#3381) (#3449) 2024-06-10 15:43:52 +02:00
Alessandro Ros
095921dc26 webrtc: on browsers, display error messages from server (#3448) 2024-06-10 15:41:05 +02:00
Alessandro Ros
5fe2819546 webrtc: set fmtp of outgoing VP9 and multiopus tracks (#3446) 2024-06-10 09:54:08 +02:00
Alessandro Ros
511b276b4d webrtc: support reading G711 16khz tracks (#2848) (#3445) 2024-06-10 00:57:26 +02:00
Alessandro Ros
44953c8e05 webrtc: fix supported AV1 profiles (#3442) 2024-06-09 23:09:55 +02:00
Alessandro Ros
d7bc304e52 webrtc: speed up gathering of incoming tracks (#3441) 2024-06-09 22:58:40 +02:00