1. 10 Jan, 2019 1 commit
    • Arun Raghavan's avatar
      pulsesrc: Move to extended stream API · 4d67d1bd
      Arun Raghavan authored
      This is needed as a precursor to allowing capture of IEC61937
      formats. We now also need to include the channel map while converting
      format info to caps so that a correct channel mask is generated for
      pulsesrc's caps.
      4d67d1bd
  2. 07 Jan, 2019 1 commit
  3. 19 Nov, 2018 1 commit
    • Arun Raghavan's avatar
      pulse: Expose the correct max rate that we support · a24ef929
      Arun Raghavan authored
      PulseAudio defines PA_RATE_MAX as the maximum sampling rate that it
      supports. We were previously exposing a maximum rate of INT_MAX, which
      is incorrect, but worked because nothing was really using a rate greater
      than 384000 kHz.
      
      While playing DSD data, we hit a case where there might be very high
      sample rates (>1MHz), and pulsesink fails during stream creation with
      such streams because it erroneously advertises that it supports such
      rates.
      
      Since PA_RATE_MAX is #define'd to (8*48000U), we can't just use it in
      the caps string. Instead, we fix up the rate to what we actually support
      whenever we use our macro caps.
      a24ef929
  4. 27 Jul, 2018 1 commit
  5. 25 Apr, 2018 1 commit
  6. 16 May, 2017 2 commits
  7. 09 Mar, 2017 1 commit
  8. 24 Sep, 2016 1 commit
  9. 20 Aug, 2016 1 commit
  10. 15 Apr, 2016 1 commit
    • Jan Schmidt's avatar
      Revert "pulsesink: uncork if needed upon commit" · 46a3c9ac
      Jan Schmidt authored
      This reverts commit 0dd46acc.
      
      With some audiosinks, starting the ringbuffer on the first commit
      causes audio glitches at startup by starting to output segments
      from the ringbuffer before it has been filled / fully prerolled. This
      doesn't usually happen with pulsesink because we map the pulseaudio
      ringbuffer directly, but we should keep things consistent with
      other sinks with regards to startup latency, plus it gives more
      headway to avoid glitching, should the initial 2nd segment take
      more than 10ms to generate.
      
      https://bugzilla.gnome.org/show_bug.cgi?id=657076
      46a3c9ac
  11. 24 Mar, 2016 1 commit
  12. 05 Nov, 2015 1 commit
  13. 15 Jul, 2015 1 commit
  14. 12 Jun, 2015 1 commit
  15. 09 Mar, 2015 1 commit
  16. 13 Feb, 2015 1 commit
  17. 26 Jan, 2015 1 commit
  18. 10 Jan, 2015 1 commit
  19. 28 Oct, 2014 1 commit
  20. 23 Oct, 2014 1 commit
  21. 22 Oct, 2014 1 commit
  22. 30 Sep, 2014 2 commits
    • Arun Raghavan's avatar
      pulse: Add some documentation about threading and synchronisation · 2a3adec2
      Arun Raghavan authored
      This gives a quick introduction to how the pulsesink/pulsesrc code
      interacts with the pa_threaded_mainloop that we start up to communicate
      with the server.
      2a3adec2
    • Arun Raghavan's avatar
      pulsesink: Make emitting stream status messages synchronous · 0ed08ac3
      Arun Raghavan authored
      The stream status messages are emitted in the PA mainloop thread, which
      means the mainloop lock is taken, followed by the Gst object lock (by
      gst_element_post_message()). In all other locations, the order of
      locking is reversed (this is unavoidable in a bunch of cases where the
      object lock is taken by GstBaseSink or GstAudioBaseSink, and then we get
      control to take the mainloop lock).
      
      The only way to guarantee that the defer callback for stream status
      messages doesn't deadlock is to either stop posting those messages, or
      make sure that the message emission is completed before we proceed to
      any point that might take the object lock before the mainloop lock
      (which is what we do after this patch).
      
      https://bugzilla.gnome.org/show_bug.cgi?id=736071
      0ed08ac3
  23. 29 Jun, 2014 2 commits
  24. 26 Jun, 2014 1 commit
  25. 21 Jun, 2014 1 commit
  26. 04 May, 2014 2 commits
  27. 17 Mar, 2014 1 commit
  28. 16 Mar, 2014 2 commits
  29. 18 Feb, 2014 1 commit
  30. 04 Dec, 2013 1 commit
  31. 18 Nov, 2013 1 commit
  32. 22 Aug, 2013 4 commits