1. 28 May, 2018 1 commit
  2. 16 May, 2018 1 commit
  3. 15 May, 2018 1 commit
  4. 14 May, 2018 1 commit
    • Philippe Gorley's avatar
      encoder: merge common encoding code · 43f22d20
      Philippe Gorley authored
      Refactors out the common code from video and audio encoding/flushing
      into a single method. This reuses code instead of duplicating it.
      
      The method is public in the hopes of being able to reuse MediaEncoder
      elsewhere in the codebase.
      
      Allow caller to specify the stream index for the future case that the
      AVFormatContext contains multiple streams (recording video and audio).
      
      Change-Id: Ieae52bc453ef66d141a40819ca10fedbd38d9a86
      Reviewed-by: Sébastien Blin's avatarSebastien Blin <sebastien.blin@savoirfairelinux.com>
      43f22d20
  5. 09 May, 2018 2 commits
  6. 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
      AVFrames.
      
      Adds unit tests for MediaFilter.
      
      Change-Id: I0bf3869a9f19ad9cbbe1fc5e2d37eb83ece66ccc
      Reviewed-by: Sébastien Blin's avatarSebastien Blin <sebastien.blin@savoirfairelinux.com>
      ea2933d4
  7. 07 May, 2018 1 commit
  8. 24 Apr, 2018 2 commits
  9. 05 Apr, 2018 1 commit
  10. 28 Mar, 2018 1 commit
  11. 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
      78ed2663
  12. 02 Mar, 2018 1 commit
  13. 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
      1e5a3092
  14. 27 Feb, 2018 2 commits
  15. 12 Feb, 2018 1 commit
  16. 07 Feb, 2018 1 commit
  17. 01 Feb, 2018 1 commit
  18. 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>
      9179735a
    • 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
      7fa8fc41
  19. 26 Jan, 2018 1 commit
  20. 24 Jan, 2018 1 commit
  21. 23 Jan, 2018 1 commit
  22. 22 Jan, 2018 2 commits
  23. 19 Jan, 2018 1 commit
  24. 16 Jan, 2018 1 commit
  25. 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
      ecf3e901
  26. 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
      cbff7d98
    • 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
      c27d2135
  27. 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
  28. 21 Dec, 2017 1 commit
  29. 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
      d08826f0
  30. 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
      a922c9f1
  31. 30 Nov, 2017 1 commit
  32. 29 Nov, 2017 2 commits
  33. 28 Nov, 2017 1 commit