On Thu, 2013-03-21 at 19:10 +0100, David Henningsson wrote: > If minreq is not explicitly specified, it was always initialized to > 20 ms (DEFAULT_PROCESS_MSEC). However when the total latency is not > much higher than 20 ms, this is way too high. Instead use > tlength/4 as a measure: this will give a decent sink_usec in all > modes (both traditional, adjust latency and early request modes). > > This greatly improves PulseAudio's ability to ask for data in time > in low-latency scenarios. > > Signed-off-by: David Henningsson <david.henningsson at canonical.com> > --- > src/pulsecore/protocol-native.c | 10 ++++++++-- > 1 file changed, 8 insertions(+), 2 deletions(-) Looks good to me, apart from the grammar error. > > diff --git a/src/pulsecore/protocol-native.c b/src/pulsecore/protocol-native.c > index 519a0f2..5fabf94 100644 > --- a/src/pulsecore/protocol-native.c > +++ b/src/pulsecore/protocol-native.c > @@ -939,8 +939,14 @@ static void fix_playback_buffer_attr(playback_stream *s) { > if (s->buffer_attr.tlength <= 0) > s->buffer_attr.tlength = (uint32_t) frame_size; > > - if (s->buffer_attr.minreq == (uint32_t) -1) > - s->buffer_attr.minreq = (uint32_t) pa_usec_to_bytes_round_up(DEFAULT_PROCESS_MSEC*PA_USEC_PER_MSEC, &s->sink_input->sample_spec); > + if (s->buffer_attr.minreq == (uint32_t) -1) { > + uint32_t process = (uint32_t) pa_usec_to_bytes_round_up(DEFAULT_PROCESS_MSEC*PA_USEC_PER_MSEC, &s->sink_input->sample_spec); > + /* With low-latency, tlength/4 gives a decent default in both traditional, adjust latency and early request modes. */ "Both" is not the right word for three modes. -- Tanu