Raja Subramanian and GitHub
7ed3af193a
No proof that this helps ( #1772 )
2023-06-06 11:28:13 +05:30
Benjamin Pracht and GitHub
e7879a46fc
Add ingress telemetry support ( #1763 )
2023-06-02 17:38:19 -07:00
David Zhao and GitHub
b5c8fe5294
Perform unsubscribe in parallel to avoid blocking ( #1760 )
...
* Perform unsubscribe in parallel to avoid blocking
When unsubscribing from tracks, we flush a blank frame in order to prepare
the transceivers for re-use. This process is blocking for ~200ms. If
the unsubscribes are performed serially, it would prevent other subscribe
operation from continuing.
This PR parallelizes that operation, and ensures subsequent subscribe
operations could reuse the existing transceivers.
* also perform in parallel when uptrack close
* fix a few log fields
2023-06-02 00:13:18 -07:00
Benjamin Pracht and GitHub
d598e06d9f
Add support for bypass_transcoding field in ingress ( #1741 )
2023-05-30 13:41:12 -07:00
David Zhao and GitHub
956735ae05
Fix node stats updates on Windows ( #1748 )
...
Because we aren't able to get CPU count/load info on Windows, they are
stubbed out to return placeholders. This restores compatibility to run
on Windows.
2023-05-29 10:53:08 -07:00
Paul Wells and GitHub
e03b7ef8de
start signal relay sessions with the correct node ( #1721 )
...
* start signal relay sessions with the correct node
* enable signal relay in multiregion integration test
2023-05-18 12:39:02 -07:00
David Colburn and GitHub
c3d6ecca6e
check egress status on UpdateStream failure ( #1716 )
2023-05-17 16:46:22 -07:00
Benjamin Pracht and GitHub
4244542840
Adopt WebRTCConfig from mediatransportutil ( #1707 )
...
This also adds support for inline fields in ToCLIFlagNames
2023-05-10 20:00:34 -07:00
David Colburn and GitHub
0a3c22993e
Remove deprecated egress client ( #1701 )
...
* remove deprecated egress client
* don't copy mutex
2023-05-09 16:54:32 -07:00
Raja Subramanian and GitHub
3fb93135f5
Experimental flag to try time stamp adjustment to control drift. ( #1687 )
...
* Experimental flag to try time stamp adjustment to control drift.
There is a config to enable this.
Using a PID controller to try and keep the sample rate at expected
value. Need to be seen if this works well. Adjustment are limited
to 25 ms max at a time to ensure there are no large jumps.
And it is applied when doing RTCP sender report which happens
once in 5 seconds currently for both audio and video tracks.
A nice introduction to PID controllers - https://alphaville.github.io/qub/pid-101/#/
Implementation borrowed from - https://github.com/pms67/PID
A few things TODO
1. PID controller tuning is a process. Have picked values from test from
that implementation above. May not be the best. Need to try.
2. Can potentially run this more often. Rather than running it only when
running RTCP sender report (which is once in 5 seconds now), can
potentially run it every second and limit the amount of change to
something like 10 ms max.
* remove unused variable
* debug log a bit more
2023-05-06 11:52:57 +05:30
David Zhao and GitHub
5fcd682fb0
Refactor participant metadata updates to avoid duplication ( #1679 )
...
* Refactor participant metadata updates to avoid duplication
* generated fakes
2023-05-03 13:50:45 -07:00
Benjamin Pracht and GitHub
11749eace9
Add support for creating WHIP ingress ( #1674 )
2023-05-02 13:26:47 -07:00
Raja Subramanian and GitHub
35b8319b08
Remove disallowed subscriptions on close. ( #1668 )
...
With subscription manager, there is no need to tell a publisher
about a subscriber going away. Before subscription manager,
the up track manager of a participant (i. e. the publisher side)
was holding a list of pending subscriptions for its published tracks
and that had to be cleaned up if one of the subscriber goes away.
That is not the case any more.
Also set publisherID early so that subscription permission update has
the right publisherID. In fact, saw an empty ID in the logs and saw
that we still have the disallowed subscription handling which is not
necessary any more.
2023-04-29 09:18:07 +05:30
Benjamin Pracht and GitHub
a08cd23b6d
Adopt pion logging initialization moving to protocol ( #1667 )
2023-04-28 10:51:41 -07:00
Paul Wells and GitHub
fc09cacfce
increase level for signal stream closed log messages ( #1660 )
...
* increase level for signal stream closed log messages
* ensure stream closes on signal close receipt
* cleanup
2023-04-27 08:30:40 -07:00
Paul Wells and GitHub
f9f89cd7cf
close signal with reliable message ( #1658 )
...
* close signal with reliable message
* update protocol
2023-04-26 22:59:39 -07:00
David Zhao and GitHub
3f64828a77
Send Room updates when participant counts change ( #1647 )
...
Reduces the number of unneeded generation with ProtoProxy
2023-04-22 21:08:59 -07:00
Paul Wells and GitHub
a77eb2a07d
add room node assignment check to signal relay ( #1645 )
2023-04-22 07:05:07 -07:00
David Colburn and GitHub
ab6c994db4
update protocol/psrpc ( #1643 )
...
* update protocol/psrpc
* metadata references
2023-04-21 12:43:20 -07:00
Paul Wells and GitHub
70041f004f
create signalStats from out of order join ( #1640 )
2023-04-20 03:27:41 -07:00
cnderrauber and GitHub
09af509edb
Add subscription limits ( #1629 )
...
* Add subscription limits
* Add limit to ParticipantParams
* Don't change desired of subscription when reaching limits
* Add subscription limits config
* Revert comment
* solve comments
2023-04-20 14:15:30 +08:00
Paul Wells and GitHub
96f3aaa587
free signal join response to gc after forwarding ( #1619 )
2023-04-16 17:38:09 -07:00
David Zhao and GitHub
40ceddd18b
Integrate QueuedNotifier, fixes out-of-order delivery ( #1615 )
2023-04-15 01:20:23 -07:00
Benjamin Pracht and GitHub
843328125e
Do not use redis transactions for the egress APIs. Make sure all ingress related keys are on the same cluster slot. #1606
...
This will break existing ingress in redis.
2023-04-13 08:09:00 -10:00
Raja Subramanian and GitHub
ac266fbcd6
Support subscriber_allow_pause connect option ( #1612 )
...
* Support subscriber_allow_pause connect option
* optional subscriber_allow_pause field
2023-04-13 17:00:32 +05:30
Raja Subramanian and GitHub
d2bf8f0ba1
Support simulating subscriber bandwidth. ( #1609 )
...
* Support simualting subscriber bandwidth.
When non-zero, a full allocation is triggered.
Also, probes are stopped.
When set to zero, normal probing mechanism should catch up.
Adding `allowPause` override which can be a connection option.
* fix log
* allowPause in participant params
2023-04-13 13:59:24 +05:30
Benjamin Pracht and GitHub
c2f76b79fa
Validate IngressInfo, update the info if an ingress is active ( #1605 )
2023-04-12 13:27:57 -10:00
David Zhao and GitHub
6abe3b1aee
Adding logs when clients reconnect ( #1598 )
2023-04-10 21:26:16 -07:00
Paul Wells and GitHub
eb095db70a
Batch signal retries ( #1593 )
...
* batch signal retries
* cleanup
* update protocol
* range check message dedup
* update protocol with codegen
* block while draining
* only log send timeouts
* cleanup
* cleanup
* cleanup
* typo
* update config yaml options
* update protocol
2023-04-09 18:18:21 -07:00
David Zhao and GitHub
e03f75d6a1
Implements source-specific permissions and client-driven metadata updates ( #1590 )
...
Closes #1565
2023-04-07 23:47:49 -07:00
Paul Wells and GitHub
6b0cb33c53
set participant node for redis router in signal service ( #1584 )
2023-04-05 16:08:25 -07:00
Paul Wells and GitHub
5552062228
drain signal stream before closing ( #1582 )
...
* drain signal stream before closing
* update psrpc
* cleanup
2023-04-05 12:29:52 -07:00
Paul Wells and GitHub
6636e37664
add prometheus psrpc metrics observer ( #1571 )
...
* add prometheus psrpc metrics observer
* record rpc error counts
* update psrpc
* update protocol
2023-04-05 03:50:43 -07:00
Paul Wells and GitHub
5564bc531f
write signal messages from media without blocking ( #1580 )
2023-04-05 03:42:59 -07:00
David Zhao and GitHub
fc6a306031
Create a helper for retrieving a user's actual IP ( #1579 )
2023-04-04 19:32:49 -07:00
David Colburn and GitHub
108b251045
egress updated webhook ( #1555 )
2023-03-27 16:34:44 -07:00
davidliu and GitHub
f05a3a047a
add handling for react native and rust sdk client infos ( #1544 )
2023-03-25 01:27:37 +09:00
David Colburn and GitHub
191a9e8014
update core to 0.0.5 ( #1540 )
...
* update core
* sort imports
* fix typos
* redundant types
2023-03-22 16:53:23 -07:00
David Colburn and GitHub
e8c7506d60
update deprecated egress client warning ( #1533 )
2023-03-20 13:46:47 -07:00
David Colburn and GitHub
b23a0e7f39
add active filter to ListEgress ( #1517 )
...
* add active filter to ListEgress
* update test
* missed a filter
2023-03-14 13:07:00 -07:00
Paul Wells and GitHub
54bf7e0dac
allow configuring signal message buffer size ( #1504 )
...
* allow configuring signal message buffer size
* update psrpc
2023-03-08 17:34:14 -08:00
Paul Wells and GitHub
2c93d55e5c
add stream retry middleware for signalling ( #1503 )
2023-03-08 00:51:19 -08:00
cnderrauber and GitHub
11ae7fdbb6
Don't switch candidate if signal closed when pc failed ( #1498 )
...
* Don't switch candidate if signal closed when pc failed
* change comment
* test case
2023-03-08 15:16:40 +08:00
lukasIO and GitHub
958d2f8284
Add topics to data channel messages ( #1489 )
...
* Add topics to data channel messages
* update protocol
2023-03-07 10:41:37 +01:00
Paul Wells and GitHub
e22de045ba
add signal psrpc service ( #1485 )
...
* add signal psrpc service
* update protocol dep
* refactor for cloud
* update psrpc
* pr feedback
2023-03-03 15:49:46 -08:00
Benjamin Pracht and GitHub
17ae1506f5
Chain twirpLogger and twirpRequestStatusHook properly for the Egress server ( #1470 )
2023-02-25 15:15:50 -07:00
David Colburn and GitHub
3ac2a35c23
check nil video grants ( #1463 )
2023-02-23 11:30:59 -08:00
Haiyang Wang and GitHub
15a9ad2b7a
fix: unable to notify webhook when egress ending with status EgressStatus_EGRESS_LIMIT_REACHED ( #1451 )
2023-02-22 12:04:26 -08:00
Paul Wells and GitHub
b35d64ae86
finish timed version migration ( #1443 )
...
* finish timed version migration
* update protocol dep
2023-02-18 12:08:08 -08:00
David Colburn and GitHub
6da9e85636
Remove deprecated ingress rpc ( #1439 )
...
* remove legacy ingress rpcs
* remove from io service
2023-02-17 11:40:38 -08:00