1. 12 Aug, 2019 1 commit
    • Philippe Gorley's avatar
      encoder: fix and re-enable nvdec · 83bf28a5
      Philippe Gorley authored
      Hardware decoders output nv12, but Jami's software encoders want
      yuv420p. If using a hardware decoder, make sure the input frames are
      yuv420p. If using a hardware encoder, keep the frames as nv12.
      
      Change-Id: I5b20238786104da4ddf25bee061899be18fa0d59
      83bf28a5
  2. 09 Aug, 2019 1 commit
  3. 12 Jun, 2019 1 commit
  4. 11 Apr, 2019 1 commit
  5. 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
  6. 26 Mar, 2019 1 commit
    • 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
  7. 07 Mar, 2019 1 commit
  8. 06 Mar, 2019 2 commits
    • Philippe Gorley's avatar
      accel: add hardware encoding · 12932733
      Philippe Gorley authored
      Adds VAAPI and VideoToolbox hardware encoders.
      
      Abstracts hardware related field accesses from the encoder and decoder
      to put them in HardwareAccel. They are freed in ~HardwareAccel.
      
      Limits bitrate when hardware encoding h264, else it can easily go up to
      a few MiB/s.
      
      Change-Id: I7d847d8ab3e4c9692341f038ce6d5dd76562e606
      12932733
    • 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. 02 Jan, 2019 1 commit
  11. 21 Sep, 2018 1 commit
  12. 21 Jun, 2018 1 commit
  13. 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
  14. 24 Jan, 2018 1 commit
  15. 23 Jan, 2018 1 commit
  16. 16 Jan, 2018 1 commit
  17. 28 Dec, 2017 1 commit
    • Philippe Gorley's avatar
      accel: refactor to fit new hwaccel api · ea8c5921
      Philippe Gorley authored
      libavutil now covers the simple cases for creating and managing devices.
      As Ring does not need to fine-tune these processes, most of the accel
      code can be and has been removed.
      
      Most hardware decoders output NV12, so skip extra conversions by
      outputting NV12. Said pixel format is supported by everything that isn't
      excessively old.
      
      Change-Id: I10c440026fc3b289dbba7ecbca47e55c57147207
      Reviewed-by: default avatarAnthony Léonard <anthony.leonard@savoirfairelinux.com>
      ea8c5921
  18. 10 Nov, 2017 1 commit
  19. 07 Nov, 2017 1 commit
  20. 28 Sep, 2017 1 commit
  21. 28 Jun, 2017 1 commit
  22. 07 Jun, 2017 1 commit
  23. 05 Jun, 2017 1 commit
    • Philippe Gorley's avatar
      video: mac hardware acceleration · bd02113e
      Philippe Gorley authored
      Adds VideoToolbox and VDA hardware accelerations. VideoToolbox
      supports H.264, H.263 and MPEG4, while VDA only supports H.264.
      
      VDA is implemented in case libav is used instead of FFmpeg, as
      only the latter implements VideoToolbox. This being said, Ring
      will prefer VideoToolbox.
      
      VideoToolbox is OSX 10.8+ and iOS 8+. VDA is OSX 10.6.3+.
      
      Both have their respective configure switches.
      
      Change-Id: I588fcbb92809a9d6a56bb9b6a7ac3a59874c0186
      Tuleap: #1090
      Reviewed-by: default avatarAnthony Léonard <anthony.leonard@savoirfairelinux.com>
      bd02113e
  24. 02 Jun, 2017 2 commits
  25. 18 May, 2017 1 commit
  26. 17 May, 2017 1 commit
    • Philippe Gorley's avatar
      video: add vdpau acceleration support · 45faaa25
      Philippe Gorley authored
      Adds the VDPAU acceleration for GNU/Linux systems and
      enable it by devault. Can be disabled using ./configure --disable-vdpau
      
      Support for H.264, H.263 and MPEG4, as long as the hardware supports
      them.
      
      Requires libvdpau and ffmpeg 3.3 (contrib bump included by this patch)
      
      [guillaume roguez: re-word ci msg to be more explicit]
      
      Change-Id: I7479f4d7e3d51caf702be8c85284a4fca01605b3
      Reviewed-by: Guillaume Roguez's avatarGuillaume Roguez <guillaume.roguez@savoirfairelinux.com>
      45faaa25
  27. 05 Jan, 2017 1 commit
  28. 03 Dec, 2016 1 commit
  29. 30 Nov, 2016 2 commits
    • Philippe Gorley's avatar
      video: test acceleration before using it · d48b15fc
      Philippe Gorley authored
      Adds a method to check if a hardware acceleration is usable on
      the system before starting the video feed, as the fallback to
      software decoding can take a few seconds.
      
      Change-Id: I74506943b5c8d43808a1fe4ba28a8c7b6353f6aa
      d48b15fc
    • Philippe Gorley's avatar
      hardware acceleration refactoring · 4b5f8b59
      Philippe Gorley authored
      Refactors the hardware acceleration mechanism by making AVCodecContext
      a class member in HardwareAccel, wrapping extractData in a base
      method to avoid duplicating boilerplate code, making the AccelID
      enum and AccelInfo struct visible only to the makeHardwareAccel
      function and adds more flexibility in the compilation of Ring's
      hardware acceleration.
      
      Change-Id: Ibfb4324e2f84b4d08bb5dd1e4b22873255aeb196
      4b5f8b59
  30. 07 Oct, 2016 1 commit
    • Philippe Gorley's avatar
      video: fix hardware acceleration bugs · c49f1368
      Philippe Gorley authored
      Now correctly takes into account user setting. Will no longer try
      to retrieve data from the GPU buffer if acceleration has failed.
      Uses hardware acceleration when flushing the video stream.
      
      Change-Id: Id7787a181b3822e8c7da0e8c2ce2cdfa302a3ddd
      c49f1368
  31. 23 Sep, 2016 1 commit
    • Philippe Gorley's avatar
      video: hardware acceleration · 921146f5
      Philippe Gorley authored
      Contains code common to all hardware accelerations to be implemented.
      
      Enables the VAAPI acceleration for intel linux systems, with support
      for H.264, H.263 and MPEG4.
      
      To use VAAPI, you need libva, libva-x11 and libva-drm.
      
      Hardware acceleration is enabled by default, and can be disabled with
      "./configure --disable-accel".
      
      Change-Id: Id0696465b785de0735bbce9750932ac38efe0713
      Reviewed-by: Guillaume Roguez's avatarGuillaume Roguez <guillaume.roguez@savoirfairelinux.com>
      921146f5