On 07.02.2017 15:28, Tanu Kaskinen wrote:
On Thu, 2017-02-02 at 11:29 +0100, Georg Chini wrote:
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.
I thought that the latency constants would be included in the value
that get_latency() reports, but apparently that's only true for A2DP in
module-bluez4-device (which I believe you're still using). In module-
bluez5-device the fixed latency is added to all reports.

I'm fine with changing the constant from 125 ms to 25 ms, it may very
well be a typo.

Hi Tanu,

I am using bluez5 and I just tested it again to make sure - at least
pa_sink_get_latency_within_thread() returns a value of around 28 ms
and also pacmd list-sinks returns similar values although the fixed
latency is set to 128 ms. Here the output of pacmd list-sinks:

    index: 3
        name: <bluez_sink.0C_E0_E4_31_23_2D.headset_head_unit>
        driver: <module-bluez5-device.c>
        flags: HARDWARE HW_VOLUME_CTRL LATENCY
        state: RUNNING
        suspend cause:
        priority: 9030
        volume: mono: 65536 / 100%
                balance 0,00
        base volume: 65536 / 100%
        volume steps: 16
        muted: no
        current latency: 32,60 ms
        max request: 0 KiB
        max rewind: 0 KiB
        monitor source: 6
        sample spec: s16le 1ch 8000Hz
        channel map: mono
                     Mono
        used by: 1
        linked by: 1
        fixed latency: 128,00 ms

I already sent a patch last weekend.

Regards
             Georg

_______________________________________________
pulseaudio-discuss mailing list
pulseaudio-discuss@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/pulseaudio-discuss

Reply via email to