1. 06 Dec, 2018 11 commits
    • Philippe Gorley's avatar
      recorder: remove dynamic casts · c455eceb
      Philippe Gorley authored
      Have an intermediate object subscribe to the media sources while also
      keeping a copy of the stream name. The recorder can then keep a
      reference to these to figure out the source of the frame, instead of
      knowing what objects it subscribes to.
      
      Change-Id: I4a34c8b035301eefc90645cf6cb500dbcd879f91
      c455eceb
    • Philippe Gorley's avatar
      media: make observers/obervables use MediaFrame · fc83b1f8
      Philippe Gorley authored
      Makes it so observers don't need to implement Observer<T> twice to
      receive audio and video frames.
      
      Change-Id: Id73c384342bd786b4f83950937b4dbd13a31fc41
      fc83b1f8
    • Philippe Gorley's avatar
      recorder: remove internal thread loop · 3fcd9b9e
      Philippe Gorley authored
      Move thread to ThreadPool, so the recorder can finish its job even after
      hangup.
      
      Change-Id: I7ff1898ce8035a00a488aad53bbb16a6b8a56bcc
      Gitlab: #40
      3fcd9b9e
    • Philippe Gorley's avatar
      recorder: refactor and simplify · 4a0bf2e4
      Philippe Gorley authored
      Removes need for frame queue, as there's already an internal queue in
      libavfilter. Once a frame is received, feed it directly to the filter.
      
      The recorder's thread now only needs to send filtered frames to the
      encoder.
      
      Change-Id: I37bfa6e61f492cec120989fe210e92752e63466f
      4a0bf2e4
    • Philippe Gorley's avatar
      filter: remove push flag · c04704aa
      Philippe Gorley authored
      Lets filters output frames when ready and requested, else there may be a
      null frame dereference deep in the filtering pipeline.
      
      Change-Id: I4f7386837d06d003041a2c73d33811f3cb78c3f0
      c04704aa
    • Philippe Gorley's avatar
      recorder: add doc and reorganize code · 03780c7b
      Philippe Gorley authored
      Change-Id: I68c9b2b2ea3863653f86fcabd17ad4128f0ebcfd
      03780c7b
    • Philippe Gorley's avatar
      recorder: make adding streams public · dd6199ac
      Philippe Gorley authored
      Instead of casting the observable object in the attached callback, have
      the recorder's owner add the streams manually.
      
      Change-Id: I5c79e32e470364b0c6a4253f50357a4bafade769
      dd6199ac
    • Philippe Gorley's avatar
      recorder: remove expected/received streams logic · a2264383
      Philippe Gorley authored
      Caller should know what streams to add to the recorder and use
      Observable::attach before calling Recordable::startRecording.
      
      Change-Id: I14d19406cdaf047bd3b612c69775fc4ddbc21142
      a2264383
    • Philippe Gorley's avatar
      recorder: remove toggle and recording path · d7e524e6
      Philippe Gorley authored
      It should not be up to the recorder to manage this state, it should be
      up to the caller.
      
      Removes deprecated setRecordingPath in order to only use setPath.
      
      Change-Id: Ib920c041d61c8fd49607ad15c69801144fc165c8
      d7e524e6
    • Philippe Gorley's avatar
      audio: add ability to get stream information · ec03a19e
      Philippe Gorley authored
      Changes name from getStream to getInfo.
      
      Change-Id: I17b2eedb03dd707146b30062e755c5cd80c559fb
      ec03a19e
    • Philippe Gorley's avatar
      recorder: subscribe to audio/video sources · 351856e7
      Philippe Gorley authored
      Makes the MediaRecorder an observer on AudioInput, AudioReceiveThread,
      VideoInput and VideoReceiveThread, so they no longer need a reference
      to the recorder.
      
      Makes sure the framerate is set for the recorder by adding a way to get
      the stream parameters from the video receiver and input, since AVFrame
      does not carry framerate and time base information.
      
      Adds way to detach the recorder from the media sources, so it can be
      reattached on subsequent records.
      
      Change-Id: I71bac0825541f6445861f4f949288e1c62416f05
      351856e7
  2. 05 Dec, 2018 3 commits
  3. 03 Dec, 2018 3 commits
  4. 30 Nov, 2018 1 commit
  5. 29 Nov, 2018 4 commits
  6. 28 Nov, 2018 1 commit
  7. 27 Nov, 2018 2 commits
  8. 26 Nov, 2018 4 commits
  9. 25 Nov, 2018 1 commit
  10. 24 Nov, 2018 2 commits
  11. 23 Nov, 2018 4 commits
    • Philippe Gorley's avatar
      audio: add frame resizer · 04e81433
      Philippe Gorley authored
      Allows buffering of samples when the frame sizes at the input and the
      output don't match.
      
      Will mostly be used for file streaming, where the file's frame size may
      not match the standard 20 ms packet size used in the project.
      
      Adds unit tests.
      
      Change-Id: I568b31ba97d33bc0c1c89495e918bd10a9bf8aeb
      04e81433
    • Philippe Gorley's avatar
      doxygen: automate versioning and names · bfcb80f0
      Philippe Gorley authored
      Removes the need to maintain the project name, version and source
      directory in the doxygen files.
      
      API and ABI versions should be in one place only.
      
      Change-Id: If26c7ac1166b519d0ceae91b3656b55c4601b52d
      Reviewed-by: Sébastien Blin's avatarSebastien Blin <sebastien.blin@savoirfairelinux.com>
      bfcb80f0
    • Jinbo Li's avatar
      gitignore: ignore vscode files · cf3ec8e6
      Jinbo Li authored
      Change-Id: I4cade89b182b7c343e9b4a3a6c298d05d51ac1de
      cf3ec8e6
    • Jinbo Li's avatar
      encoder: add error checking to videoFrameSize · c499a22b
      Jinbo Li authored
      av_image_get_buffer_size can return a negative error code. Prevents
      casting such an error to a large positive integer that may cause a
      bad_alloc exception on the subsequent buffer allocation.
      
      Change-Id: Ie8a7987dcf16957a21496e791c34957bb2e35bfc
      c499a22b
  12. 21 Nov, 2018 1 commit
  13. 20 Nov, 2018 1 commit
  14. 19 Nov, 2018 2 commits