Re: [pulseaudio-discuss] Rate/Timing issues when streaming over BT from iPhone.....

2010-08-16 Thread pl bossart
This is a known issue with module-loopback. If you look at this part
of the log, you'll see that there's something really wrong with how
the sample-rate is set:

 I: module-loopback.c: Old rate 43236 Hz, new rate 43300 Hz
 I: module-loopback.c: Loopback overall latency is 99.98 ms + 806.05 ms +
 39.69 ms = 945.71 ms
 I: module-loopback.c: Should buffer 34640 bytes, buffered at minimum 69240
 bytes
 I: module-loopback.c: Old rate 43300 Hz, new rate 44965 Hz
 I: module-loopback.c: Loopback overall latency is 99.98 ms + 781.78 ms +
 40.83 ms = 922.60 ms
 I: module-loopback.c: Should buffer 35976 bytes, buffered at minimum 134708
 bytes
 I: module-loopback.c: Old rate 44965 Hz, new rate 46568 Hz
 I: module-loopback.c: Loopback overall latency is 99.98 ms + 429.80 ms +
 40.62 ms = 570.40 ms
 I: module-loopback.c: Should buffer 37256 bytes, buffered at minimum 79028
 bytes
 I: module-loopback.c: Old rate 46568 Hz, new rate 45144 Hz
 I: module-loopback.c: Loopback overall latency is 100.00 ms + 409.27 ms +
 41.85 ms = 551.11 ms
 I: module-loopback.c: Should buffer 36120 bytes, buffered at minimum 73904
 bytes
 I: module-loopback.c: Old rate 45144 Hz, new rate 45044 Hz

By changing the sample-rate so often you end-up with cracks/noises.
I had similar problems when using an RTP link, the oscillations on the
sample-rate are not good.
Fundamentally I think there's something wrong with the logic Lennart
added to my original code. Every 5s or so, a timer fires, and a
message LATENCY_SNAPSHOT is sent to the input and output thread. Then
once both answers are received, the code determines what the sampling
rate should be. What I think is flawed is that this is not an atomic
way of getting the latency on both sides, and since we receive packets
the latency varies by large steps unlike for ALSA sinks/sources.
Without some filtering you end-up with too many variations of the
sampling rate.
Bottomline: this loopback code deserves some love, unfortunately I
don't have time to look into this. I had some success by limiting the
sample-rate oscilllations to 100Hz around the nominal value.
-Pierre
___
pulseaudio-discuss mailing list
pulseaudio-discuss@mail.0pointer.de
https://tango.0pointer.de/mailman/listinfo/pulseaudio-discuss


Re: [pulseaudio-discuss] Rate/Timing issues when streaming over BT from iPhone.....

2010-08-01 Thread pl bossart
 Script:
 #!/usr/bin/pulseaudio -vvvnF
 load-module module-alsa-sink device=default:CARD=Live sink_name=output
 rate=48000
 load-module module-bluetooth-device address=XX:XX:XX:XX:XX:XX
 path=/org/bluez/1662/hci0/dev_XX_XX_XX_XX_XX_XX profile=a2dp_source
 auto_connect=yes name=input rate=44100
 load-module module-loopback source=1 sink=0 rate=44100


It's not clear to me why you have two different rates. If you know the
incoming rate is 44.1kHz you could avoid resampling.
I think we also have a fundamental issue with the way the incoming
frequency is calculated in PulseAudio using latency estimates. I ran a
set of similar tests a while back with RTP streaming and the sampling
frequency estimated with the latency estimates varied wildly, by as
much as 10kHz. I had a patch to prevent variations of more than 1%
(which is already a lot), but that wasn't enough to remove all
frequency shifts introduced by the resampler.
We need to have some kind of long-term smoothing of these variations,
adjusting the sampling frequency with such variations isn't going to
work.

 Partial output:
 I: main.c: Daemon startup complete.
 I: module-loopback.c: Loopback overall latency is 100.04 ms + 0.00 ms +
 39.51 ms = 139.55 ms
 I: module-loopback.c: Should buffer 35280 bytes, buffered at minimum 0 bytes
 I: module-loopback.c: Old rate 44100 Hz, new rate 43218 Hz
 D: bluetooth-util.c: dbus: interface=org.bluez.AudioSource,
 path=/org/bluez/1662/hci0/dev_64_B9_E8_19_DD_FA, member=PropertyChanged
 D: module-bluetooth-device.c: dbus: interface=org.bluez.AudioSource,
 path=/org/bluez/1662/hci0/dev_64_B9_E8_19_DD_FA, member=PropertyChanged
 D: bluetooth-util.c: dbus: interface=org.bluez.AudioSource,
 path=/org/bluez/1662/hci0/dev_64_B9_E8_19_DD_FA, member=PropertyChanged
 D: module-bluetooth-device.c: dbus: interface=org.bluez.AudioSource,
 path=/org/bluez/1662/hci0/dev_64_B9_E8_19_DD_FA, member=PropertyChanged
 I: main.c: Got signal SIGUSR2.
 I: module.c: Loaded module-cli-protocol-unix (index: #3; argument: ).
 I: module-loopback.c: Loopback overall latency is 99.98 ms + 0.00 ms + 39.51
 ms = 139.49 ms
 I: module-loopback.c: Should buffer 34576 bytes, buffered at minimum 0 bytes
 I: module-loopback.c: Old rate 43218 Hz, new rate 43236 Hz
 I: client.c: Created 0 UNIX socket client
 D: bluetooth-util.c: dbus: interface=org.bluez.AudioSource,
 path=/org/bluez/1662/hci0/dev_64_B9_E8_19_DD_FA, member=PropertyChanged
 D: module-bluetooth-device.c: dbus: interface=org.bluez.AudioSource,
 path=/org/bluez/1662/hci0/dev_64_B9_E8_19_DD_FA, member=PropertyChanged
 I: module-loopback.c: Loopback overall latency is 99.99 ms + 400.66 ms +
 42.02 ms = 542.67 ms
 I: module-loopback.c: Should buffer 34592 bytes, buffered at minimum 2560
 bytes
 I: module-loopback.c: Old rate 43236 Hz, new rate 43300 Hz
 I: module-loopback.c: Loopback overall latency is 99.98 ms + 806.05 ms +
 39.69 ms = 945.71 ms
 I: module-loopback.c: Should buffer 34640 bytes, buffered at minimum 69240
 bytes
 I: module-loopback.c: Old rate 43300 Hz, new rate 44965 Hz
 I: module-loopback.c: Loopback overall latency is 99.98 ms + 781.78 ms +
 40.83 ms = 922.60 ms
 I: module-loopback.c: Should buffer 35976 bytes, buffered at minimum 134708
 bytes
 I: module-loopback.c: Old rate 44965 Hz, new rate 46568 Hz
 I: module-loopback.c: Loopback overall latency is 99.98 ms + 429.80 ms +
 40.62 ms = 570.40 ms
 I: module-loopback.c: Should buffer 37256 bytes, buffered at minimum 79028
 bytes
 I: module-loopback.c: Old rate 46568 Hz, new rate 45144 Hz
 I: module-loopback.c: Loopback overall latency is 100.00 ms + 409.27 ms +
 41.85 ms = 551.11 ms
 I: module-loopback.c: Should buffer 36120 bytes, buffered at minimum 73904
 bytes
 I: module-loopback.c: Old rate 45144 Hz, new rate 45044 Hz
 I: main.c: Daemon shutdown initiated.

 Thanks in advance

 Alex

 a...@apics.co.uk

 Homer Simpson: Facts are meaningless. You could use facts to prove anything
 that's even remotely true!
 ___
 pulseaudio-discuss mailing list
 pulseaudio-discuss@mail.0pointer.de
 https://tango.0pointer.de/mailman/listinfo/pulseaudio-discuss


___
pulseaudio-discuss mailing list
pulseaudio-discuss@mail.0pointer.de
https://tango.0pointer.de/mailman/listinfo/pulseaudio-discuss


[pulseaudio-discuss] Rate/Timing issues when streaming over BT from iPhone.....

2010-07-26 Thread alex
Hi All,
Hopefully everyone isn't receiving this twice, I think the first 
one was blocked due to being to large (I've trimmed the output below, 
hopefully not too much though!)

Apologies if this is duplicated.

Alex


Hi All,
I've setup pulse audio to stream music from my iPhone (connected 
using BlueTooth) and output it, using module-loopback This is working 
fine, the only issue I have appears to be related the bitrate/timing 
etc... The music is very crackly, and is playing back too slowly I've 
tried changing a number of options, but haven't been able to resolve it. 
I've tried lots of different combinations of the 'rate' option, but none 
helped...  Any help really would be much appreciated, please find debug 
output below, along with the script I'm executing:

Script:
#!/usr/bin/pulseaudio -vvvnF
load-module module-alsa-sink device=default:CARD=Live sink_name=output 
rate=48000
load-module module-bluetooth-device address=XX:XX:XX:XX:XX:XX 
path=/org/bluez/1662/hci0/dev_XX_XX_XX_XX_XX_XX profile=a2dp_source 
auto_connect=yes name=input rate=44100
load-module module-loopback source=1 sink=0 rate=44100

Partial output:
I: main.c: Daemon startup complete.
I: module-loopback.c: Loopback overall latency is 100.04 ms + 0.00 ms + 
39.51 ms = 139.55 ms
I: module-loopback.c: Should buffer 35280 bytes, buffered at minimum 0 
bytes
I: module-loopback.c: Old rate 44100 Hz, new rate 43218 Hz
D: bluetooth-util.c: dbus: interface=org.bluez.AudioSource, 
path=/org/bluez/1662/hci0/dev_64_B9_E8_19_DD_FA, member=PropertyChanged
D: module-bluetooth-device.c: dbus: interface=org.bluez.AudioSource, 
path=/org/bluez/1662/hci0/dev_64_B9_E8_19_DD_FA, member=PropertyChanged
D: bluetooth-util.c: dbus: interface=org.bluez.AudioSource, 
path=/org/bluez/1662/hci0/dev_64_B9_E8_19_DD_FA, member=PropertyChanged
D: module-bluetooth-device.c: dbus: interface=org.bluez.AudioSource, 
path=/org/bluez/1662/hci0/dev_64_B9_E8_19_DD_FA, member=PropertyChanged
I: main.c: Got signal SIGUSR2.
I: module.c: Loaded module-cli-protocol-unix (index: #3; argument: ).
I: module-loopback.c: Loopback overall latency is 99.98 ms + 0.00 ms + 
39.51 ms = 139.49 ms
I: module-loopback.c: Should buffer 34576 bytes, buffered at minimum 0 
bytes
I: module-loopback.c: Old rate 43218 Hz, new rate 43236 Hz
I: client.c: Created 0 UNIX socket client
D: bluetooth-util.c: dbus: interface=org.bluez.AudioSource, 
path=/org/bluez/1662/hci0/dev_64_B9_E8_19_DD_FA, member=PropertyChanged
D: module-bluetooth-device.c: dbus: interface=org.bluez.AudioSource, 
path=/org/bluez/1662/hci0/dev_64_B9_E8_19_DD_FA, member=PropertyChanged
I: module-loopback.c: Loopback overall latency is 99.99 ms + 400.66 ms + 
42.02 ms = 542.67 ms
I: module-loopback.c: Should buffer 34592 bytes, buffered at minimum 2560 
bytes
I: module-loopback.c: Old rate 43236 Hz, new rate 43300 Hz
I: module-loopback.c: Loopback overall latency is 99.98 ms + 806.05 ms + 
39.69 ms = 945.71 ms
I: module-loopback.c: Should buffer 34640 bytes, buffered at minimum 69240 
bytes
I: module-loopback.c: Old rate 43300 Hz, new rate 44965 Hz
I: module-loopback.c: Loopback overall latency is 99.98 ms + 781.78 ms + 
40.83 ms = 922.60 ms
I: module-loopback.c: Should buffer 35976 bytes, buffered at minimum 
134708 bytes
I: module-loopback.c: Old rate 44965 Hz, new rate 46568 Hz
I: module-loopback.c: Loopback overall latency is 99.98 ms + 429.80 ms + 
40.62 ms = 570.40 ms
I: module-loopback.c: Should buffer 37256 bytes, buffered at minimum 79028 
bytes
I: module-loopback.c: Old rate 46568 Hz, new rate 45144 Hz
I: module-loopback.c: Loopback overall latency is 100.00 ms + 409.27 ms + 
41.85 ms = 551.11 ms
I: module-loopback.c: Should buffer 36120 bytes, buffered at minimum 73904 
bytes
I: module-loopback.c: Old rate 45144 Hz, new rate 45044 Hz
I: main.c: Daemon shutdown initiated.

Thanks in advance

Alex

a...@apics.co.uk

Homer Simpson: Facts are meaningless. You could use facts to prove 
anything that's even remotely true!___
pulseaudio-discuss mailing list
pulseaudio-discuss@mail.0pointer.de
https://tango.0pointer.de/mailman/listinfo/pulseaudio-discuss