Draft: RTC as core feature MVP
Requires front-end branch sat-mtl/tools/scenic/scenic!899
Current issues with RTC in Switcher's core MVP :
- Deadlocks at SIGINT
- Crash with "Can't resolve STUN server" and "Too many open files" after 7 streams
- Issues using SIP quiddity at same time because you cannot load two different versions of libnice in same process
- Subscribe does not manage audio yet, publish does
- Unsubscribe on "producer-removed" event not yet implemented
- 5 pub/sub edge-cases are hard-coded
- do not publish thumbnail quiddity
- do not publish preview quiddity
- do not publish extshmsrc quiddity
- do not publish Window quiddity (glfwin)
- do not re-publish remote stream (causing a re-publishing loop)
- TURN username and password are hard-coded
- No support for separate rooms yet
- No authentication yet
- Bundles causes more edge-cases
- RTC does not capture nickname from outside bundle
- RTC instanciates one more time inside bundle second Switcher manager
- current workaround is to prefer videotestsrc instead of videoTestInput bundle
- Cryptic crashes related to shmdata such as
- "semop ReadLock Invalid argument"
- "connect: Resource temporarily unavailable"
- "semget: No such file or directory"
- urisrc quiddity produces non-interleaved audio that is not compatible with webrtcsink
- spdlog once threw this abort when testing with 2 switcher processes
terminate called after throwing an instance of 'spdlog::spdlog_ex' what(): Failed opening file ~/.local/state/switcher/logs/switcher.log for writing: Too many open files Aborted
Edited by Olivier Gauthier