Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Clarify comment on previous fix #1838

Merged
merged 3 commits into from
Nov 29, 2021
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
### Fixed

### Changed
- Clarified comment in `DefaultSimulcastUplinkPolicy`.

## [2.23.0] - 2021-11-22
### Added
Expand Down
24 changes: 12 additions & 12 deletions docs/classes/defaultsimulcastuplinkpolicy.html
Original file line number Diff line number Diff line change
Expand Up @@ -235,7 +235,7 @@ <h3>add<wbr>Observer</h3>
<aside class="tsd-sources">
<p>Implementation of <a href="../interfaces/simulcastuplinkpolicy.html">SimulcastUplinkPolicy</a>.<a href="../interfaces/simulcastuplinkpolicy.html#addobserver">addObserver</a></p>
<ul>
<li>Defined in <a href="https://github.com/aws/amazon-chime-sdk-js/blob/master/src/videouplinkbandwidthpolicy/DefaultSimulcastUplinkPolicy.ts#L388">src/videouplinkbandwidthpolicy/DefaultSimulcastUplinkPolicy.ts:388</a></li>
<li>Defined in <a href="https://github.com/aws/amazon-chime-sdk-js/blob/master/src/videouplinkbandwidthpolicy/DefaultSimulcastUplinkPolicy.ts#L395">src/videouplinkbandwidthpolicy/DefaultSimulcastUplinkPolicy.ts:395</a></li>
</ul>
</aside>
<h4 class="tsd-parameters-title">Parameters</h4>
Expand All @@ -259,7 +259,7 @@ <h3>choose<wbr>Capture<wbr>And<wbr>Encode<wbr>Parameters</h3>
<aside class="tsd-sources">
<p>Implementation of <a href="../interfaces/simulcastuplinkpolicy.html">SimulcastUplinkPolicy</a>.<a href="../interfaces/simulcastuplinkpolicy.html#choosecaptureandencodeparameters">chooseCaptureAndEncodeParameters</a></p>
<ul>
<li>Defined in <a href="https://github.com/aws/amazon-chime-sdk-js/blob/master/src/videouplinkbandwidthpolicy/DefaultSimulcastUplinkPolicy.ts#L292">src/videouplinkbandwidthpolicy/DefaultSimulcastUplinkPolicy.ts:292</a></li>
<li>Defined in <a href="https://github.com/aws/amazon-chime-sdk-js/blob/master/src/videouplinkbandwidthpolicy/DefaultSimulcastUplinkPolicy.ts#L299">src/videouplinkbandwidthpolicy/DefaultSimulcastUplinkPolicy.ts:299</a></li>
</ul>
</aside>
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">DefaultVideoAndEncodeParameter</span></h4>
Expand All @@ -277,7 +277,7 @@ <h3>choose<wbr>Encoding<wbr>Parameters</h3>
<aside class="tsd-sources">
<p>Implementation of <a href="../interfaces/simulcastuplinkpolicy.html">SimulcastUplinkPolicy</a>.<a href="../interfaces/simulcastuplinkpolicy.html#chooseencodingparameters">chooseEncodingParameters</a></p>
<ul>
<li>Defined in <a href="https://github.com/aws/amazon-chime-sdk-js/blob/master/src/videouplinkbandwidthpolicy/DefaultSimulcastUplinkPolicy.ts#L202">src/videouplinkbandwidthpolicy/DefaultSimulcastUplinkPolicy.ts:202</a></li>
<li>Defined in <a href="https://github.com/aws/amazon-chime-sdk-js/blob/master/src/videouplinkbandwidthpolicy/DefaultSimulcastUplinkPolicy.ts#L209">src/videouplinkbandwidthpolicy/DefaultSimulcastUplinkPolicy.ts:209</a></li>
</ul>
</aside>
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Map</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">RTCRtpEncodingParameters</span><span class="tsd-signature-symbol">&gt;</span></h4>
Expand All @@ -295,7 +295,7 @@ <h3>choose<wbr>Media<wbr>Track<wbr>Constraints</h3>
<aside class="tsd-sources">
<p>Implementation of <a href="../interfaces/simulcastuplinkpolicy.html">SimulcastUplinkPolicy</a>.<a href="../interfaces/simulcastuplinkpolicy.html#choosemediatrackconstraints">chooseMediaTrackConstraints</a></p>
<ul>
<li>Defined in <a href="https://github.com/aws/amazon-chime-sdk-js/blob/master/src/videouplinkbandwidthpolicy/DefaultSimulcastUplinkPolicy.ts#L191">src/videouplinkbandwidthpolicy/DefaultSimulcastUplinkPolicy.ts:191</a></li>
<li>Defined in <a href="https://github.com/aws/amazon-chime-sdk-js/blob/master/src/videouplinkbandwidthpolicy/DefaultSimulcastUplinkPolicy.ts#L198">src/videouplinkbandwidthpolicy/DefaultSimulcastUplinkPolicy.ts:198</a></li>
</ul>
</aside>
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">MediaTrackConstraints</span></h4>
Expand All @@ -312,7 +312,7 @@ <h3>for<wbr>Each<wbr>Observer</h3>
<li class="tsd-description">
<aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/aws/amazon-chime-sdk-js/blob/master/src/videouplinkbandwidthpolicy/DefaultSimulcastUplinkPolicy.ts#L398">src/videouplinkbandwidthpolicy/DefaultSimulcastUplinkPolicy.ts:398</a></li>
<li>Defined in <a href="https://github.com/aws/amazon-chime-sdk-js/blob/master/src/videouplinkbandwidthpolicy/DefaultSimulcastUplinkPolicy.ts#L405">src/videouplinkbandwidthpolicy/DefaultSimulcastUplinkPolicy.ts:405</a></li>
</ul>
</aside>
<h4 class="tsd-parameters-title">Parameters</h4>
Expand Down Expand Up @@ -353,7 +353,7 @@ <h3>get<wbr>Encoding<wbr>Simulcast<wbr>Layer</h3>
<li class="tsd-description">
<aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/aws/amazon-chime-sdk-js/blob/master/src/videouplinkbandwidthpolicy/DefaultSimulcastUplinkPolicy.ts#L366">src/videouplinkbandwidthpolicy/DefaultSimulcastUplinkPolicy.ts:366</a></li>
<li>Defined in <a href="https://github.com/aws/amazon-chime-sdk-js/blob/master/src/videouplinkbandwidthpolicy/DefaultSimulcastUplinkPolicy.ts#L373">src/videouplinkbandwidthpolicy/DefaultSimulcastUplinkPolicy.ts:373</a></li>
</ul>
</aside>
<h4 class="tsd-parameters-title">Parameters</h4>
Expand All @@ -377,7 +377,7 @@ <h3>max<wbr>Bandwidth<wbr>Kbps</h3>
<aside class="tsd-sources">
<p>Implementation of <a href="../interfaces/simulcastuplinkpolicy.html">SimulcastUplinkPolicy</a>.<a href="../interfaces/simulcastuplinkpolicy.html#maxbandwidthkbps">maxBandwidthKbps</a></p>
<ul>
<li>Defined in <a href="https://github.com/aws/amazon-chime-sdk-js/blob/master/src/videouplinkbandwidthpolicy/DefaultSimulcastUplinkPolicy.ts#L315">src/videouplinkbandwidthpolicy/DefaultSimulcastUplinkPolicy.ts:315</a></li>
<li>Defined in <a href="https://github.com/aws/amazon-chime-sdk-js/blob/master/src/videouplinkbandwidthpolicy/DefaultSimulcastUplinkPolicy.ts#L322">src/videouplinkbandwidthpolicy/DefaultSimulcastUplinkPolicy.ts:322</a></li>
</ul>
</aside>
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">number</span></h4>
Expand All @@ -395,7 +395,7 @@ <h3>remove<wbr>Observer</h3>
<aside class="tsd-sources">
<p>Implementation of <a href="../interfaces/simulcastuplinkpolicy.html">SimulcastUplinkPolicy</a>.<a href="../interfaces/simulcastuplinkpolicy.html#removeobserver">removeObserver</a></p>
<ul>
<li>Defined in <a href="https://github.com/aws/amazon-chime-sdk-js/blob/master/src/videouplinkbandwidthpolicy/DefaultSimulcastUplinkPolicy.ts#L393">src/videouplinkbandwidthpolicy/DefaultSimulcastUplinkPolicy.ts:393</a></li>
<li>Defined in <a href="https://github.com/aws/amazon-chime-sdk-js/blob/master/src/videouplinkbandwidthpolicy/DefaultSimulcastUplinkPolicy.ts#L400">src/videouplinkbandwidthpolicy/DefaultSimulcastUplinkPolicy.ts:400</a></li>
</ul>
</aside>
<h4 class="tsd-parameters-title">Parameters</h4>
Expand All @@ -419,7 +419,7 @@ <h3>set<wbr>Has<wbr>Bandwidth<wbr>Priority</h3>
<aside class="tsd-sources">
<p>Implementation of <a href="../interfaces/simulcastuplinkpolicy.html">SimulcastUplinkPolicy</a>.<a href="../interfaces/simulcastuplinkpolicy.html#sethasbandwidthpriority">setHasBandwidthPriority</a></p>
<ul>
<li>Defined in <a href="https://github.com/aws/amazon-chime-sdk-js/blob/master/src/videouplinkbandwidthpolicy/DefaultSimulcastUplinkPolicy.ts#L324">src/videouplinkbandwidthpolicy/DefaultSimulcastUplinkPolicy.ts:324</a></li>
<li>Defined in <a href="https://github.com/aws/amazon-chime-sdk-js/blob/master/src/videouplinkbandwidthpolicy/DefaultSimulcastUplinkPolicy.ts#L331">src/videouplinkbandwidthpolicy/DefaultSimulcastUplinkPolicy.ts:331</a></li>
</ul>
</aside>
<h4 class="tsd-parameters-title">Parameters</h4>
Expand All @@ -443,7 +443,7 @@ <h3>set<wbr>Ideal<wbr>Max<wbr>Bandwidth<wbr>Kbps</h3>
<aside class="tsd-sources">
<p>Implementation of <a href="../interfaces/simulcastuplinkpolicy.html">SimulcastUplinkPolicy</a>.<a href="../interfaces/simulcastuplinkpolicy.html#setidealmaxbandwidthkbps">setIdealMaxBandwidthKbps</a></p>
<ul>
<li>Defined in <a href="https://github.com/aws/amazon-chime-sdk-js/blob/master/src/videouplinkbandwidthpolicy/DefaultSimulcastUplinkPolicy.ts#L320">src/videouplinkbandwidthpolicy/DefaultSimulcastUplinkPolicy.ts:320</a></li>
<li>Defined in <a href="https://github.com/aws/amazon-chime-sdk-js/blob/master/src/videouplinkbandwidthpolicy/DefaultSimulcastUplinkPolicy.ts#L327">src/videouplinkbandwidthpolicy/DefaultSimulcastUplinkPolicy.ts:327</a></li>
</ul>
</aside>
<h4 class="tsd-parameters-title">Parameters</h4>
Expand Down Expand Up @@ -495,7 +495,7 @@ <h3>update<wbr>Index</h3>
<aside class="tsd-sources">
<p>Implementation of <a href="../interfaces/simulcastuplinkpolicy.html">SimulcastUplinkPolicy</a>.<a href="../interfaces/simulcastuplinkpolicy.html#updateindex">updateIndex</a></p>
<ul>
<li>Defined in <a href="https://github.com/aws/amazon-chime-sdk-js/blob/master/src/videouplinkbandwidthpolicy/DefaultSimulcastUplinkPolicy.ts#L212">src/videouplinkbandwidthpolicy/DefaultSimulcastUplinkPolicy.ts:212</a></li>
<li>Defined in <a href="https://github.com/aws/amazon-chime-sdk-js/blob/master/src/videouplinkbandwidthpolicy/DefaultSimulcastUplinkPolicy.ts#L219">src/videouplinkbandwidthpolicy/DefaultSimulcastUplinkPolicy.ts:219</a></li>
</ul>
</aside>
<h4 class="tsd-parameters-title">Parameters</h4>
Expand All @@ -519,7 +519,7 @@ <h3>wants<wbr>Resubscribe</h3>
<aside class="tsd-sources">
<p>Implementation of <a href="../interfaces/simulcastuplinkpolicy.html">SimulcastUplinkPolicy</a>.<a href="../interfaces/simulcastuplinkpolicy.html#wantsresubscribe">wantsResubscribe</a></p>
<ul>
<li>Defined in <a href="https://github.com/aws/amazon-chime-sdk-js/blob/master/src/videouplinkbandwidthpolicy/DefaultSimulcastUplinkPolicy.ts#L239">src/videouplinkbandwidthpolicy/DefaultSimulcastUplinkPolicy.ts:239</a></li>
<li>Defined in <a href="https://github.com/aws/amazon-chime-sdk-js/blob/master/src/videouplinkbandwidthpolicy/DefaultSimulcastUplinkPolicy.ts#L246">src/videouplinkbandwidthpolicy/DefaultSimulcastUplinkPolicy.ts:246</a></li>
</ul>
</aside>
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -136,14 +136,21 @@ export default class DefaultSimulcastUplinkPolicy implements SimulcastUplinkPoli
// The value of `newActiveStreams` is somewhat irrelevant since this single
// stream will adapt based on both sender and receiver network conditions.
//
// We don't use top layer (middle vs. low doesn't matter) here to work around a bug in Chromium where
// We use middle layer here to work around a bug in Chromium where
// it seems when a transceiver is created when BWE is low (e.g. on a reconnection),
// it will never reset the encoder even when `setParameters` is called. WebRTC bug
// #12788 seems to call a similar issue out as fixed for VP8, it's not clear if this
// is the same issue for H.264. Additionally we are not able to force a keyframe
// request from the backend since it will only be sending padding (which also
// don't have MID due to #10822). Since we don't scale when simulcast is disabled
// this doesn't have any end-user effect.
//
// Note that this still relies on a little bit (5-6 packets) of padding on reconnect
// and that technically the browser will still eventually try to send all 3 streams.
//
// Also note that due to some uninvestigated logic in bitrate allocation, Chromium
// will skip the bottom layer if we try setting it to 1200 kbps instead so it will still take a while to
// recover (as it needs to send padding until it reaches around 1000 kbps).
this.newActiveStreams = ActiveStreams.kHi;
newBitrates[0].maxBitrateKbps = 0;
newBitrates[1].maxBitrateKbps = 1200;
Expand Down