Best effort avoid crash when media transport adapter not using group lock #4281
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Due to asynchronous conference (#3928), port may still be accessed after removed from bridge. A media transport adapter may be destroyed immediately after port removal and when it is still being accessed after that, crash will occur. Or as the stream is "disconnected" from the underlying transport by the adapter, the stream cannot sync the destroy timing with the transport (i.e: cannot add/dec ref to the transport). This PR tries to maintain link of the stream to the underlying transport of a media transport adapter.
Also in this PR, try to stop streaming when stream destroy is invoked (for audio stream, video stream has already done it).