1. 24 Jan, 2019 1 commit
  2. 10 Jan, 2019 1 commit
  3. 02 Jan, 2019 1 commit
  4. 28 Dec, 2018 1 commit
  5. 27 Dec, 2018 3 commits
  6. 21 Dec, 2018 2 commits
    • Philippe Gorley's avatar
      decoder: better audio stream selection · af8ec439
      Philippe Gorley authored
      When decoding files, their audio is rematrixed to mono or stereo
      depending on the negotiated format. Libswresample does not support
      rematrixing from Dolby Surround 5.1, so skip over streams with this
      layout. If the file only contains Dolby 5.1, switch back to default
      audio input device.
      
      Change-Id: I526e3c9b2ec92794818e74f8c369a8c8f3c41b27
      af8ec439
    • Philippe Gorley's avatar
      audio: add file streaming support · 005c6ffd
      Philippe Gorley authored
      When sharing a file, its audio will also be decoded and sent. Audio and
      video are synchronized for the first loop of the file only. Further
      loops desynchronize them as the audio and video are decoded separately
      instead of with the same decoder.
      
      Device audio is muted while streaming. Mixing of the microphone with the
      file audio will be added in a later patch.
      
      Adds common audio decoders for file streaming.
      
      Change-Id: Id0593ce4f2d32c249eb7a9672b0091c0d6e07a00
      005c6ffd
  7. 06 Dec, 2018 3 commits
    • 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
      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
  8. 03 Dec, 2018 1 commit
    • Philippe Gorley's avatar
      audio: implement switch input · 10126454
      Philippe Gorley authored
      Lays the groundwork for file streaming by allowing the audio source to
      be changed while an audio input is active.
      
      Don't notify observers if there's no frame.
      
      Renames videoInput_ to mediaInput_ now that it is also used for audio.
      
      Change-Id: I0a10d4a339e77b890ee006a5f977383e8942505b
      10126454
  9. 19 Nov, 2018 1 commit
    • Philippe Gorley's avatar
      recorder: sync local audio with peer audio · a4757b67
      Philippe Gorley authored
      Local audio timestamps would always start at 0, while peer audio would
      start at the right value, causing audio to be out of sync.
      
      Change-Id: I5c3c2967128b88b2867c5bd26d5f7de1e93f4171
      a4757b67
  10. 08 Nov, 2018 2 commits
    • Philippe Gorley's avatar
      media: simplify timestamp computation · d36d4d6e
      Philippe Gorley authored
      Audio time bases are always the inverse of the sample rate, meaning the
      increment is always the number of samples in a frame. Video usually has
      a time base inverse of its framerate, but this is not always the case.
      
      Change-Id: I50d2d84d073052f8b3a832e8b99725b9d66b12a8
      d36d4d6e
    • Philippe Gorley's avatar
      audio: stash active inputs in videomanager · e86600b6
      Philippe Gorley authored
      Needed for audio streaming because the audio input needs to be accessed
      at call level so it can tell the input to switch to a file or a
      different input.
      
      Getting a shared pointer to an AudioInput should only be done during
      setup, so as to not walk the whole map in audio processing loops.
      
      Change-Id: I49be1cb3c641b50e6f70356f330d40e1c27bef61
      e86600b6
  11. 01 Nov, 2018 1 commit
    • Philippe Gorley's avatar
      audio: use input as audio source · ddcda82e
      Philippe Gorley authored
      AudioInput now manages audio frames, not AudioSender.
      Makes AudioInput observable.
      AudioSender subscribes to AudioInput.
      
      LocalRecorder does not need to observe AudioInput or VideoInput because
      these already record frames. Will be done in future work on the recording
      system.
      
      Change-Id: I011d742063386498d59b2962f7c333b999d0921c
      ddcda82e
  12. 22 Oct, 2018 2 commits
    • Philippe Gorley's avatar
      audiobuffer: use raii when dealing with AVFrame · 222ce2c0
      Philippe Gorley authored
      Returns AudioFrame instead of raw AVFRame pointer when calling
      AudioBuffer.toAVFrame, and take AudioFrame as parameter when appending
      an AVFrame to an AudioBuffer.
      
      No longer need to free AVFrame during encoding/conversions.
      
      Change-Id: I28aa992a5483f84f6cb1a5157718c11c3a69518c
      222ce2c0
    • Philippe Gorley's avatar
      audio_input: add resampler · 34e72c5a
      Philippe Gorley authored
      RingBufferPool::getData overrides the format of the AudioBuffer, so
      resampling may be required.
      
      Protects AudioFormat with a mutex to avoid data races.
      
      Change-Id: I0a9d8686f142c192f912887b175a42bacb0c1a57
      34e72c5a
  13. 16 Oct, 2018 2 commits
  14. 12 Sep, 2018 1 commit
  15. 11 Sep, 2018 1 commit
    • Hugo Lefeuvre's avatar
      audio: implement audio_input class · a774e0f4
      Hugo Lefeuvre authored
      The audioInput class allows easy retrieval of local audio stream
      without being in a running call. For now it is only used to record
      audio data but might be employed for other purposes with little design
      changes.
      
      Change-Id: Icdf6a9799f341367b0c50aaff76b8642f42d0d1c
      a774e0f4