I'm working on a module that can switch profile for a Bluetooth headset: A2DP for music playback and HSP for a phone. When this module detects a sink-input-put event of a "phone" like GTalk and Bluetooth is the default sink, it can change BT profile from A2DP to HSP if necessary. Then the A2DP sink is deleted, and the phone's input stream will be routed to the new HSP Bluetooth sink. My problem is: I cannot hear good voice from the other side of GTalk, I get bursts of audio (about 2 seconds) followed by very long bursts of silence. By using pacmd, I found that Gtalk input stream is connected to the BT HSP sink, but GTalk input stream's latency is "0", very strange. Like this: >>list-sinks index: 2 name: <bluez_sink.00_16_44_FD_36_33.2> driver: <module-bluetooth-device.c> flags: HARDWARE HW_VOLUME_CTRL LATENCY state: RUNNING ... current latency: 128.46 ms sample spec: s16le 1ch 8000Hz channel map: mono ... fixed latency: 128.00 ms >>list-sink-inputs index: 3 driver: <protocol-native.c> flags: START_CORKED state: RUNNING sink: 2 <bluez_sink.00_16_44_FD_36_33.2> current latency: 0.00 ms ... this is abnormal. How PA calculate this value? requested latency: 128.00 ms sample spec: s16le 1ch 8000Hz channel map: mono resample method: (null) client: 7 <Empathy> ... This is the frontend application of GTalk And in PA log, I saw many "protocol-native.c: Requesting rewind due to rewrite". I think this means GTalk data flow is abnormal and data is lost. Could anyone give me some hint? How the latency is calculated for a sink input? And how can the application be affected? I think the BT HSP sink is working well, because if I connect another 8KHZ mono music stream to this sink at the same time, I can hear the music. And that music input's latency is non-zero: "current latency: 1982.00 ms, requested latency: 128.00 ms". Greate thanks Amanda -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.freedesktop.org/archives/pulseaudio-discuss/attachments/20110602/17031dd8/attachment.htm>