Commit 283d246c authored by Rémi Denis-Courmont's avatar Rémi Denis-Courmont

PulseAudio: use same period size as ALSA (fixes #7827)

parent 823c13a7
...@@ -783,15 +783,12 @@ static int Start(audio_output_t *aout, audio_sample_format_t *restrict fmt) ...@@ -783,15 +783,12 @@ static int Start(audio_output_t *aout, audio_sample_format_t *restrict fmt)
struct pa_buffer_attr attr; struct pa_buffer_attr attr;
attr.maxlength = -1; attr.maxlength = -1;
/* PulseAudio assumes that tlength bytes are available in the buffer. Thus /* PulseAudio goes berserk if the target length (tlength) is not
* we need to be conservative and set the minimum value that the VLC * significantly longer than 2 periods (minreq), or when the period length
* audio decoder thread warrants. Otherwise, PulseAudio buffers will * is unspecified and the target length is short. */
* underrun on hardware with large buffers. VLC keeps at least attr.tlength = pa_usec_to_bytes(3 * AOUT_MIN_PREPARE_TIME, &ss);
* AOUT_MIN_PREPARE and at most AOUT_MAX_PREPARE worth of audio buffers.
* TODO? tlength could be adaptively increased to reduce wakeups. */
attr.tlength = pa_usec_to_bytes(AOUT_MIN_PREPARE_TIME, &ss);
attr.prebuf = 0; /* trigger manually */ attr.prebuf = 0; /* trigger manually */
attr.minreq = attr.tlength / 3; attr.minreq = pa_usec_to_bytes(AOUT_MIN_PREPARE_TIME, &ss);
attr.fragsize = 0; /* not used for output */ attr.fragsize = 0; /* not used for output */
sys->stream = NULL; sys->stream = NULL;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment