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

Updated guides and doc-strings to recommend VideoPriorityBasedPolicy over VideoAdaptiveProbePolicy #2959

Merged
merged 1 commit into from
Sep 30, 2024

Conversation

hensmi-amazon
Copy link
Contributor

Issue #: N/A

Description of changes:
Title. I also cleaned up some other sections of the guide.

Testing:
N/A
Can these tested using a demo application? Please provide reproducible step-by-step instructions.
No

Checklist:

  1. Have you successfully run npm run build:release locally?
    y

  2. Do you add, modify, or delete public API definitions? If yes, has that been reviewed and approved?
    n

  3. Do you change the wire protocol, e.g. the request method? If yes, has that been reviewed and approved?
    n

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

@hensmi-amazon hensmi-amazon requested a review from a team as a code owner September 27, 2024 20:47
@@ -157,22 +157,16 @@ You can also observe the [connectionDidSuggestStopVideo](https://aws.github.io/a

The SDK by default uses the [NScaleVideoUplinkBandwidthPolicy](https://aws.github.io/amazon-chime-sdk-js/classes/nscalevideouplinkbandwidthpolicy.html) which monitors number of participants in the meeting and automatically scales down the maxBandwidthKbps as the number of remote video tiles increases. This can be customized by implementing a [VideoUplinkBandwidth Policy](https://aws.github.io/amazon-chime-sdk-js/classes/meetingsessionconfiguration.html#videouplinkbandwidthpolicy) and setting it in the [MeetingSessionConfiguration](https://aws.github.io/amazon-chime-sdk-js/classes/meetingsessionconfiguration.html#videouplinkbandwidthpolicy) class.

#### Pause remote attendee video

When more video is being received than available estimated downlink bandwidth can support, the event [videoNotReceivingEnoughData](https://aws.github.io/amazon-chime-sdk-js/interfaces/audiovideoobserver.html#videonotreceivingenoughdata) can is triggered with a list of attendee IDs and the bandwidth being consumed due to them. You can use this information to selectively pause attendees that are sending the highest bitrate video streams using [pauseVideoTile](https://aws.github.io/amazon-chime-sdk-js/interfaces/audiovideofacade.html#pausevideotile). When a video tile is paused, the action only affects your client. It does not pause the video for other attendees.
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This recommendation is really wacky. Had to remove it.

@@ -5,9 +5,7 @@ The uplink policy controls the configuration of the renditions through camera ca

Simulcast is currently disabled by default. To enable it [MeetingSessionConfiguration.enableSimulcastForUnifiedPlanChromiumBasedBrowsers](https://aws.github.io/amazon-chime-sdk-js/classes/meetingsessionconfiguration.html#enablesimulcastforunifiedplanchromiumbasedbrowsers) must be set. Currently, only Chrome 76 and above is supported.

The [VideoAdaptiveProbePolicy](https://aws.github.io/amazon-chime-sdk-js/classes/videoadaptiveprobepolicy.html) downlink policy adaptively subscribes to the best simulcast layer and is automatically selected if [[MeetingSessionConfiguration.enableSimulcastForUnifiedPlanChromiumBasedBrowsers](https://aws.github.io/amazon-chime-sdk-js/classes/meetingsessionconfiguration.html#enablesimulcastforunifiedplanchromiumbasedbrowsers) is set to true.
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm considering this a point against the pattern of the magic bool that under-the-hood turns on a bunch of features. Future change compatibility seems like it will almost always be an issue.


1. Message from infrastructure enumerating video streams from each remote client
2. Estimated downlink bandwidth from WebRTC library
3. Media metrics such as packet loss and used bandwidth
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This section has way too many lower level details that builders don't need, so i didn't move them over to the other guide.

/**
* [[VideoAdaptiveProbePolicy]] wraps [[VideoPriorityBasedPolicy]] with customized behavior to automatically
* assign a high preference to content share. This is a legacy policy used by default when simulcast is enabled, but
* all customers should be using `VideoPriorityBasedPolicy` instead, since this policy does not work with
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It's not that its impossible to make it work. Just that no customers were using this policy at the time I released SSNA (though we occasionally get questions about this policy vs the priority policy) so i didn't see the purpose in backporting it.

@hensmi-amazon hensmi-amazon merged commit 26988b4 into main Sep 30, 2024
10 checks passed
@hensmi-amazon hensmi-amazon deleted the update-guides branch September 30, 2024 17:44
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants