[pulseaudio-discuss] bluetooth latencies

Georg Chini georg at chini.tk
Thu Feb 2 10:29:05 UTC 2017


On 31.01.2017 14:51, Tanu Kaskinen wrote:
> On Mon, 2017-01-30 at 17:35 +0100, Georg Chini wrote:
>> Hello,
>>
>> in module-bluez5-device.c and module-bluez4-device.c, latencies for
>> bluetooth are defined as follows:
>>
>> #define FIXED_LATENCY_PLAYBACK_A2DP (25 * PA_USEC_PER_MSEC)
>> #define FIXED_LATENCY_PLAYBACK_SCO (125 * PA_USEC_PER_MSEC)
>> #define FIXED_LATENCY_RECORD_A2DP   (25 * PA_USEC_PER_MSEC)
>> #define FIXED_LATENCY_RECORD_SCO    (25 * PA_USEC_PER_MSEC)
>>
>> Is the fixed latency for SCO playback a mistake? Both headsets I own
>> report around 28 ms actual latency for the SCO sink, so I cannot
>> understand why the fixed latency is set to 125 ms. Should I send a
>> patch to correct it?
> I don't know how Lennart came up with these numbers. How did you get
> the latency report from the headset? AFAIK, the reason why these
> constants exist is that we don't have a way to query the latency with
> bluetooth, and reporting some latency is likely more accurate than
> reporting zero latency.
>
Hi Tanu,

the values (plus one write block size) are passed to pulse via
pa_{sink,source}_set_fixed_latency_within_thread() calls.
So pacmd list-sinks shows a fixed latency of 128 ms for the
SCO sink.
When I use module-loopback, the latency of the sink reported
by pa_sink_get_latency() is 28 ms however, similar to what I
get for A2DP.

Since all other fixed latencies are at 25 ms and this is also set
for SCO recording, I think that the 125 is just a typo.
If you agree, I would send a patch to correct it.

Regards
              Georg



More information about the pulseaudio-discuss mailing list