Skip to content
Snippets Groups Projects
  1. Feb 08, 2021
  2. Feb 05, 2021
    • Pierre Lespagnol's avatar
      sipcall: move ice destruction in IO pool · 36764836
      Pierre Lespagnol authored and Adrien Béraud's avatar Adrien Béraud committed
      The ice transport destruction can take a while, move
      this in the io pool to avoid blocking the main thread.
      This patch fix the incorrect orientation for android
      devices after conferences.
      
      Change-Id: I7ce467628aa265c2e8afc140d3bb4980beebd2ae
      36764836
    • Mohamed Chibani's avatar
      upnp: Always use published address as reflexive candidates · bddba1ee
      Mohamed Chibani authored and Sébastien Blin's avatar Sébastien Blin committed
      The external address of the IGD might not be always routable if
      the router is not directly connected to the internet.
      So we need to always add the published address returned by the DHT even if UPNP
      is enabled and actif. Failing to do so, and if the peer use only relay candidates,
      the TURN will reject all incoming connections from our public address because
      it were not in the candidates list and thus not authorized by TURN.
      
      The automatic reallocation of failing mappings was also improved.
      
      Change-Id: I5fb1424d5dc61b990595c229be647099b017eba1
      Gitlab: #335
      Unverified
      bddba1ee
    • Sébastien Blin's avatar
      sipcall: always check sdp_ before accessing it · 4a1d4e2b
      Sébastien Blin authored and Adrien Béraud's avatar Adrien Béraud committed
      Change-Id: I9d11246efa4c86534d2e8940510df3165e1119f6
      GitLab: #426
      4a1d4e2b
    • Sébastien Blin's avatar
      ice: better handling for connection errors · 4463ed9e
      Sébastien Blin authored
      First, on_connect_complete dropped the connection errors but it
      must be handled for restarting failed check if necessary.
      Then, a problematic case was detected when the controlling agent
      got only a few active checks to do, but a passive will succeed.
      In the previous version the controlling was failing as soon as
      all active checks were checked. Now, if all active are failing
      the controlling agent will let some time for passive agents and
      then will decide to set the negotiation as failed.
      
      Change-Id: Ica728f55083a34496b031c859ed73b576e1eef26
      GitLab: #411
      4463ed9e
    • Mohamed Chibani's avatar
      upnp: use asynchronous version of PUPNP DeletePortMapping method · 546698a9
      Mohamed Chibani authored and Sébastien Blin's avatar Sébastien Blin committed
      Calls to DeletePortMapping method are made synchronous which may cause
      lags. This might be particulary critical if the IGD does not respond
      fast enough since the calls are made on the shared main thread.
      
      Change-Id: I57366a70ffeb294e6277c4e8d946b339a8277309
      Gitlab: #420
      546698a9
  3. Feb 04, 2021
  4. Feb 03, 2021
  5. Feb 02, 2021
    • Mohamed Chibani's avatar
      upnp: unconditionally remove failed mappings · e9a6da65
      Mohamed Chibani authored
      In the previous implementation, a failed mapping was not removed if it's
      beeing used. The responsability was left to the owner to release it when
      done with it. This requires that all the owners implement the mapping
      callback and properly release the mapping. This might be somehow cumbersome
      and prune to error.
      Now, a failed mapping is automatically removed, and no further action is
      required from the owner. The mapping's owner will still receive a notification
      callback (if registered) when the state of the mapping changes to failed (or
      to any other state).
      
      Change-Id: I014ba3906b836efce3173fb22fbe298a4023db7e
      Gitlab: #335
      e9a6da65
    • Sébastien Blin's avatar
      sip: remove incorrect setupTransmissionData · 27504587
      Sébastien Blin authored and Adrien Béraud's avatar Adrien Béraud committed
      https://review.jami.net/c/ring-daemon/+/16369 introduced
      setUpTransmissionData() which is unnecessary for startCall() and
      sendTextMessage as "to" is for contact, not current account.
      
      Change-Id: I23373f5419f50b45a649d840c073186715fe053d
      GitLab: #406
      27504587
  6. Feb 01, 2021
  7. Jan 31, 2021
  8. Jan 29, 2021
  9. Jan 28, 2021
  10. Jan 27, 2021
    • Sébastien Blin's avatar
      connectivity: enhance shutdown handling and first packets · 0eb72e4f
      Sébastien Blin authored and Adrien Béraud's avatar Adrien Béraud committed
      This patch embeds multiple litte fixes detected while working on swarms:
      + When stopping an account, shutdownConnections() should be done
      before dht->join() to avoid any lock (because some io::run() are done).
      + Also, some channel were not awoken when clearing sockets.
      + channelDatas_ must be locked while accessed
      + setOnRecv() can be done after first packets on channel, so to avoid
      to miss first packets, re-inject current stored datas.
      
      Change-Id: I1d1335b5b6873b281c5357d18121a4bb525646f8
      0eb72e4f
  11. Jan 26, 2021
    • Mohamed Chibani's avatar
      upnp/pupnp: request all mapping remove on IGD discovery · af46a372
      Mohamed Chibani authored
      Send a request to delete all mappings created by previous
      JAMI instances as soon as a new upnp IGD is discovered.
      This is necessary with some implementations since they may
      not respond well if the list of existing mappings is large.
      Also make new requests for mappings with failing states.
      
      Change-Id: I97308f1620128a63f111bcfc02122b472def5c85
      Gitlab: #335
      af46a372
  12. Jan 25, 2021
  13. Jan 22, 2021
    • Philip-Dylan Gleonec's avatar
      contrib/ffmpeg: add FEC enable to patch list · 46c952b3
      Philip-Dylan Gleonec authored and Pierre Lespagnol's avatar Pierre Lespagnol committed
      Add the patches that enable FEC in libopus codec in ffmpeg package.json
      This ensures that the patches are properly applied, especially in the
      Windows builds.
      
      Issue: #5157
      Change-Id: I438de63528894d3c7ded553f1982d664bda26e31
      46c952b3
    • Philip-Dylan Gleonec's avatar
      audio_rtp_session: add RTCP packet loss control · 1367f46a
      Philip-Dylan Gleonec authored and Pierre Lespagnol's avatar Pierre Lespagnol committed
      Add a rtcpCheckerThread to get packet loss estimation from the RTCP RR
      packets, and send this information to the audio encoder.
      This packet loss estimation is capped between 0 and 100.
      When the new packet loss is higher than present estimation, the value
      in the codec is set to the new value, in order to react to a quick
      network quality drop.
      When the new packet loss estimation is lower than present estimation,
      the new value goes through a basic filter to avoid reducing the packet
      loss estimation too fast.
      
      Issue: #5157
      Change-Id: Ibc1d3d6f6935e3b73c362bd212ef997cfd7b8d2f
      1367f46a
    • Philip-Dylan Gleonec's avatar
      audio_sender: add setPackerLoss method · 764c9cb0
      Philip-Dylan Gleonec authored and Pierre Lespagnol's avatar Pierre Lespagnol committed
      Add setPacketLoss method which enable setting a new packet loss
      estimation.
      This method is based on the model of setBitrate in video_sender.
      
      Issue: #5157
      Change-Id: Ib757ce9c241f0b02b8a9a899b3d5a22e898203b3
      764c9cb0
    • Philip-Dylan Gleonec's avatar
      media_encoder: add setPacketLoss method · 998791a3
      Philip-Dylan Gleonec authored and Pierre Lespagnol's avatar Pierre Lespagnol committed
      Add a setPacketLoss method to enable setting a new packet loss
      estimation in the codec.
      This method follows the model of setBitrate and requires the
      implementation of getCurrentAudioAVCtx and isDynPacketLossSupported,
      which are also included in this patch.
      
      Issue: #5157
      Change-Id: I62f5246df1df0dc0867649299c6bbf6c12db43a2
      998791a3
    • Philip-Dylan Gleonec's avatar
      ffmpeg: reload packet loss for each libopus encode · c943ba89
      Philip-Dylan Gleonec authored and Pierre Lespagnol's avatar Pierre Lespagnol committed
      The libopus codec only reads and impelemnts options from the
      AVCodecContext at initialization. This means that packet loss
      estimation can not be dynamically set.
      This patch corrects this by reloading the packet loss estimation before
      each encode. This ensures that each opus packet is encoded with FEC
      data corresponding to the last packet loss estimation.
      This patch does not check the previous packet loss estimation, as it
      would increase software complexity, with one call of
      opus_multistream_encoder_ctl() at best when packet loss is unchanged,
      and two calls at most (one to get value, one to set value).
      
      Issue: #5157
      Change-Id: I3fce82d8b310a5751dc7fbc9a1b766d43c41c304
      c943ba89
    • Philip-Dylan Gleonec's avatar
      media_encoder: enable libopus FEC encoding · 7c960d55
      Philip-Dylan Gleonec authored and Pierre Lespagnol's avatar Pierre Lespagnol committed
      Adds a function to initialize the opus encoder with FEC support and a
      default packet loss of 10%.
      In future iterations, the default value should be set to 0 and the
      packet loss adapted accordingly to RTCP control packets.
      
      Issue: #5156
      Change-Id: I79b9c5e38ed388466d7b71a394f961d2ff9b001f
      7c960d55
    • Philip-Dylan Gleonec's avatar
      ffmpeg: add FEC support to libopusenc · b318b93f
      Philip-Dylan Gleonec authored and Pierre Lespagnol's avatar Pierre Lespagnol committed
      Add option to enable FEC support in libopus encoder, and adds uses this
      option to instanciate the opus encoder.
      This option is disabled by default, in order to avoid changing default
      ffmpeg behavior. If FEC support is enabled and packet loss is higher
      than 0, the encoder adds ancilliary data to the packet so the decoder
      can restore the previous packet, in case it is lost. As more data has
      to be transmitted, this reduces the audio quality when using a fixed
      bitrate.
      
      Issue: #5156
      Change-Id: Ic7d69ab122bd63c3ff880e46a0a0dcb316b00760
      b318b93f
    • Philip-Dylan Gleonec's avatar
      media_decoder: enable libopus FEC by default · d5b7d5ea
      Philip-Dylan Gleonec authored and Pierre Lespagnol's avatar Pierre Lespagnol committed
      By default, sets the option to use FEC decoding with libopus when
      preparing the decoder context.
      
      Issue: #5155
      Change-Id: Icc9dcbbd9df3f538eb2da794e2ff9b6a0380bdc2
      d5b7d5ea
    • Philip-Dylan Gleonec's avatar
      ffmpeg: add FEC support for opus decoder · 00770b03
      Philip-Dylan Gleonec authored and Pierre Lespagnol's avatar Pierre Lespagnol committed
      Patch ffmpeg to add an option (AVOption) to enable opus FEC decoding
      using libopus and add FEC decoding when the option is enabled.
      
      Issue: #5155
      Change-Id: I78754a9d02a333c7d73da60b87fd40a6da544835
      00770b03
    • Pierre Lespagnol's avatar
      media_encoder: hardware frame refactor · b3d23010
      Pierre Lespagnol authored and Sébastien Blin's avatar Sébastien Blin committed
      Fix unlinked hardware encoder/decoder cases (Conference, plugin, ...)
      
      Change-Id: I045de3d24d89e93141309b6b353cd0bcabd8509f
      b3d23010
  14. Jan 20, 2021
  15. Jan 15, 2021
  16. Jan 13, 2021
  17. Jan 12, 2021
Loading