Skip to content

Draft: RTC as core feature MVP

Olivier Gauthier requested to merge mvp/core-rtc into 5.x

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

Merge request reports