Commit Graph

906 Commits

Author SHA1 Message Date
boks1971 4767227398 Merge remote-tracking branch 'origin/master' into raja_fr 2023-09-18 09:36:18 +05:30
Raja Subramanian 019ad88b08 Do not force reconnect on resume if there is a pending track (#2081)
* Do not force reconnect on resume if there is a pending track

* move GetPendingTrack -> LocalParticipant
2023-09-17 14:00:09 +05:30
David Zhao 340906267f Reduce ghost participant disconnect timeout (#2077)
It's been reported that "ghost" participants, those that did not terminate
cleanly, hang around the room for too long after they disappear.

Evaluating our timeouts a bit, it seems that we are really conservative
in waiting for participants to disconnect. This PR cuts down the disconnect
timeout from 50s to 20s, a 30s reduction.
2023-09-16 00:15:04 -07:00
David Zhao 2113557842 Skip SendDataPacket logging on transport failure (#2074)
That's a sign of peer connection failure, we do not need to log these
2023-09-15 12:55:54 -07:00
boks1971 087b999448 Merge remote-tracking branch 'origin/master' into raja_fr 2023-09-13 21:25:55 +05:30
Raja Subramanian 463c62b99a Update deps (#2061) 2023-09-11 22:16:02 +05:30
cnderrauber 696798279e Check destination identites of data message if sid is empty (#2058) 2023-09-11 14:42:48 +08:00
Raja Subramanian be4ea44425 Log ClientInfo on participant close. (#2057)
Want to check client distribution for negotiation failed induced closes.
2023-09-11 10:29:09 +05:30
boks1971 8171aedc9d Merge remote-tracking branch 'origin/master' into raja_fr 2023-09-11 08:42:45 +05:30
Raja Subramanian c09d8d0878 Split RTPStats into receiver and sender. (#2055)
* Split RTPStats into receiver and sender.

For receiver, short types are input and need to calculate extended type.

For sender (subscriber), it can operate only in extended type.
This makes the subscriber side a little simpler and should make it more
efficient as it can do simple comparisons in extended type space.

There was also an issue with subscriber using shorter type and
calculating extended type. When subscriber starts after the publisher
has already rolled over in sequence number OR timestamp, when
subsequent publisher side sender reports are used to adjust subscriber
time stamps, they were out of whack. Using extended type on subscriber
does not face that.

* fix test

* extended types from sequencer

* log
2023-09-11 07:33:39 +05:30
Raja Subramanian b5f2f83278 Fix time stamp adjustment when starting with dummy packets. (#2053)
* Fix time stamp adjustment when starting with dmummy packets.

- Populated extended values in ExtPacket on dummy packet.
- Have to pass reference time stamp offset to first packet time
  adjustment.

* display participant version info
2023-09-09 17:33:26 +05:30
boks1971 51dc5a1379 Merge remote-tracking branch 'origin/master' into raja_fr 2023-09-07 22:26:57 +05:30
Trey Hakanson b38b51dad8 Integrate updated TWCC responder (#2038)
Integrates the updated TWCC responder based on `pion/interceptor` from
https://github.com/livekit/mediatransportutil/pull/25
2023-09-06 08:37:52 +05:30
cnderrauber 9b9298b927 Add batch i/o to improve throughput (#2033)
* Add batch i/o to improve throughput

* remove empty line

* Solve comments

* Change rtcconfig.UDPPort to PortRange

* Fix test
2023-09-06 10:18:20 +08:00
Raja Subramanian e922ae5f23 Filter out noisy error (#2032) 2023-09-04 22:01:07 +05:30
boks1971 b278db20f1 Merge remote-tracking branch 'origin/master' into raja_fr 2023-09-03 10:00:46 +05:30
Raja Subramanian 6509bb0325 Add option to issue full reconnect on data channel error. (#2026)
* Add option to issue full reconnect on data channel error.

There are situations where send data packet fails because of "stream
closed". It is unclear when that happens. Seems to be after an
ICERestart after ICE failed and connection type switching to TURN
from ICE.

Once the failure happens, it is not recoverable. Potentially, it is
recoverable, but unclear where the problem lies. Attempts to reproduce
looking at the pattern of failures has been unsuccesful.

In the mean time, adding an option to issue full reconnect
when send data packet fails.

* typo
2023-09-01 17:59:25 +05:30
boks1971 b0b11a2c54 Merge remote-tracking branch 'origin/master' into raja_fr 2023-09-01 08:18:45 +05:30
Raja Subramanian b4efbe21a1 Log data channel close and errors. (#2025) 2023-08-31 23:44:11 +05:30
Raja Subramanian c7683fd383 Check for sctp.ErrStreamClosed (#2023) 2023-08-31 21:44:19 +05:30
boks1971 c4da8dfd96 Merge remote-tracking branch 'origin/master' into raja_fr 2023-08-31 11:55:35 +05:30
Raja Subramanian 790954bbe9 Use RTCP SR to resync. (#2021)
Remove packet debug code that was added temporarily.
2023-08-31 11:45:42 +05:30
boks1971 07bf420329 Merge remote-tracking branch 'origin/master' into raja_fr 2023-08-28 13:44:27 +05:30
David Zhao 64bcef28aa Address comments from #1998 (#2006) 2023-08-27 22:50:36 -07:00
David Zhao eed8e85008 Demote more logs to debug (#1998) 2023-08-27 19:17:38 -07:00
boks1971 c78e5ac9d7 Merge remote-tracking branch 'origin/master' into raja_fr 2023-08-27 21:52:13 +05:30
Raja Subramanian 3b30f49ad5 Extended type for RTP timestamp. (#2001) 2023-08-27 17:28:44 +05:30
boks1971 9cec13d68c Merge remote-tracking branch 'origin/master' into raja_fr 2023-08-27 11:06:42 +05:30
Raja Subramanian 273defa75f Do not offer H.264 high profile in subscriber offer. (#1997)
* Do not offer H.264 high profile in subscriber offer.

Do not register H.264 high profile with media engine in subscriber
direction.

* add comments
2023-08-25 22:29:59 +05:30
boks1971 bf074562a3 Merge remote-tracking branch 'origin/master' into raja_fr 2023-08-25 14:46:04 +05:30
Pingos 9d467e07d8 fix bug: p.pendingTracksLock.Unlock() when mid is empty (#1994) 2023-08-25 14:44:31 +05:30
Raja Subramanian 8c99a9e307 Move GetAudioLevel interface. (#1992)
To allow use with RemoteParticipant/RemoteMediaTrack too.
2023-08-24 13:25:49 +05:30
boks1971 9071fedc72 Merge remote-tracking branch 'origin/master' into raja_fr 2023-08-20 23:31:25 +05:30
David Zhao 75f5387ccd Allow data packet to be sent to participants by identity (#1982)
* Allow data packet to be sent to participants by identity

* update gomodules
2023-08-19 23:03:09 -07:00
boks1971 e9f4e4585c Merge remote-tracking branch 'origin/master' into raja_fr 2023-08-18 10:30:59 +05:30
Raja Subramanian 1a32439d7e Ensure older session does not clobeer newer session. (#1974) 2023-08-18 02:00:43 +05:30
David Zhao 13b1b4808f Fix race condition causing new participants to have stale room metadata (#1969)
If room metadata is changed in between when a participant is joining and
when they've became active, that participant will not have the latest
room metadata.
2023-08-15 17:30:26 -07:00
David Zhao 387faf2718 Demote removing subscribers for MIME (#1954) 2023-08-10 18:50:19 -07:00
boks1971 f07e8858d8 Merge remote-tracking branch 'origin/master' into raja_fr 2023-08-04 09:19:35 +05:30
David Zhao 0f9fb24678 A few more logging component changes (#1934) 2023-08-03 18:46:48 -07:00
David Zhao debd75fa15 Integrate logger components (#1933)
* Integrate logger components

Dividing into the following components
* pub - publisher
* pub.sfu
* sub - subscriber
* transport
* transport.pion
* transport.cc
* api
* webhook

* update go modules
2023-08-03 13:31:17 -07:00
Raja Subramanian dbbf2f886f Skip video layer update if sub muted (#1929)
Previous change to check for non-zero width caused test failures
as subscribed track settings can use the quality field and not
necessarily width/height.
2023-08-02 16:33:58 +05:30
boks1971 eb49df35ae Merge remote-tracking branch 'origin/master' into raja_fr 2023-08-02 14:05:48 +05:30
Raja Subramanian 0dc92ef273 Remove parked layer feature. (#1927)
* Remove parked layer feature.

Not worth the added complexity.

Several reasons
- Not seeing black frames on pub mute always.
- If they are there, it can consume more than 30kbps if the parked layer
  is high res. That is wasted bandwidth downstream when pub is muted.
- On resume, client some time sends PLI and that triggers a key frame
  request.

But, leaving the separate `PubMuted` flag in forwarder in case we can
use it for better handling.

* need the request spatial
2023-08-02 14:02:29 +05:30
Raja Subramanian f3a0e3e71c skip logging when stream closed (#1928) 2023-08-02 14:00:58 +05:30
cnderrauber f7a1776f4c Add control of playout delay (#1838)
* Add control of playout delay

Add config to enable playout delay. The delay will be limited by
[min,max] in the config option and calculated by upstream & downstream
RTT.

* check protocol version to enable playout delay

* Move config to room, limit playout-delay update interval, solve comments

* Remove adaptive playout-delay

* Remove unused config
2023-08-02 16:12:23 +08:00
Raja Subramanian 0c34f12fa1 Demote some high frequency logs to Debugw (#1925) 2023-08-02 00:03:38 +05:30
boks1971 58b08821a5 Merge remote-tracking branch 'origin/master' into raja_fr 2023-07-31 12:53:43 +05:30
Raja Subramanian eecddbb65a Issue full reconnect if subscriber PC is closed on ICERestart (#1919)
Server could have closed subscriber PC to aid migration.
But, if a resumes lands back on that node, a resume of
the participant session is not possible as subscriber PC is already
closed. While theoretically possible to form a new subscriber
peer conenction, reducing complexity and issuing a full reconnect
as this should be a rare case.
2023-07-31 11:43:47 +05:30
boks1971 49c6e0ff53 Merge remote-tracking branch 'origin/master' into raja_fr 2023-07-30 00:45:57 +05:30