1. 08 May, 2018 1 commit
    • Philippe Gorley's avatar
      media: add filters · ea2933d4
      Philippe Gorley authored
      Adds dependency to libavfilter, which provides many useful utilities
      such as hardware encoding, mixing audio or rotating video.
      Access to libavfilter is done through the MediaFilter class, which takes
      a filter graph string and AVFrames as input and outputs filtered
      Adds unit tests for MediaFilter.
      Change-Id: I0bf3869a9f19ad9cbbe1fc5e2d37eb83ece66ccc
      Reviewed-by: Sébastien Blin's avatarSebastien Blin <sebastien.blin@savoirfairelinux.com>
  2. 07 May, 2018 1 commit
  3. 24 Apr, 2018 2 commits
  4. 05 Apr, 2018 1 commit
  5. 28 Mar, 2018 1 commit
  6. 19 Mar, 2018 1 commit
    • Philippe Gorley's avatar
      media: update ffmpeg io read callbacks · 78ed2663
      Philippe Gorley authored
      In newer versions, AVIOContext's read_packet cb no longer considers 0
      as being EOF. Changes the read callbacks for SDP and RTP to return
      AVERROR_EOF instead of 0.
      Change-Id: Ica5bdc95913b4475f1e954a1141700fc88638a59
  7. 02 Mar, 2018 1 commit
  8. 28 Feb, 2018 1 commit
    • Philippe Gorley's avatar
      video: increase default h264 level · 1e5a3092
      Philippe Gorley authored
      Level 2.0 (0x14) can only handle up to 352x288 at 30 fps, which can trip
      up the decoder (especially a hardware decoder) if the video is of a
      higher resolution. Increase the default level to 4.1 (0x29), which can
      handle up to 2,048x1,024 at 30 fps.
      Change-Id: Icd3fea81a4ea45796bab9d5f985a8ae1e1b36cfd
  9. 27 Feb, 2018 2 commits
  10. 12 Feb, 2018 1 commit
  11. 07 Feb, 2018 1 commit
  12. 01 Feb, 2018 1 commit
  13. 31 Jan, 2018 2 commits
    • Olivier SOLDANO's avatar
      fix mpeg4 video encoding on win32 · 9179735a
      Olivier SOLDANO authored
      some devices are providing their framerate ratios in a format
      incompatible with FFmpeg encoder.
      This patch sanitizes these entries to fit the FFmpeg code.
      Change-Id: Ib25c33699749ddcdfdf9cefc853f24caae433609
      Reviewed-by: Guillaume Roguez's avatarGuillaume Roguez <guillaume.roguez@savoirfairelinux.com>
    • Andreas Traczyk's avatar
      coreaudio: implement audiolayer for iOS · 7fa8fc41
      Andreas Traczyk authored
      - Seperates coreaudio implementations for iOS and OS X.
      - Manages input/ouput port overrides when layer is reset via calls
        to Dring::setAudioOutputDevice in response to an audio route override
        event listened for by the iOS client.
      - TODO: use AVAudioSession API with graphs in Objective-C++, or
        optimally, in Swift in the iOS/OS X clients.
      Change-Id: I6ba34a8bdce7bedd3b9e9ca9bbcd2cc8caccf3f4
  14. 26 Jan, 2018 1 commit
  15. 24 Jan, 2018 1 commit
  16. 23 Jan, 2018 1 commit
  17. 22 Jan, 2018 2 commits
  18. 19 Jan, 2018 1 commit
  19. 16 Jan, 2018 1 commit
  20. 15 Jan, 2018 1 commit
    • Philippe Gorley's avatar
      accel: refactor and speed up fallback · ecf3e901
      Philippe Gorley authored
      Falling back from hardware to software decoding requires only a
      reinitialization of the AVCodecContext. Hardware decoding failure is no
      longer bubbled up to the RTP session, which makes it much faster.
      Change-Id: I79fdfcfa41f822b3299d74ac654146789fcfd97b
  21. 12 Jan, 2018 2 commits
    • Andreas Traczyk's avatar
      ios: add video implementation · cbff7d98
      Andreas Traczyk authored
      - adds a slightly altered version of the android video implementation,
        as a swift AVFoundation implementation will be used in the ios client
        to enumerate the video input devices.
      Change-Id: I7c16fc39c5d22e54fb146881150b6cbcfddb7806
    • Philippe Gorley's avatar
      video: clean up video_rtp_session · c27d2135
      Philippe Gorley authored
      Replaces empty methods and std::bind calls with lambdas.
      Change-Id: I0d9c876a9ba0bbdc6a77a85e0e2d75766312f952
  22. 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>
  23. 21 Dec, 2017 1 commit
  24. 13 Dec, 2017 1 commit
    • Adrien Béraud's avatar
      encoder: use max 16 threads for video, 4 for audio · d08826f0
      Adrien Béraud authored
      Audio encoding is usually mono-threaded and doesn't require
      as much CPU as video encoding. Limit to 4 threads since more
      would not be useful and might introduce latency and decrease performance.
      Video encoding takes significantly more resources, however for live encoding,
      using more than 16 threads might introduce unreasonable latency.
      Since new customer CPUs (AMD Ryzen and Intel Core i7/i9) now have
      more than 16 logical cores, setting a higher bound of 16 threads.
      Change-Id: I5dc2d3f51019c563b8cec3fbddffa13cbafdb9a5
  25. 01 Dec, 2017 1 commit
    • Philippe Gorley's avatar
      video: increase max quality for h264 · a922c9f1
      Philippe Gorley authored
      Recent CPUs should be able to encode higher quality h264 in real-time
      without any problems.
      Allows users to encode h264 with higher quality if they so choose.
      Change-Id: Ibbb01cbc55e20f497f99f56c6c0e6616ff0734bc
  26. 30 Nov, 2017 1 commit
  27. 29 Nov, 2017 2 commits
  28. 28 Nov, 2017 2 commits
    • Adrien Béraud's avatar
      encoder: update FF_MIN_BUFFER_SIZE ffmpeg macro · 38155c08
      Adrien Béraud authored
      AV_INPUT_BUFFER_MIN_SIZE is the new name for FF_MIN_BUFFER_SIZE, which is
      not available anymore in new releases.
      Change-Id: I79abb3a8192d8572323f705eecc44edc974026f8
      Reviewed-by: Philippe Gorley's avatarPhilippe Gorley <philippe.gorley@savoirfairelinux.com>
    • Adrien Béraud's avatar
      decoder: limit number of threads · c2c6ddc0
      Adrien Béraud authored
      Using too many threads for decoding is not recommended and can
      introduce latency.
      Also during a call there are 2 live encoding and 2 live decoding,
      so using all threads for every decoding is not useful and could
      decrease performance and increase latency because of more
      CPU context switch.
      This is especially visible on machines with many logical cores
      like AMD Threadrippers or some Intel CPUs.
      Ideally, loads should use in total as many threads as logical cores
      to profit from the full machine power while limiting context switches.
      In this patch, decoders will use half the number of logical core,
      with a maximum of 8 threads.
      Change-Id: Ibe6c083c35fba972d930346629de2175625afd8c
      Reviewed-by: Guillaume Roguez's avatarGuillaume Roguez <guillaume.roguez@savoirfairelinux.com>
  29. 27 Nov, 2017 1 commit
  30. 10 Nov, 2017 1 commit
  31. 07 Nov, 2017 2 commits
  32. 30 Oct, 2017 1 commit