Skip to content
Snippets Groups Projects
  1. Jan 15, 2021
  2. Feb 18, 2020
  3. Feb 06, 2020
  4. Jan 31, 2020
    • Volker Rümelin's avatar
      audio: fix bug 1858488 · fdc8c5f4
      Volker Rümelin authored
      The combined generic buffer management code and buffer run out
      code in function audio_generic_put_buffer_out has a problematic
      behaviour. A few hundred milliseconds after playback starts the
      mixing buffer and the generic buffer are nearly full and the
      following pattern can be seen.
      
      On first call of audio_pcm_hw_run_out the buffer run code in
      audio_generic_put_buffer_out writes some data to the audio
      hardware but the generic buffer will fill faster and is full
      when audio_pcm_hw_run_out returns. This is because emulated
      audio devices can produce playback data at a higher rate than
      the audio backend hardware consumes this data.
      
      On next call of audio_pcm_hw_run_out the buffer run code in
      audio_generic_put_buffer_out writes some data to the audio
      hardware but no audio data is transferred to the generic buffer
      because the buffer is already full.
      
      Then the pattern repeats. For the emulated audio device this
      looks like the audio timer period has doubled.
      
      This patch splits the combined generic buffer management code
      and buffer run out code and calls the buffer run out code after
      buffer management code to break this pattern.
      
      The bug report is for the wav audio backend. But the problem is
      not limited to this backend. All audio backends which use the
      audio_generic_put_buffer_out function show this problem.
      
      Buglink: https://bugs.launchpad.net/qemu/+bug/1858488
      
      
      Signed-off-by: default avatarVolker Rümelin <vr_qemu@t-online.de>
      Message-Id: <20200123074943.6699-5-vr_qemu@t-online.de>
      Signed-off-by: default avatarGerd Hoffmann <kraxel@redhat.com>
      fdc8c5f4
  5. Oct 18, 2019
  6. Sep 23, 2019
  7. Aug 21, 2019
  8. Jun 12, 2019
  9. Mar 11, 2019
  10. Dec 12, 2018
  11. Mar 12, 2018
  12. Feb 06, 2018
  13. Feb 02, 2016
  14. Jun 15, 2015
  15. Jun 12, 2015
  16. Jun 13, 2014
  17. Dec 19, 2012
  18. Aug 21, 2011
  19. Jan 12, 2011
  20. Jan 09, 2011
  21. Oct 17, 2010
  22. Apr 21, 2010
  23. Feb 28, 2010
  24. Oct 02, 2009
  25. Oct 01, 2009
Loading