1. 13 Aug, 2019 1 commit
    • Pierre Lespagnol's avatar
      autoadapt: change bitrate quickly · 26b35255
      Pierre Lespagnol authored
      Change bitrate on the fly for supported codec, restart encoder only for other
      (~10ms) instead of restart all pipeline
      
      Change-Id: I1faad6e3cdc83f846d2279d9b8b997f1656f8596
      26b35255
  2. 01 Jun, 2019 1 commit
  3. 03 Apr, 2019 1 commit
  4. 02 Apr, 2019 1 commit
    • Adrien Béraud's avatar
      sources: rename to jami · 2130f067
      Adrien Béraud authored
      * rename namespace from ring to jami
      * rename logs methods from RING_* to JAMI_*
      * rename RING_VIDEO to ENABLE_VIDEO
      
      Change-Id: Ic98498652d7059fafe58a96220d565bcdfa53658
      2130f067
  5. 26 Mar, 2019 2 commits
    • Philippe Gorley's avatar
      accel: skip main memory when hardware reencoding · 52fbc755
      Philippe Gorley authored
      If the video input is being decoded on the hardware, use the hardware
      frames directly when encoding. Skips the transfer back to software in
      the video sender and the transfer to hardware in the encoder.
      
      Falls back to using the main memory as a middle man if the link between
      encoder and decoder fails.
      
      Change-Id: I59850e95e6952df71a461aad8e7dddda65f05ffb
      52fbc755
    • Philippe Gorley's avatar
      encoder: lazy initialize video stream · dfdee183
      Philippe Gorley authored
      Sets up video streams upon receiving the first video frame. Audio
      streams are still initialized as soon as possible.
      
      This allows a video encoder to use the pixel format of its received
      frames, and to set up a hardware transcoding pipeline if it receives
      a hardware frame.
      
      Change-Id: I622fc44b6096d63d7423837d2f2ec15680548a83
      dfdee183
  6. 08 Mar, 2019 1 commit
  7. 07 Mar, 2019 1 commit
  8. 06 Mar, 2019 1 commit
    • Philippe Gorley's avatar
      accel: modernise decoding · fda668f9
      Philippe Gorley authored
      Rewrites the hardware decoding system with C++-style code instead of
      C-style.
      
      Removes support for hardware decoding h263, as we do not use the h263p
      decoder, which is the codec with hardware support.
      
      Change-Id: I96b796ba8847dadd388c6e29eaee1115b25c2fb3
      fda668f9
  9. 13 Feb, 2019 1 commit
    • Philippe Gorley's avatar
      video: keep hardware frame reference · e928f99e
      Philippe Gorley authored
      Adds possibility to keep the hardware frame reference on the receiver
      side instead of immediately transferring it to main memory.
      
      Components that require software frames were updated to transfer the
      frame back to main memory.
      
      Change-Id: Idb9ecb64fdefedb9db160ec93592d7a047d356e8
      e928f99e
  10. 12 Feb, 2019 1 commit
    • Philippe Gorley's avatar
      encoder: cleanup and simplify · e059062a
      Philippe Gorley authored
      Cleans up the encoder a bit and removes methods that weren't used or did
      nothing. In any case, it should not be the encoder's responsibility to
      mute audio/video.
      
      Removes direct accesses to private data. All these options are accessible
      through the av_opt_* API with the AV_OPT_SEARCH_CHILDREN flag.
      
      Adding streams to the encoder is now done separately than opening an RTP
      output in an effort to streamline the encoder setup (file vs RTP).
      
      Change-Id: I7a868d098fa942697cfbe3246f368fb9fc7bfb0f
      e059062a
  11. 27 Jan, 2019 1 commit
  12. 26 Jan, 2019 1 commit
  13. 02 Jan, 2019 1 commit
  14. 06 Dec, 2018 1 commit
  15. 22 Oct, 2018 1 commit
  16. 10 Jul, 2018 1 commit
  17. 06 Jun, 2018 1 commit
    • Philippe Gorley's avatar
      media: add video recording support · c21c5b77
      Philippe Gorley authored
      If there are 2 video streams, overlays local video over peer video. Peer
      video will be upscaled if it is too small, while local video will be
      scaled to 1/16th the size of the peer video.
      
      If there is only 1 video stream, uses peer video settings if they are
      valid, or fall back on local video settings.
      
      Adds title and description metadata to recorded file.
      
      Change-Id: I182de013e3ac2d18161eadf406fc6494e5f59a4e
      c21c5b77
  18. 29 May, 2018 1 commit
  19. 15 May, 2018 1 commit
  20. 24 Apr, 2018 1 commit
  21. 23 Jan, 2018 1 commit
  22. 29 Nov, 2017 1 commit
  23. 27 Nov, 2017 1 commit
  24. 15 Feb, 2017 1 commit
    • Olivier SOLDANO's avatar
      Path MTU discovery implementation · 29ae5d8a
      Olivier SOLDANO authored
      This implementation uses gnutls dtls heartbeat API to test path MTU.
      heartbeat allowing messages with automated response in a datagram,
      the application is able to guess the MTU via a timeout in the heartbeat.
      (timeout on packet sent and no response, implies that the MTU is lower
      than the lost payload.)
      To minimize false positives (a response is lost for example), each attempt
      triggers one retry on the first timeout.
      This version ensures a minimal MTU of 512 bytes will be returned in
      case of any failure in the procedure.
      For retrocompatibility with non heartbeat capable clients,
      a fallback MTU is set at 1280.
      
      Change-Id: Ib9a7f63a70e8bdad239d8fc103779a0f2c387e87
      Reviewed-by: Andreas Traczyk's avatarAndreas Traczyk <andreas.traczyk@savoirfairelinux.com>
      29ae5d8a
  25. 11 Jan, 2017 1 commit
  26. 05 Jan, 2017 1 commit
  27. 19 Aug, 2016 1 commit
    • Gasuleg's avatar
      daemon: add SmartInfo · 0dc32710
      Gasuleg authored
      This feature provides relevant advanced information during a call.
      A user starts it with a refresh time and listens on a callback signal
      to get the updated information. This information is presented in a form
      of a map containing Call ID, codecs, framerate and resolution.
      
      The public API has:
      - startSmartInfo(<timeMS>)
      - stopSmartInfo()
      - CallSignal::SmartInfo(map) -- callback signal
      
      Change-Id: Iaafc12b5b53aee8ad008b93536f72a4152c4ee02
      Reviewed-by: Guillaume Roguez's avatarGuillaume Roguez <guillaume.roguez@savoirfairelinux.com>
      0dc32710
  28. 09 Mar, 2016 1 commit
  29. 20 Jan, 2016 1 commit
    • Guillaume Roguez's avatar
      cleanup video_base API · 84f878d9
      Guillaume Roguez authored
      This patchset changes Observable::notify and Observer::update API
      to remove the reference data attribute. This was uneeded into our context,
      aka used with smart pointers.
      
      Also fix coding rules and missing override keywords to overloaded virtual
      methods.
      
      Tuleap: #240
      Change-Id: I068b44cb526718d4cbae34b9d4d51871294bcf3e
      84f878d9
  30. 12 Jan, 2016 1 commit
  31. 13 Oct, 2015 1 commit
    • Guillaume Roguez's avatar
      media_encoder: disable sdp related logging · 57bc2d33
      Guillaume Roguez authored
      - refactored media_encoder::print_sdp(): log result only if DEBUG_SDP build variable is defined
      - video_sender: remove sdp_ variable seems not to be used anywhere
      
      Issue: #81581
      Change-Id: I191e520d2ff81907adf9db90dfdf96616d3c50d4
      57bc2d33
  32. 02 Oct, 2015 1 commit
  33. 21 Sep, 2015 1 commit
    • Guillaume Roguez's avatar
      update Copyright header · 5236ab05
      Guillaume Roguez authored
      - remove OpenSSL exception
      - fix Savoir-faire Linux naming
      - fix common Author: representation
      
      Issue: #80663
      Change-Id: I6c3b2ca1ed48ed474a0ecd5a30fe793526e11b00
      5236ab05
  34. 31 Aug, 2015 1 commit
    • Éloi Bail's avatar
      daemon: force keyframe rate on encoder at 5 seconds · 87624f98
      Éloi Bail authored
      Some codecs, as h264, use a default keyframe rate based on frame count.
      As example, on h264 this rate is one IFrame each 250 frames.
      So this rate is sensible to fps changes, that ofen happens with
      output type (images, frame size, screen casting, etc).
      Using a rate based on fps seems more viable solution.
      
      Moreover, in order to handle video artifacts in case of missed packets,
      we want to send more keyframes so that artifacts will be seen for
      a shorter period.
      
      Note: the drawback of this solution is an average bitrate higher than
      before as I frames are bigger than P frames.
      
      Issue: #79690
      Change-Id: I0b9daef8723c84b5998c9eb156d1e73538e8abed
      Signed-off-by: Guillaume Roguez's avatarGuillaume Roguez <guillaume.roguez@savoirfairelinux.com>
      87624f98
  35. 22 Jul, 2015 1 commit
    • Guillaume Roguez's avatar
      media: refactor live bitrate change · ad477a2f
      Guillaume Roguez authored
      This refactoring improves user experience, fix an issue and simplify code.
      
      - less exposed "internal" stuff (RTP sequence value)
      - don't expose internal business logic to upper layers.
      - remove uneeded full media restart: only media_encoder is restarted
      - fixed non protected shared access to codec isRunning value causing
        a race condition on access and good design practices violation
        (tight coupling between unrelated classes).
      
      Refs #77483
      
      Change-Id: Idb1e3940601ff0d483e7721f627a0c8dd766f844
      ad477a2f
  36. 15 Jul, 2015 1 commit
    • Éloi Bail's avatar
      daemon: change bitrate in live · 3939750f
      Éloi Bail authored
      If user changed codec parameters such as bitrate using dbus API, audio and
      video codec will be automatically restart with up-to-date parameters.
      
      Audio and video ports previously negotiated on the previous media session will
      stay the same. In order to avoid dropped framed, RTP sequence number from
      previous session will be reused. Thus new session will use continuous sequence
      number.
      
      Refs #77483
      Change-Id: Idce0f8b3a0537f0db6def054cfdb8765440d2cd7
      3939750f
  37. 21 Apr, 2015 1 commit
    • Éloi Bail's avatar
      daemon: implement media muting · c3a19140
      Éloi Bail authored
      Simple muting implementation per call and media, eg : audio, video.
      When a media is muted, black frames are sent in case of video.
      Null samples are sent in case of audio.
      
      In order to enhance bandwidth saving, a re-invite could be done
      in a next version to properly stop muted media processing.
      
      Refs #66722
      Refs #69846
      
      Change-Id: I9f03a7de77a6df3a3396197b9d966004300ebfcc
      Signed-off-by: Guillaume Roguez's avatarGuillaume Roguez <guillaume.roguez@savoirfairelinux.com>
      c3a19140
  38. 20 Mar, 2015 1 commit
  39. 21 Feb, 2015 1 commit