1. 23 Aug, 2018 3 commits
    • Philippe Gorley's avatar
      recorder: refactor and simplify · f1088fa8
      Philippe Gorley authored
      1. Adds constness to streams in MediaRecorder; the latter shouldn't change
      stream parameters.
      2. addStream is called from recordData to simplify workflow; users need
      only check that MediaRecorder is recording.
      3. Fixes regression where multiple records couldn't happen in the same
      call.
      4. Fixes AudioSender not sending starting timestamp to help mix audio.
      5. MediaStream::name is now used as key for the streams_ map, so it must
      be constant, filter names are no longer hardcoded in the recorder.
      6. fromPeer parameter is determined by checking if MediaStream::name
      contains the string "remote".
      7. Adds copy constructor to MediaStream.
      8. Renames incrementStreams to incrementExpectedStreams to better reflect
      what it does.
      9. Removes keyframe triggers when starting a video record; we are
      recording raw frames, so it doesn't matter if they're keyframes or not.
      10. MediaRecorder supports more than 2 audio streams, but not video.
      11. Move preview to very bottom right corner.
      12. Fix potential Unchecked Return Value to NULL Pointer Dereference in
      recordData() (CWE-690).
      
      Gitlab: #39
      
      Change-Id: Id2fae4e9bb2072994c065e4843cc3ad832f89efc
      f1088fa8
    • Hugo Lefeuvre's avatar
      media_filter: remove simple filters · 9d36c29e
      Hugo Lefeuvre authored
      Change-Id: Ie45773677290111f92b81230071835ac42e7197e
      Reviewed-by: Philippe Gorley's avatarPhilippe Gorley <philippe.gorley@savoirfairelinux.com>
      9d36c29e
    • Adrien Béraud's avatar
      scheduled_executor: initialize mutex before thread · eda3c1a2
      Adrien Béraud authored
      Fix race condition where the thread might start before the mutex is properly initialized
      
      Change-Id: I47c6947873b9e1e7aef576bf7d2ba79cc9ad1e57
      Reviewed-by: Andreas Traczyk's avatarAndreas Traczyk <andreas.traczyk@savoirfairelinux.com>
      eda3c1a2
  2. 22 Aug, 2018 6 commits
  3. 21 Aug, 2018 4 commits
  4. 20 Aug, 2018 1 commit
  5. 17 Aug, 2018 3 commits
  6. 16 Aug, 2018 4 commits
  7. 15 Aug, 2018 2 commits
    • Hugo Lefeuvre's avatar
      audio_rtp_session: code cleanup · 27166567
      Hugo Lefeuvre authored
      Use const std::chrono::milliseconds type for secondsPerPaket_
      instead of defining seconds =
      std::chrono::duration<double, std::ratio<1>>. That way we avoid some
      useless casts later.
      
      Change type of sent_samples to uint64_t: unsigned is kind of small for
      this usage and getNextTimestamps expects seq of type uint64_t.
      
      Simplify code in readFunction() and process().
      
      Change-Id: I6ac7fd1b4553cfe5982a3d05a6467b8085f758a4
      Reviewed-by: Philippe Gorley's avatarPhilippe Gorley <philippe.gorley@savoirfairelinux.com>
      27166567
    • Hugo Lefeuvre's avatar
      threadloop: remove EXIT_IF_FAIL macro · f5257847
      Hugo Lefeuvre authored
      EXIT_IF_FAIL was meant to replace
      
      if (!(A)) {
          RING_ERR(__VA_ARGS__);
          loop_.exit();
      }
      
      but it is not very readable. Also, loop_.exit() throws an exception
      where setup functions calling EXIT_IF_FAIL could simply return
      false. Throwing an exception has a higher overhead and leads to less
      readable debug output (+ throwing exceptions should never be the
      standard way to exit the normal control flow).
      
      This patch
      - removes the EXIT_IF_FAIL macro
      - replaces code from audio_rtp_session and video_receive_thread which
        was using this macro
      - Adds stop() call at the end of ThreadLoop::mainloop. At this point
        the thread loop is obviously not executing anymore.
      
      Change-Id: Id1ed8eb914e91686a63775eba3ad70f8b6143ae5
      Reviewed-by: Philippe Gorley's avatarPhilippe Gorley <philippe.gorley@savoirfairelinux.com>
      f5257847
  8. 14 Aug, 2018 1 commit
  9. 13 Aug, 2018 4 commits
  10. 10 Aug, 2018 2 commits
  11. 09 Aug, 2018 1 commit
  12. 08 Aug, 2018 2 commits
    • Philippe Gorley's avatar
      ffmpeg: add libswresample check · 8a1d9e27
      Philippe Gorley authored
      Adds libswresample to the package check. Namely, we don't want to use
      libavresample, which has a different API. The latter exists solely for
      compatibility with Libav.
      
      Change-Id: I717975c696e2de2787be98cac07862215095b667
      8a1d9e27
    • Philippe Gorley's avatar
      audio: refactor resampler class · 20b631fb
      Philippe Gorley authored
      Using MediaFilter would make the resampling time longer and more
      unpredictable than directly using libswresample.
      
      Adds libswresample as a dependency.
      Simplifies Resampler class.
      Resampler detects changes in input and output formats automatically.
      Changes Audiofile to use Resampler instead of MediaFilter.
      
      Change-Id: I24919e8fa514dbb4a38408e338016976e7424136
      20b631fb
  13. 07 Aug, 2018 2 commits
  14. 06 Aug, 2018 2 commits
  15. 03 Aug, 2018 3 commits