Commit Graph

71 Commits

Author SHA1 Message Date
boks1971 f54ae1b646 Merge remote-tracking branch 'origin/master' into raja_min_packets 2024-08-10 15:57:33 +05:30
Raja Subramanian d0ac19779e Reset DD tracker layers when muted. (#2920)
* Reset DD tracker layers when muted.

@cnderrauber, I think this is okay to do, but please let me know if
there are gotchas in there.

* copy

* more compact form
2024-08-10 15:42:14 +05:30
boks1971 c89a60b93b Merge remote-tracking branch 'origin/master' into raja_min_packets 2024-06-06 11:45:54 +05:30
Raja Subramanian 3ad0a69c86 Stop probe on probe controller reset (#2744) 2024-05-29 18:26:22 +05:30
Raja Subramanian f9f761b223 Demote some less useful/noisy logs. (#2743) 2024-05-29 12:05:18 +05:30
Paul Wells 9a5db132eb add room/participant name limit (#2704)
* add room/participant name limit

* defaults

* simplify

* omitempty

* handle 0 config

* fix race

* unlock

* tidy
2024-05-06 17:25:18 -07:00
boks1971 2aef1bd593 Merge remote-tracking branch 'origin/master' into raja_min_packets 2024-04-26 13:33:59 +05:30
Paul Wells c4354575ec do not capture pointers in ops queue closures (#2675) 2024-04-22 11:33:28 -07:00
Paul Wells 5c38d58987 add typed ops queue (#2655)
* add typed ops queue

* tidy
2024-04-16 02:51:49 -07:00
Raja Subramanian c6ee34d083 Cleaning up stream allocator data. (#2639)
* Cleaning up stream allocator data.

Marking it with STREAM-ALLOCATOR-DATA for easier use later if needed.

* clean up a bit more

* wire_gen

* wire_gen
2024-04-10 13:31:25 +05:30
Paul Wells 4b7e5dc1cc reduce gc from stream allocator rate monitor (#2638)
* reduce gc from stream allocator rate monitor

* deps

* comment out rate monitor
2024-04-09 23:14:15 -07:00
Raja Subramanian ffb831aa8c Cache transceiver before closing subscribed track. (#2594)
On migration, when subscription moved from remote -> local,
transceiver caching was racing. Although a very small possibility,
it could happen like so

1. down track close
2. down track close callback fires go routine to close subscribed track
3. subscribed track close handler in subscription manager tries to
   reconcile
4. reconcile adds subscribed track again
5. cannot find cached transceiver as caching happens after down track
   close finishes in stap 1 above. Although there are a couple of
   gortouine jumps (step 2 fires a goroutine to close subscribed track
   and step 4 will reconcile in a goroutine too), it is theoretically
   possible that the step 1 has not finished and hence transceiver is
   not cached.

Fix is to move caching to before closing subscribed track.
2024-03-22 11:56:50 +05:30
boks1971 92ce1664af Merge remote-tracking branch 'origin/master' into raja_min_packets 2024-03-21 15:37:36 +05:30
Raja Subramanian 14321f21bf Make OpsQueueParams to make it easier to understand args. (#2578) 2024-03-14 10:27:24 +05:30
Raja Subramanian e376625a13 Do not need to flush stream allocator events. (#2577) 2024-03-14 04:36:19 +05:30
boks1971 87fe0cd29e Merge remote-tracking branch 'origin/master' into raja_min_packets 2024-02-02 12:34:08 +05:30
Raja Subramanian b71d373f4a Use Deque in ops queue. (#2418)
* Use Seque in ops queue.

Standardizing some uses
- Change OpsQueue to use Deque so that it can grow/shrink as necessary and
  need not worry about channel getting full and dropping events.
- Change StreamAllocator and TelemetryService to use OpsQueue so that
  they also need not worry about channel size and overflows.

* Address feedback

* delete obvious comment

* clean up
2024-01-28 13:48:30 +05:30
Raja Subramanian 5ee307952e Reduce a couple of logs to Debugw. Small saving. (#2322) 2023-12-18 14:27:55 +05:30
David Zhao 3fe124c87f Log cleanup pass (#2285)
* Log cleanup pass

Demoted a bunch of logs to DEBUG, consolidated logs.

* use context logger and fix context var usage

* moved common error types, fixed tests
2023-12-02 15:07:31 -08:00
Raja Subramanian d866b5110f Restrict scope of negotiation time out error logs (#2283)
* Restrict scope of negotiation time out error logs

1. Log "negotiation failed" only if signal channel was active
within half window of negotiation timeout. Negotiation timeout currently
is at 15 seconds. Signal pings are every 10 seconds.
2. In transport.go, do not report negotiation timed out and do not
callback negotiation failure if the peer connection state is not
connected. Goal of negotiation failure tracker is to take remedial
action when an in-session negotiation fails. Seeing a bunch of cases
of the case hitting even without ICE connection forming. Negotiation
timer is not intended for those cases.

* fix test
2023-12-02 12:44:37 +05:30
boks1971 7e61b6c785 Merge remote-tracking branch 'origin/master' into raja_min_packets 2023-09-13 21:26:22 +05:30
Raja Subramanian 68aebb0106 Do not mute when stream is paused. (#2069) 2023-09-13 19:59:24 +05:30
boks1971 347cd8391f Merge remote-tracking branch 'origin/master' into raja_min_packets 2023-09-08 21:17:30 +05:30
Raja Subramanian 83353d821c Make a config option to skip unmanaged tracks in bandwidth estimation (#2050)
* WIP commit

* Make a config option to skip unmanaged tracks in bandwidth estimation
2023-09-08 20:59:58 +05:30
boks1971 c431d7cc0c Merge remote-tracking branch 'origin/master' into raja_min_packets 2023-09-07 22:27:25 +05:30
Raja Subramanian c122c20f49 Do not re-pause a paused track. (#2037) 2023-09-06 08:27:16 +05:30
boks1971 213e6ea024 Merge remote-tracking branch 'origin/master' into raja_min_packets 2023-08-29 17:09:31 +05:30
Raja Subramanian f0ca262bcf Prevent erroneous stream pause. (#2008) 2023-08-29 13:21:57 +05:30
boks1971 0f95181ff0 Merge remote-tracking branch 'origin/master' into raja_min_packets 2023-08-28 13:45:05 +05:30
David Zhao eed8e85008 Demote more logs to debug (#1998) 2023-08-27 19:17:38 -07:00
boks1971 8e09b38cd7 Merge remote-tracking branch 'origin/master' into raja_min_packets 2023-08-18 10:30:48 +05:30
Raja Subramanian c0ea1b9ced Remove warning for probe rate being too high. (#1970)
Not super useful. It does happen a bunch of times especially at lower
end of estimate where the next layer up is high. We have to probe
anyway. Effects of large jumps have been mitigated by doing it for short
time.
2023-08-16 12:17:29 +05:30
Raja Subramanian ce1fde451c Get next higher using bit rate. (#1960) 2023-08-11 17:22:56 +05:30
boks1971 5261026fa5 Merge remote-tracking branch 'origin/master' into raja_min_packets 2023-08-08 09:05:08 +05:30
Raja Subramanian 9a8ea26e41 Small clean up, refactoring stringifying of trend samples (#1937) 2023-08-04 15:48:19 +05:30
boks1971 35c741ecb1 Merge remote-tracking branch 'origin/master' into raja_min_packets 2023-08-04 13:57:53 +05:30
Raja Subramanian c1dfc9741c Stream allocator tweaks (#1936)
* Prevent re-allocation if possible

* log commitThreshold

* Collapse same values in the front
2023-08-04 13:47:54 +05:30
boks1971 bc8c09dd62 Merge remote-tracking branch 'origin/master' into raja_min_packets 2023-07-31 12:59:28 +05:30
Raja Subramanian 11bdda0779 Temper stream allocator more (#1920)
* Temper stream allocator more

* gofmt

* AllowPause default
2023-07-31 12:45:21 +05:30
boks1971 c6a7863bee Merge remote-tracking branch 'origin/master' into raja_min_packets 2023-07-30 00:51:07 +05:30
David Zhao 981fb7cac7 Adding license notices (#1913)
* Adding license notices

* remove from config
2023-07-27 16:43:19 -07:00
Raja Subramanian ee1c23eb02 Move congestion controller channel observer params to config (#1910) 2023-07-27 11:48:22 +05:30
Raja Subramanian 9702d3b541 A couple of more opportunities in stream allocator. (#1906)
1. When re-allocating for a track in DEFICIENT state, try to use
   available headroom to accommodate change before trying to steal
   bits from other tracks.
2. If the changing track gives back bits (because of muting or
   moving to a lower layer subscription), use the returned bits
   to try and boost deficient track(s).
2023-07-26 15:35:07 +05:30
Raja Subramanian 0484a68342 Plug a couple of holes in stream transitions. (#1905)
* Plug a couple of holes in stream transitions.

1. Missed negative sign meant stealing bits from other tracks was not
   working.
2. When a track change (mute, unmute, subscription change) cannot be
   allocated, explicitly pause so that stream state update happens.

Refactor stream state update a bit to make it a bit cleaner.

* correct comment
2023-07-26 13:36:58 +05:30
Raja Subramanian 7e6aa00426 Remove unused fields left over from refactor (#1897) 2023-07-21 16:23:00 +05:30
boks1971 61ec45d38a Drop repeated value 2023-07-19 18:46:17 +05:30
boks1971 d4f31d3628 min PPS 2023-07-19 18:10:13 +05:30
boks1971 5cd32b64e5 Merge remote-tracking branch 'origin/master' into raja_min_packets 2023-07-19 17:59:12 +05:30
Raja Subramanian 11e1eb00fa Attempt to avoid out-of-order max subscribed layer notifications. (#1882)
* Check for request layer lock only in the goroutine

* check before sending PLI

* max layer notifier worker

* test cleanup

* clean up

* do notification in the callback
2023-07-16 23:28:20 +05:30
boks1971 0bf93042ed Use min packets threshold for NACK based congestion signal. 2023-07-13 00:18:01 +05:30