I have implemented a multicast out component using SimpleRTPSink and RTCPInstance, and a multicast in component using SimpleRTPSource and RTCPInstance. When the multicast in component is receiving from a multicast out component on the same device, I have them share Groupsocks for RTP and RTCP.
The issue I'm having is when I go to shutdown one component, it seems to stop the other component. The code tracks how many components own the Groupsock, so I know the Groupsock isn't being deleted.
Say for example I'm shutting down the multicast out component like so:
This will cause the multicast in component to stop working and stop receiving any more streams, Even if I re-instantiate multicast out using the same shared Groupsocks, the multicast out works just fine, but the multicast in continues to be stopped (unless of course I re-instantiate the multicast in). Keep in mind, this is only the case where the multicast in is receiving the multicast out on the same device, and the Groupsocks are shared.
The only link between components is the shared Groupsocks. I've looked into the Live555 code, but I can't find how this sharing of Groupsocks would cause one component to be stopped when another is shutdown.
Could you point to how exactly the sharing of Groupsocks would cause this? Even better, do you know a solution, while still being able to share Groupsocks?