1. 23 May, 2019 2 commits
    • Nate's avatar
      Expose control param to alsa-card module · f34ea0f0
      Nate authored
      f34ea0f0
    • Tanu Kaskinen's avatar
      core: send subscription events when the configured default sink or source changes · 59005d16
      Tanu Kaskinen authored
      These events were missing, because the
      pa_core_update_default_sink/source() calls were assumed to send the
      subscription events when necessary. Often that indeed is the case, but
      if the current configured default sink doesn't exist, and then the
      current default sink is set as the configured default sink, the
      configured default sink changes but the default sink doesn't, and in
      this case pa_core_update_default_sink() doesn't send the change event.
      
      module-default-device-restore relies on getting a notification whenever
      the configured default sink changes, and the missing event meant that
      the files containing the configured sink and source weren't updated in
      some cases.
      
      Fixes: #648
      59005d16
  2. 22 May, 2019 1 commit
  3. 21 May, 2019 2 commits
  4. 20 May, 2019 2 commits
  5. 08 May, 2019 1 commit
  6. 07 May, 2019 2 commits
  7. 04 May, 2019 2 commits
  8. 22 Apr, 2019 1 commit
    • Takashi Iwai's avatar
      alsa: Fix inclusion of use-case.h · b89d33bb
      Takashi Iwai authored
      The recent change in ALSA upstream stripped -I$include/alsa path from
      pkgconfig.  We already fixed for this change in some places but still
      the code for UCM was overlooked, and this resulted in the unresolved
      symbols in alsa card module. Fix them as well.
      Signed-off-by: 's avatarTakashi Iwai <tiwai@suse.de>
      b89d33bb
  9. 17 Apr, 2019 1 commit
  10. 12 Apr, 2019 7 commits
    • Tanu Kaskinen's avatar
      build-sys: Fix the Meson build · 2f6a46ca
      Tanu Kaskinen authored
      The recent bluetooth patches didn't update the Meson build system.
      2f6a46ca
    • pali's avatar
      bluetooth: Set correct endianity of audio samples for SBC codec · 1b6e5b85
      pali authored
      Pulseaudio SBC codec defines that audio samples are in PA_SAMPLE_S16LE
      format which is little endian. But libsbc library expects audio samples by
      default in host endianity which is big endian on big endian system. So SBC
      support on big endian system is broken. To fix this problem tell libsbc
      library that audio samples are in little endian to match PA_SIMPLE_S16LE
      sample format.
      
      Bug: https://bugs.freedesktop.org/show_bug.cgi?id=91359
      1b6e5b85
    • pali's avatar
      bluetooth: Clean up SBC bitpool calculation · 63add82c
      pali authored
      Remove dead code and replace numeric bitpool values by macro definitions.
      
      Maximal bitpool value in fill_capabilities() was reduced from 64 to 53
      (SBC_BITPOOL_HQ_JOINT_STEREO_44100) because default_bitpool() already set
      maximal value to 53.
      
      This patch does not change SBC behavior as maximal bitpool was already
      limited to 53. So it is just clean up.
      63add82c
    • pali's avatar
      745c161c
    • pali's avatar
      bluetooth: Modular API for A2DP codecs · 106aa914
      pali authored
      This patch introduce new modular API for bluetooth A2DP codecs. Its
      benefits are:
      
      * bluez5-util and module-bluez5-device does not contain any codec specific
        code, they are codec independent.
      
      * For adding new A2DP codec it is needed just to adjust one table in
        a2dp-codec-util.c file. All codec specific functions are in separate
        codec file.
      
      * Support for backchannel (microphone voice). Some A2DP codecs (like
        FastStream or aptX Low Latency) are bi-directional and can be used for
        both music playback and audio call.
      
      * Support for more configurations per codec. This allows to implement low
        quality mode of some codec together with high quality.
      
      Current SBC codec implementation was moved from bluez5-util and
      module-bluez5-device to its own file and converted to this new A2DP API.
      106aa914
    • pali's avatar
      e8c4638f
    • pali's avatar
      bluetooth: policy: Remove BlueZ 4 related code · e81e7a2c
      pali authored
      e81e7a2c
  11. 10 Apr, 2019 3 commits
  12. 31 Mar, 2019 1 commit
    • Arun Raghavan's avatar
      thread-mainloop: Add API for running a callback unlocked · 363b1ae6
      Arun Raghavan authored
      This adds API to allow clients to schedule a callback in the mainloop
      thread without the mainloop lock being held. This is meant for a case
      where the client might be dealing with locking its own objects in
      addition to the mainloop thread itself. In this case, it might need ton
      control the locking order of the two, to match the order in other
      threads, as it might not always be able to allow for its objects to be
      locked after the mainloop thread lock.
      363b1ae6
  13. 29 Mar, 2019 4 commits
    • Georg Chini's avatar
      null-source: fix multiple bugs · 824e685a
      Georg Chini authored
      The current null-source implementation has several bugs:
      
      1) The latency reported is the negative of the correct latency.
      2) The memchunk passed to pa_source_post() is not initialized
      with silence.
      3) In PA_SOURCE_MESSAGE_SET_STATE the timestamp is always set
      when the source transitions to RUNNING state. This should only
      happen when the source transitions from SUSPENDED to RUNNING
      but also if it changes from SUSPENDED to IDLE.
      4) The timing of the thread function is incorrect. It always
      uses u->latency_time, regardless of the specified source
      latency.
      5) The latency_time argument seems pointless because the source
      is defined with dynamic latency.
      
      This patch fixes the issues by
      1) inverting the sign of the reported latency,
      2) initializing the memchunk with silence,
      3) changing the logic in PA_SOURCE_MESSAGE_SET_STATE so that
      the timestamp is set when needed,
      4) using u->block_usec instead of u->latency_time for setting
      the rtpoll timer and checking if the timer has elapsed,
      5) removing the latency_time option.
      824e685a
    • Sascha Silbe's avatar
      remap: support S32NE work format · 034b7782
      Sascha Silbe authored
      So far PulseAudio only supported two different work formats: S16NE if
      it's sufficient to represent the input and output formats without loss
      of precision and FLOAT32NE in all other cases. For systems that use
      S32NE exclusively, this results in unnecessary conversions from S32NE to
      FLOAT32NE and back again.
      
      Add S32NE remap operations and make use of them (for the COPY and
      TRIVIAL resamplers) if both input and output format are S32NE. This
      avoids the back and forth conversions between S32NE and FLOAT32NE,
      significantly improving performance for those cases.
      034b7782
    • Sascha Silbe's avatar
      tests: test NEON 2-channel->4-channel rearrange · 1e4fb614
      Sascha Silbe authored
      We have optimised 2-channel->4-channel rearrange remap functions. Test
      them.
      1e4fb614
    • Sascha Silbe's avatar
      tests: fix possible segfault in cpu-remap-test · ac4a5026
      Sascha Silbe authored
      pa_init_remap_func() takes care to initialise pa_remap_t.do_remap to
      NULL before calling init_remap_func (the CPU-specific remap init
      function) and invokes init_remap_c if init_remap_func did not set
      pa_remap_t.do_remap to non-NULL. remap_init_test_channels() calls
      init_remap_func() directly so it must make sure pa_remap_t.do_remap is
      set to NULL. Otherwise we'll end up with a random value in
      pa_remap_t.do_remap if there is no CPU-optimised remap function for the
      current operation.
      ac4a5026
  14. 27 Mar, 2019 2 commits
  15. 26 Mar, 2019 4 commits
  16. 25 Mar, 2019 5 commits
    • scootergrisen's avatar
      i18n: Update Danish translation · 899b176f
      scootergrisen authored
      899b176f
    • scootergrisen's avatar
      i18n: Add danish translation · 54e73730
      scootergrisen authored
      54e73730
    • Georg Chini's avatar
      ladspa-sink: Suspend virtual sink when master is suspended · d537e1a8
      Georg Chini authored
      Currently, the ladspa-sink is not suspended when the master sink is suspended.
      
      With this patch, the ladspa-sink will be suspended with suspend cause
      PA_SUSPEND_UNAVAILABLE when the master sink is suspended for other reasons
      than PA_SUSPEND_IDLE. This fixes issue #15.
      d537e1a8
    • Georg Chini's avatar
      sink, source: Call sink input suspend callback also on suspend cause change · acb02d9e
      Georg Chini authored
      Currently, virtual sinks and sources are not suspended when the master sink
      or source is suspended. To implement this, the slave must be able to track
      the suspend cause of the master.
      
      With this patch, the sink input suspend callback will not only be called
      when the sink or source is changing state, but also when the suspend cause
      changes. Similar to the set_state_in_*_thread_cb() functions, the suspend
      callback receives a state and a suspend cause as additional arguments.
      Because the new state and suspend cause of the sink or source have already
      been set, the old values are passed to the callback.
      acb02d9e
    • Georg Chini's avatar
      alsa: Improve resume logic after alsa suspend · f7b3537b
      Georg Chini authored
      Currently, when a system is waking up from suspend, the resume process of the
      ALSA sink and source is unstable. Sometimes the device needs to be restarted
      multiple times and when the system was suspended between snd_pcm_mmap_begin()
      and snd_pcm_mmap_commit(), pulseaudio crashes on resume.
      Additionally, variables are not reset after the resume, so that sink/source
      report wrong latencies.
      This patch fixes the issues by closing and re-opening the PCM if recovery
      from an error condition is not possible. Additionally, the variables are
      reset, so that latencies are reported correctly.
      f7b3537b