Skip to content
Snippets Groups Projects
This project is mirrored from https://github.com/livekit/livekit. Pull mirroring updated .
  1. Nov 05, 2021
  2. Nov 04, 2021
  3. Nov 03, 2021
  4. Nov 02, 2021
  5. Nov 01, 2021
  6. Oct 31, 2021
    • David Zhao's avatar
      Fix missing participant updates race (#163) · 7442551a
      David Zhao authored
      * Fix faulty participant update buffering.
      
      * Fix bug with broadcasting out of order
      
      * dedicated participant update worker, without locks
      
      * use tracker to drop duplicate/out of date messages
      
      * additional lock around filter logic
      7442551a
  7. Oct 29, 2021
  8. Oct 26, 2021
  9. Oct 25, 2021
    • Raja Subramanian's avatar
      Fix interface duplicate definition. (#157) · 4789ae4c
      Raja Subramanian authored
      Got the following error on a fresh install
      ```
      wire: /root/ws/livekit-server/pkg/service/interfaces.go:35:2: DeleteRoom redeclared
      wire: /root/ws/livekit-server/pkg/service/interfaces.go:38:2: 	other declaration of DeleteRoom
      wire: generate failed
      Error: exit status 1
      ```
      Probably something from the latest `wire` version.
      
      After consulting David, removing the duplicate.
      
      Testing:
      --------
      - Server builds and runs. Client is able to connect.
      4789ae4c
  10. Oct 21, 2021
    • David Colburn's avatar
      remove SignalRequest_Simulcast (#154) · 1f643dc9
      David Colburn authored
      1f643dc9
    • David Colburn's avatar
      update protocol · c680c246
      David Colburn authored
      c680c246
    • Raja Subramanian's avatar
      Prevent missing entry in pending tracks (#152) · e0e46e07
      Raja Subramanian authored
      * Prevent missing entry in pending tracks
      
      Problem:
      --------
      A track received via signalling request `AddTrack` is stored
      in `pendingTracks` of participant. A MediaTrack is created
      when `onTrack` fires after `SetRemoteDescription`. At that
      time, pending tracks are searched to find a matching track
      and look up an already published MediaTrack.
      
      This is because `onTrack` fires once for every layer of
      Simulcast and MediaTrack abstraction is for a media track and
      not one for every layer of Simulcast track.
      
      To accomplish that, pending tracks are cleaned up 5 seconds
      after the MediaTrack is created. The theory there is that
      `onTrack` will fire on all layers within 5 seconds. But, have
      observed several instances on my slow machine of that firing
      after 5 seconds which results in the search failing and we end
      up creating a new MediaTrack.
      
      The above is probably the reason (I am guessing though) for
      subscriber PC having an extra m-line some times.
      
      Considered fix:
      ---------------
      One possible option is to increase that 5 seconds timeout to a
      very large value. But, it has another issue.
      
      `getPendingTrack` is given the track id which comes in the SDP.
      
      Entries are added to the pending tracks using track id received
      via the `AddTrack` signalling message.
      
      And those two need not be the same. Especially Firefox has different ids
      every time. Not sure if that is something we do on client side which
      causes that, but it does look like a real possibility.
      
      To handle that case, `getPendingTrack` looks up tracks by media kind
      (audio/video) if the look up by SDP client id fails.
      
      Here, it is possible that there are two pending tracks of type video
      (think camera and screen sharing as an example) and looking up by kind
      might end up picking the wrong one.
      
      Fix:
      ----
      Store the signalled client id and SDP client id in the MediaTrack and
      look up the published tracks by SDP client id for a track match.
      
      If there is no match, create a new MediaTrack and add it to publishedTracks
      and delete the corresponding pending track all within the lock (yeah not
      great to have a lot of code within the lock, but this is probably worth
      it to have the correctness).
      
      This does solve the issue of deferred pending track removal causing issues.
      
      However, note that kind based look up may do some switching. In a scenario
      where there are two pending tracks of kind video and the look up has to
      rely on kind, it is possible that signalCid and sdpCid get cross matched
      (i. e. client might have sent a signalCid for a Simulcast track, but during
      kind based look up it gets assigned to a non-simulcast track). I think
      that is okay as there is no strong correlation between the two.
      
      Testing:
      --------
      - Connect from Chrome, Firefox (both orders, Chrome joining first, Firefox joining first) and ensure that media subscriptions and publishing are correct
      - Ensure that DTX munging works properly too.
      
      * Fix tests
      
      Add back adding track to publishedTracks for testing purposes.
      
      * Add a test to check case of `AddTrack` rejecting already published track
      
      * Remove debug.
      
      * Address PR comments - do not need to return SDP cid from `getPendingTracks`.
      e0e46e07
  11. Oct 20, 2021
  12. Oct 19, 2021
    • Raja Subramanian's avatar
      Use `abs-send-time` RTP header extension for video downstream (#149) · 2d76c672
      Raja Subramanian authored
      - Update ion-sfu to v1.20.14
      - Enable `abs-send-time` for video tracks
      
      Reference: ion-sfu PR - https://github.com/livekit/ion-sfu/pull/12
      
      Testing:
      --------
      - Look at SDP offer in subscriber PC and ensure that abs-send-time is negotiated.
      - Ensure that downstream packets have `abs-send-time` extension for video packets.
      
      TODO:
      -----
      - Not yet setting this for audio tracks. Eventually we want to move
      to TWCC. This is just a step along the way.
      2d76c672
    • David Colburn's avatar
      Small refactor (#148) · 0c8fe361
      David Colburn authored
      * small refactor
      
      * extra line
      
      * fix room allocator test
      
      * selector fakes not used
      
      * keep decisions out of router
      
      * put nodeId logic back
      
      * fix room allocator test
      0c8fe361
  13. Oct 18, 2021
  14. Oct 15, 2021
  15. Oct 14, 2021
  16. Oct 13, 2021
  17. Oct 12, 2021
  18. Oct 11, 2021
  19. Oct 10, 2021
  20. Oct 09, 2021
  21. Oct 08, 2021
  22. Oct 07, 2021
Loading