Skip to content


Subversion checkout URL

You can clone with
Download ZIP

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also compare across forks.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also compare across forks.
  • 3 commits
  • 1 file changed
  • 0 commit comments
  • 1 contributor
Commits on Mar 10, 2013
@anssih anssih AE: ALSA: Try to get 200ms buffer even if we did not get 50ms periodsize 95ea48d
@anssih anssih AE: ALSA: Try to get a minimum of 4 periods per buffer 39f2487
Commits on Mar 13, 2013
@anssih anssih Merge pull request #2421 from anssih/fix/AE-periodsize
AE: More tweaks to ALSA period and buffer sizes

This fixes HD audio passthrough regressions.
Showing with 3 additions and 5 deletions.
  1. +3 −5 xbmc/cores/AudioEngine/Sinks/AESinkALSA.cpp
8 xbmc/cores/AudioEngine/Sinks/AESinkALSA.cpp
@@ -340,17 +340,15 @@ bool CAESinkALSA::InitializeHW(AEAudioFormat &format)
a periodSize of approx 50 ms. Choosing a higher bufferSize
will cause problems with menu sounds. Buffer will be increased
after those are fixed.
- periodSize = sampleRate / 20
- bufferSize = periodSize * 1 frame * 4.
periodSize = std::min(periodSize, (snd_pcm_uframes_t) sampleRate / 20);
- bufferSize = std::min(bufferSize, (snd_pcm_uframes_t) periodSize * 4);
+ bufferSize = std::min(bufferSize, (snd_pcm_uframes_t) sampleRate / 5);
According to upstream we should set buffer size first - so make sure it is always at least
- double of period size to not get underruns
+ 4x period size to not get underruns (some systems seem to have issues with only 2 periods)
- periodSize = std::min(periodSize, bufferSize / 2);
+ periodSize = std::min(periodSize, bufferSize / 4);
CLog::Log(LOGDEBUG, "CAESinkALSA::InitializeHW - Request: periodSize %lu, bufferSize %lu", periodSize, bufferSize);

No commit comments for this range

Something went wrong with that request. Please try again.