[pulseaudio-discuss] RAOP2 patch testing result
Hajime Fujita
crisp.fujita at nifty.com
Sun Jan 4 19:57:11 PST 2015
Hello Alexander,
Alexander E. Patrakov wrote:
> 13.11.2014 02:13, Martin Blanchard wrote:
>> On Tue, 2014-11-11 at 23:45 +0500, Alexander E. Patrakov wrote:
>>> Hi.
>>
>> Hello Alexander!
>>
>>> I have cloned the raop2-v2 branch from
>>> https://github.com/colinleroy/pulseaudio
>>
>> First, thanks for the testings.
>>
>>> The following test was applied.
>>>
>>> I have installed the "Android HiFi" application (also known as "HiFi
>>> Speaker"), version 1.7 Beta, on my Android phone, and started it.
>>>
>>> Link: http://forum.xda-developers.com/showthread.php?p=29986442
>>>
>>> Version is important: this one is possibly-buggy in an interesting way.
>>> Also, newer versions require a license for more than 30 minutes of
>>> playback. Note: for some reason, Google Play has removed this app, so
>>> you can only get it from various shady sources such as above.
>>>
>>> Then, I ran the following command:
>>>
>>> pacmd load-module module-raop-discover
>>>
>>> Result: it found the speaker!
>>>
>>> Then I started mpv on a music file, and redirected its output to the
>>> HiFi Speaker using pavucontrol. Result: it worked.
>>>
>>> Then I pressed the back arrow to seek back. Result: it froze.
>>
>> I can reproduce that, will try to fix it. You should not experience such
>> a problem with GStreamer based players, I think. Have you try any other
>> players?
>
> I had no GStreamer-based players installed, so installed gst123 for a
> quick test. Result: same freeze.
>
> Also tested with VLC, seeking there does not freeze.
We believe we finally figured out the cause and fixed the issue.
Please try the latest patches in
https://github.com/hfujita/pulseaudio-raop2 (at `hf/raop2-v2-v5.99.1`
branch).
The detailed discussion can be found here:
https://github.com/hfujita/pulseaudio-raop2/issues/31
> With Bino, I was able to trigger this assertion failure:
>
> E: [raop-sink-[192.168.1.39]:5000] rtsp_client.c: Assertion 'c->url'
> failed at modules/rtp/rtsp_client.c:441, function rtsp_exec(). Aborting.
I could not reproduce this (Bino immediately crashed with any of my
input file), but I believe this has also been fixed in the above branch.
(https://github.com/hfujita/pulseaudio-raop2/issues/9)
>>> Then I killed the HiFi Speaker application on Android. Result:
>>> PulseAudio unfroze mpv's stream and moved it back to analog headphones.
>>>
>>> Then I started Airfoil Speakers on Android. Result: PulseAudio does not
>>> see it, even if module-raop-discover is reloaded.
>>
>> This may be a module-raop-discover bug (Avahi related). Can you post the
>> full pulseaudio log?
>
> Sure. And here is what "avahi-browse --all" prints:
>
> aep at aep-haswell ~/raop/pulseaudio $ avahi-browse --all
> + eno1 IPv6 aep at aep-haswell: Built-in Audio Digital Stereo (HDMI)
> _pulse-sink._tcp local
> + eno1 IPv6 aep at aep-haswell: Built-in Audio Analog Stereo
> _pulse-sink._tcp local
> + eno1 IPv4 aep at aep-haswell: Built-in Audio Digital Stereo (HDMI)
> _pulse-sink._tcp local
> + eno1 IPv4 aep at aep-haswell: Built-in Audio Analog Stereo
> _pulse-sink._tcp local
> + eno1 IPv6 aep at aep-haswell _pulse-server._tcp local
> + eno1 IPv4 aep at aep-haswell _pulse-server._tcp local
> + eno1 IPv6 aep at aep-haswell: HD Webcam C910 Analog Stereo
> _pulse-source._tcp local
> + eno1 IPv6 aep at aep-haswell: Built-in Audio Analog Stereo
> _pulse-source._tcp local
> + eno1 IPv4 aep at aep-haswell: HD Webcam C910 Analog Stereo
> _pulse-source._tcp local
> + eno1 IPv4 aep at aep-haswell: Built-in Audio Analog Stereo
> _pulse-source._tcp local
> + eno1 IPv6 aep-haswell _ssh._tcp
> local
> + eno1 IPv4 aep-haswell _ssh._tcp
> local
> + eno1 IPv6 aep-haswell [94:de:80:6f:9a:d4] _workstation._tcp local
> + eno1 IPv4 aep-haswell [94:de:80:6f:9a:d4] _workstation._tcp local
> + eno1 IPv6 aep-haswell _sftp-ssh._tcp local
> + eno1 IPv4 aep-haswell _sftp-ssh._tcp local
> + eno1 IPv6 5CF8A18FB95B at Android _airfoilspeaker._tcp local
> + eno1 IPv6 5CF8A18FB95B at Android (2) _airfoilspeaker._tcp local
> + eno1 IPv4 5CF8A18FB95B at Android _airfoilspeaker._tcp local
> - eno1 IPv4 5CF8A18FB95B at Android _airfoilspeaker._tcp local
> - eno1 IPv6 5CF8A18FB95B at Android _airfoilspeaker._tcp local
> + eno1 IPv4 5CF8A18FB95B at Android _airfoilspeaker._tcp local
> + eno1 IPv6 5CF8A18FB95B at Android _airfoilspeaker._tcp local
>
> The relevant part of the pulseaudio log is:
>
> D: [raop-sink-[192.168.1.39]:5000] raop-client.c: Can't stream,
> connection not established yet...
> D: [raop-sink-[192.168.1.39]:5000] raop-client.c: Can't stream,
> connection not established yet...
> D: [raop-sink-[192.168.1.39]:5000] raop-client.c: Can't stream,
> connection not established yet...
> D: [raop-sink-[192.168.1.39]:5000] raop-client.c: Can't stream,
> connection not established yet...
> D: [pulseaudio] socket-client.c: connect(): Connection refused
> E: [pulseaudio] rtsp_client.c: Connection failed: Connection refused
>
> So - it is not on port 5000. This connects and pretends to send audio:
>
> pacmd load-module module-raop-sink 'server=[192.168.1.39]:6000'
> sink_name=raop_output.Airfoil.local
> sink_properties='device.description="Airfoil-Speakers"' protocol=UDP
> encryption=RSA codec=ALAC channels=2 format=16 rate=44100
>
> protocol=TCP causes Airfoil Speakers to crash.
>
> All the attempts of PulseAudio to speak to Airfoil Speakers have been
> logged and attached.
Does Airfoil really support RAOP (AirPlay) protocol?
If does, I believe `avahi-browse --all` should print out the line like
below.
----
+ wlan0 IPv4 A0EDCDXXXXXX at Apple TV AirTunes
Remote Audio local
----
But I can't find any line with "AirTunes Remote Audio" in your log.
Thank you,
Hajime
More information about the pulseaudio-discuss
mailing list