question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

Simultcast - `remoteVideoSourcesDidChange` called with incorrect number of videoSources

See original GitHub issue

What happened and what did you expect to happen?

3rd attempt to enable simulcast in our app.

remoteVideoSourcesDidChange is called with an incorrect number of videoSources

Have you reviewed our existing documentation?

Reproduction steps

We haven’t tested to see if this can be reproduced in a simple setup, so it may apply only to our app.

Using:

  • DefaultSimulcastUplinkPolicy.
  • config.serverSideNetworkAdaption = ServerSideNetworkAdaption.BandwidthProbing

Layout (devices are of no relevance, except for the number of attendees):

  • Device A (local)
  • Device B (remote)
  • Device C (remote)
  • all devices have their cameras ON

When Device C hits refresh :

  • A will see B as having turned off its camera (also its stream disappears), though B has not taken any action.
  • remoteVideoSourcesDidChange is triggered twice; once with the remaining remote video source (B) and the second time with an empty array.
  • weirdly enough, we can’t reproduce in less or more than 3 attendees
  • cannot reproduce when not using simulcast

Amazon Chime SDK for JavaScript version

3.6.0

What browsers are you seeing the problem on?

any

Browser version

any

Meeting and Attendee ID Information.

No response

Browser console logs

no logs needed

Issue Analytics

  • State:closed
  • Created a year ago
  • Comments:14 (8 by maintainers)

github_iconTop GitHub Comments

1reaction
carlossantos74commented, Oct 17, 2022

The fix has been released in the latest 3.9.0 version on Sep 21.

This version is already in the changelog, but it is not yet available npmjs, do you have any predictions for when it will be available there?

1reaction
xuesichaocommented, Sep 15, 2022

I reproduced the issue without using BandwidthProbing, and observed exact same results as previous test.

I used the same repro steps list below.

Steps:

  1. Three attendees (1, 2, 3) join the meeting enabling simulcast, priorityBasedDownlinkPolicy with BandwidthProbing.
  2. All of three enable camera.
  3. Refresh page in the window of attendee 3.
  4. From attendee 1’s window, attendee 3’s video tile disappears, and attendee 2’s video tile disappears shortly and appears.
  5. From attendee 2’s window, attendee 3’s video tile disappears, and attendee 1’s video tile disappears shortly and appears.

step 4 and 5 happens at the same time.

I observed three remoteVideoSourcesDidChange events from either attendee 1 or attendee 2’s perspective:

  1. videoSources contains the remaining remote attendee. (expected result)
  2. videoSources is empty.
  3. videoSources contains the remaining remote attendee. (expected result)

The only difference is step1. Three attendees (1, 2, 3) join the meeting enabling simulcast, priorityBasedDownlinkPolicy with Server Side Network Adaption set to None instead of using BandwidthProbing.

image

Got the same results: image

It seems it’s not a BandwidthProbing issue. @hensmi-amazon

Read more comments on GitHub >

github_iconTop Results From Across the Web

AudioVideoObserver | amazon-chime-sdk-js
Called when the remote video sending sources get changed. Parameters. videoSources: VideoSource[]. Returns void. Optional videoAvailabilityDidChange.
Read more >
amazon-chime-sdk-js/CHANGELOG.md at main - GitHub
A JavaScript client library for integrating multi-party communications powered by the Amazon Chime service.
Read more >
amazon-chime-sdk-js | Yarn - Package Manager
Build video calling, audio calling, messaging, and screen sharing applications powered by the Amazon Chime SDK. The Amazon Chime SDK is a set...
Read more >
amazon-chime-sdk-js/CHANGELOG.md - UNPKG
If the browser sends an incorrect packet rate, this will be logged ... 188, to explicitly request remote video sources to receive and...
Read more >
It is possible for plugin alias support to emit NPE - IssueHint
JavaMethod$JavaMethodN.call(JavaMethod.java:837)", "org.jruby.ir.runtime. ... Simultcast - `remoteVideoSourcesDidChange` called with incorrect number of ...
Read more >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found