EricssonResearch / EricssonResearch/openwebrtc
Unsuccessful Disconnection of call ::: remove_existing_send_source_and_payload: assertion failed: (sinkpad)
- Dominant language
- C
- Stars
- 1.8k
- Forks
- 531
- PR merge metrics
- No merged PRs in 30d
Description
Dear All
I have been playing around with the Android "NativeCall" application, and it's working well. However, there doesn't seem to be a way of gracefully ending a call. To test this, I simply created an "End" button, which when pressed, calls the existing "onDisconnect()" function, which for convenience is replicated below:
``` java
public void onDisconnect() {
Toast.makeText(this, "Disconnected from server", Toast.LENGTH_LONG).show();
updateVideoView(false);
mStreamSet = null;
mRtcSession.stop();
mRtcSession = null;
mSignalingChannel = null;
}
```
However, this always results in the android app crashing, with something like the following in logcat:
```
07-17 17:47:27.837 14624-14647/com.ericsson.research.owr.examples.nativecall E/g_printerr﹕ **
ERROR:owr_transport_agent.c:778:remove_existing_send_source_and_payload: assertion failed: (sinkpad)
```
I'm stuck at this point... are there any ideas?
Thank you very much!!
Contributor guide
Research direction
Start with the Android NativeCall onDisconnect() flow and the remove_existing_send_source_and_payload assertion in owr_transport_agent.c. Reproduce ending a call through the End button, then trace mRtcSession.stop() and the related teardown state. Done means disconnecting the call no longer crashes with the sinkpad assertion.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- android, c, java
- Domain
- audio-video-rtc, mobile
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 25/100