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

[iOS] Releasing ACSRenderer removes ACSRemoteVideoStream as well #95

Closed
ryanespiritu opened this issue Nov 5, 2020 · 5 comments
Closed
Assignees
Labels
Bug Something isn't working Calling Issue involves Calling functionality. iOS Issues involving the iOS SDK

Comments

@ryanespiritu
Copy link

Describe the bug
Disposing and releasing my reference to an ACSRemoteParticipant's ACSRenderer causes the associated ACSRemoteVideoStream to be removed as well. In other words, the stream no longer appears in the videoStreams array maintained by the remote participant.

Expected behavior
I would expect that the removal/disposal of an ACSRenderer should not have an effect on an ACSRemoteVideoStream. For instance, it would be nice to be able to dispose the current renderer but re-use the remote video stream at another time and initialize a new renderer object with it.

@ghost ghost added the Needs: triage 🔍 label Nov 5, 2020
@mariusu-msft mariusu-msft added Calling Issue involves Calling functionality. iOS Issues involving the iOS SDK and removed Needs: triage 🔍 labels Nov 5, 2020
@sankum-msft
Copy link
Contributor

Disposing ACSRenderer raises a ACSRemoteVideoStream removed event which should be followed by another ACSRemoteVideoStream added event almost immediately. If your observation is based on these events, please make sure your app is handling both these events in the right order.

From the issue it seems you are talking about the ACSRemoteParticipant.VideoStreams collection. I was not able to repro the bug on my end. Can you please follow this guide to share your client logs for us to investigate? Also, please tell how often are you able to repro this bug.

@ryanespiritu
Copy link
Author

Hey @sankum-msft thanks for the response! My observation was based off on onVideoStreamsUpdated:, I verified that after disposing the renderer I am only seeing removed streams and not added ones.

To add a bit more context here, I am attempting to dispose the renderers of remote participants when I background my app, in order to avoid any unnecessary overhead while the app is in the background. When I foreground the app, I wanted to create new renderers with the existing remote participants' videoStreams but I found that these arrays were empty.

Here are the exact repro steps:

  1. Background the app and once UIApplicationWillResignActiveNotification is received, dispose the ACSRenderers for each ACSRemoteParticipant
  2. Observe there are only onVideoStreamsUpdated: events for removed streams
  3. Foreground the app and once UIApplicationDidBecomeActiveNotification is received, attempt to access videoStreams for each ACSRemoteParticipant but observe these arrays are empty

@sankum-msft
Copy link
Contributor

There is a known bug in ACS Calling SDK is not raising ACSRemoteVideoStream added event here. We have a fix in works and should be included as part of the next release.

@ProbablePrime ProbablePrime added the Bug Something isn't working label Nov 9, 2020
@sankum-msft
Copy link
Contributor

We've released beta6 that should fix this issue.

@mariusu-msft
Copy link
Member

Closing. Please let us know if you encounter this problem again.

@ghost ghost locked as resolved and limited conversation to collaborators Jan 2, 2021
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
Bug Something isn't working Calling Issue involves Calling functionality. iOS Issues involving the iOS SDK
Projects
None yet
Development

No branches or pull requests

4 participants