mikebrady / shairport-sync

AirPlay and AirPlay 2 audio player
Other
7.19k stars 570 forks source link

[Problem]: WiiM Pro device fails to connect, needs NTP stream #1738

Closed ralph-ralph0 closed 12 months ago

ralph-ralph0 commented 1 year ago

What happened?

Question: is there a way to force an Airplay source to revert to different protocols (where NTP is not required?)

What I expected: WiiM Pro streaming device has a feature to "Airplay cast" its music output to an Airplay or Airplay 2 device. I expected that WiiM should connect to my RPi4 + Shairport-Sync instance as an end point.

What happened: Shairport-Sync is functioning properly with other source devices (e.g. I can play music to shairport-sync from iPhone, and an android app named "AirMusic" that can "cast" via Airplay and other protocols).

BUT, when attempting to connect WiiM device to shairport-sync, the WiiM device attemps to connect but does not complete a connection. Detailed logs from shairport-sync show that a connection is started but then quickly terminated. The shairport-sync service status reports simply:

What I did to debug/confirm:

Relevant log output

HERE shairport-sync IS RUN WITH DEFAULT regtype, ports in .conf file

$ sudo shairport-sync --statistics -vv
         0.000363018 "shairport.c:579" looking for configuration file at full path "/etc/shairport-sync.conf"
         0.001022241 "shairport.c:2252" Startup in AirPlay 2 mode, with features 0x405c4a00,0x1c340 on device "xyz".
         0.000076408 "shairport.c:2291" Version String: "4.3.1-24-g7e0e3af6-AirPlay2-smi10-OpenSSL-Avahi-ALSA-soxr-sysconfdir:/etc"
         0.000015129 "shairport.c:2310" Command Line: "shairport-sync --statistics -vv".
         0.000045704 "shairport.c:2317" libsodium initialised.
         0.000253130 "shairport.c:2342" libgcrypt initialised.
         0.000022222 "shairport.c:2346" Log Verbosity is 2.
         0.000017315 "audio_alsa.c:1004" alsa: init() -- alsa_backend_state => abm_disconnected.
         0.000013740 "audio_alsa.c:1021" alsa: alsa_maximum_stall_time of 0.200000 sec.
         0.000039556 "audio_alsa.c:1175" alsa output rate is 44100 frames per second
         0.000018741 "audio_alsa.c:1310" alsa: disable_standby_mode is "never".
         0.000012889 "audio_alsa.c:1314" alsa: disable_standby_mode_silence_threshold is 0.040000 seconds.
         0.000011907 "audio_alsa.c:1316" alsa: disable_standby_mode_silence_scan_interval is 0.004000 seconds.
         0.000017574 "audio_alsa.c:1356" alsa: output device name is "hw:Loopback,0".
         0.000244074 "shairport.c:2361" The processor is running little-endian.
         0.000023926 "shairport.c:2394" disable_resend_requests is off.
         0.000013352 "shairport.c:2395" diagnostic_drop_packet_fraction is 0.000000. A value of 0.0 means no packets will be dropped d                                                   eliberately.
         0.000007037 "shairport.c:2399" statistics_requester status is 1.
         0.000012130 "shairport.c:2404" rtsp listening port is 5000.
         0.000011777 "shairport.c:2405" udp base port is 6001.
         0.000011667 "shairport.c:2406" udp port range is 10.
         0.000011482 "shairport.c:2407" player name is "Iot-rpi4-personal-enet".
         0.000012092 "shairport.c:2408" backend is "alsa".
         0.000011704 "shairport.c:2409" run_this_before_play_begins action is "(null)".
         0.000011870 "shairport.c:2410" run_this_after_play_ends action is "(null)".
         0.000011741 "shairport.c:2411" wait-cmd status is 0.
         0.000006111 "audio_alsa.c:2039" keep_dac_busy is now "no"
         0.000011852 "shairport.c:2412" run_this_before_play_begins may return output is 0.
         0.000044667 "shairport.c:2413" run_this_if_an_unfixable_error_is_detected action is "(null)".
         0.000013574 "shairport.c:2415" run_this_before_entering_active_state action is  "(null)".
         0.000012092 "shairport.c:2417" run_this_after_exiting_active_state action is  "(null)".
         0.000011796 "shairport.c:2419" active_state_timeout is  10.000000 seconds.
         0.000016167 "shairport.c:2420" mdns backend "(null)".
         0.000011759 "shairport.c:2421" userSuppliedLatency is 0.
         0.000011426 "shairport.c:2422" interpolation setting is "auto".
         0.000011482 "shairport.c:2426" interpolation soxr_delay_threshold is 30000000.
         0.000011815 "shairport.c:2427" resync time is 0.050000 seconds.
         0.000012092 "shairport.c:2428" resync recovery time is 0.100000 seconds.
         0.000012056 "shairport.c:2429" allow a session to be interrupted: 0.
         0.000011963 "shairport.c:2430" busy timeout time is 20.
         0.000012444 "shairport.c:2431" drift tolerance is 0.010000 seconds.
         0.000012278 "shairport.c:2432" password is "(null)".
         0.000011389 "shairport.c:2433" default airplay volume is: 0.000000.
         0.000012204 "shairport.c:2434" high threshold airplay volume is: -16.000000.
         0.000012592 "shairport.c:2436" check for higher-than-threshold volume for new play session is disabled.
         0.000012167 "shairport.c:2442" ignore_volume_control is 1.
         0.000011778 "shairport.c:2446" volume_max_db is not set
         0.000011555 "shairport.c:2447" volume range in dB (zero means use the range specified by the mixer): 0.
         0.000011945 "shairport.c:2449" volume_range_combined_hardware_priority (1 means hardware mixer attenuation is used first) is                                                    0.
         0.000012444 "shairport.c:2453" playback_mode is 0 (0-stereo, 1-mono, 1-reverse_stereo, 2-both_left, 3-both_right).
         0.000012111 "shairport.c:2455" disable_synchronization is 0.
         0.000011667 "shairport.c:2456" use_mmap_if_available is 1.
         0.000011537 "shairport.c:2457" output_format automatic selection is disabled.
         0.000012611 "shairport.c:2460" output_format is "S32_LE".
         0.000011574 "shairport.c:2461" output_rate automatic selection is disabled.
         0.000011611 "shairport.c:2464" output_rate is 44100.
         0.000011833 "shairport.c:2465" audio backend desired buffer length is 0.400000 seconds.
         0.000012260 "shairport.c:2467" audio_backend_buffer_interpolation_threshold_in_seconds is 0.120000 seconds.
         0.000012537 "shairport.c:2469" audio backend latency offset is 0.400000 seconds.
         0.000012352 "shairport.c:2471" audio backend silence lead-in time is "auto".
         0.000010759 "shairport.c:2475" zeroconf regtype is "_raop._tcp".
         0.000010389 "shairport.c:2476" decoders_supported field is 1.
         0.000011018 "shairport.c:2477" use_apple_decoder is 0.
         0.000011408 "shairport.c:2478" alsa_use_hardware_mute is 0.
         0.000011574 "shairport.c:2482" no special mdns service interface was requested.
         0.000028833 "shairport.c:2485" configuration file name "/etc/shairport-sync.conf" resolves to "/etc/shairport-sync.conf".
         0.000014759 "shairport.c:2515" loudness is 0.
         0.000011797 "shairport.c:2516" loudness reference level is -20.000000
         0.000196333 "ptp-utilities.c:223" Send control message to NQPTP: "/nqptp T"
         0.000258056 "ptp-utilities.c:163" ptp_shm_interface_open with mapped_addr = 0
         0.000094925 "ptp-utilities.c:194" ptp_shm_interface_open -- success!
         0.000021149 "shairport.c:2643" NQPTP is online.
         0.000274685 "activity_monitor.c:163" am_state: am_inactive
         0.004929500 "mdns_avahi.c:220" avahi: service 'xyz@Iot-rpi4-personal-enet' group is not yet committed.
         0.002029907 "mdns_avahi.c:268" avahi: avahi_entry_group_commit 0
         0.000312278 "mdns_avahi.c:463" avahi_dacp_monitor_start Avahi DACP monitor successfully started
         0.000182741 "mdns_avahi.c:224" avahi: service 'xyz@Iot-rpi4-personal-enet' group is registering.
         0.919051240 "mdns_avahi.c:191" avahi: service 'xyz@Iot-rpi4-personal-enet' successfully added.
         0.574854074 "shairport.c:248" soxr_delay: 2598564 nanoseconds, soxr_delay_threshold: 30 milliseconds.
         0.000111629 "shairport.c:255" "soxr" interpolation has been chosen.
        58.565872688 "rtsp.c:716" No active connections.
         0.000059629 "rtsp.c:723" Airplay Volume for new connections is 0.000000.
        42.044928790 "rtsp.c:723" Airplay Volume for new connections is 0.000000.
         0.000269407 "rtsp.c:5598" Connection 1: New connection from 10.0.10.157:48942 to self at 10.0.10.175:5000.
         0.004704445 "rtsp.c:5182" Connection 1: Received an RTSP Packet of type "GET":
         0.000063241 "rtsp.c:5184"   Type: "CSeq", content: "1"
         0.000014444 "rtsp.c:5184"   Type: "User-Agent", content: "Linux"
         0.000013389 "rtsp.c:5184"   Type: "Client-Instance", content: "yyyyyyyyyyyy"
         0.000012537 "rtsp.c:5184"   Type: "DACP-ID", content: "yyyyyyyyyyyy"
         0.000012167 "rtsp.c:5184"   Type: "Active-Remote", content: "20073886"
         0.000012870 "rtsp.c:5184"   No Content Plist. Content length: 0.
         0.000016296 "rtsp.c:2021" Connection 1: GET /info :: Content-Length 0
         0.000012685 "rtsp.c:2023" GET request
         0.000011056 "rtsp.c:2023"   Type: "CSeq", content: "1"
         0.000012074 "rtsp.c:2023"   Type: "User-Agent", content: "Linux"
         0.000010741 "rtsp.c:2023"   Type: "Client-Instance", content: "yyyyyyyyyyyy"
         0.000010667 "rtsp.c:2023"   Type: "DACP-ID", content: "yyyyyyyyyyyy"
         0.000010444 "rtsp.c:2023"   Type: "Active-Remote", content: "20073886"
         0.000010426 "rtsp.c:2023"   No Content Plist. Content length: 0.
         0.000010833 "rtsp.c:1664" GET /info:
         0.000011297 "rtsp.c:1664"   Type: "CSeq", content: "1"
         0.000010592 "rtsp.c:1664"   Type: "User-Agent", content: "Linux"
         0.000010482 "rtsp.c:1664"   Type: "Client-Instance", content: "yyyyyyyyyyyy"
         0.000010629 "rtsp.c:1664"   Type: "DACP-ID", content: "yyyyyyyyyyyy"
         0.000010556 "rtsp.c:1664"   Type: "Active-Remote", content: "20073886"
         0.000010518 "rtsp.c:1664"   No Content Plist. Content length: 0.
         0.000216241 "rtsp.c:1803" GET /info Stage 2 Response
         0.000016352 "rtsp.c:1803"   Response Code: 501.
         0.000010944 "rtsp.c:1803"   Type: "CSeq", content: "1"
         0.000010574 "rtsp.c:1803"   Type: "Server", content: "AirTunes/366.0"
         0.000010630 "rtsp.c:1803"   Type: "Content-Type", content: "application/x-apple-binary-plist"
         0.000080815 "rtsp.c:1803"   Content Plist (as XML):
--
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
        <key>audioLatencies</key>
        <array>
                <dict>
                        <key>inputLatencyMicros</key>
                        <integer>0</integer>
                        <key>outputLatencyMicros</key>
                        <integer>400000</integer>
                        <key>type</key>
                        <integer>100</integer>
                </dict>
                <dict>
                        <key>audioType</key>
                        <string>default</string>
                        <key>inputLatencyMicros</key>
                        <integer>0</integer>
                        <key>outputLatencyMicros</key>
                        <integer>400000</integer>
                        <key>type</key>
                        <integer>100</integer>
                </dict>
                <dict>
                        <key>audioType</key>
                        <string>media</string>
                        <key>inputLatencyMicros</key>
                        <integer>0</integer>
                        <key>outputLatencyMicros</key>
                        <integer>400000</integer>
                        <key>type</key>
                        <integer>100</integer>
                </dict>
                <dict>
                        <key>audioType</key>
                        <string>media</string>
                        <key>inputLatencyMicros</key>
                        <integer>0</integer>
                        <key>outputLatencyMicros</key>
                        <integer>400000</integer>
                        <key>type</key>
                        <integer>102</integer>
                </dict>
        </array>
        <key>keepAliveLowPower</key>
        <true/>
        <key>keepAliveSendStatsAsBody</key>
        <true/>
        <key>manufacturer</key>
        <string>Shairport Sync</string>
        <key>nameIsFactoryDefault</key>
        <false/>
        <key>protocolVersion</key>
        <string>1.1</string>
        <key>sdk</key>
        <string>AirPlay;2.0.2</string>
        <key>sourceVersion</key>
        <string>366.0</string>
        <key>statusFlags</key>
        <integer>4</integer>
        <key>features</key>
        <integer>777</integer>
        <key>deviceID</key>
        <string>xyz</string>
        <key>pi</key>
        <string>b24d3a1a-27d1-4c6b-afc0-3405b774df70</string>
        <key>name</key>
        <string>Iot-rpi4-personal-enet</string>
        <key>model</key>
        <string>Shairport Sync</string>
</dict>
</plist>
--
         0.000507963 "rtsp.c:5243" Connection 1: RTSP Response:
         0.000014204 "rtsp.c:5244"   Response Code: 200.
         0.000010648 "rtsp.c:5244"   Type: "CSeq", content: "1"
         0.000010592 "rtsp.c:5244"   Type: "Server", content: "AirTunes/366.0"
         0.000010667 "rtsp.c:5244"   Type: "Content-Type", content: "application/x-apple-binary-plist"
         0.000069426 "rtsp.c:5244"   Content Plist (as XML):
--
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
        <key>audioLatencies</key>
        <array>
                <dict>
                        <key>inputLatencyMicros</key>
                        <integer>0</integer>
                        <key>outputLatencyMicros</key>
                        <integer>400000</integer>
                        <key>type</key>
                        <integer>100</integer>
                </dict>
                <dict>
                        <key>audioType</key>
                        <string>default</string>
                        <key>inputLatencyMicros</key>
                        <integer>0</integer>
                        <key>outputLatencyMicros</key>
                        <integer>400000</integer>
                        <key>type</key>
                        <integer>100</integer>
                </dict>
                <dict>
                        <key>audioType</key>
                        <string>media</string>
                        <key>inputLatencyMicros</key>
                        <integer>0</integer>
                        <key>outputLatencyMicros</key>
                        <integer>400000</integer>
                        <key>type</key>
                        <integer>100</integer>
                </dict>
                <dict>
                        <key>audioType</key>
                        <string>media</string>
                        <key>inputLatencyMicros</key>
                        <integer>0</integer>
                        <key>outputLatencyMicros</key>
                        <integer>400000</integer>
                        <key>type</key>
                        <integer>102</integer>
                </dict>
        </array>
        <key>keepAliveLowPower</key>
        <true/>
        <key>keepAliveSendStatsAsBody</key>
        <true/>
        <key>manufacturer</key>
        <string>Shairport Sync</string>
        <key>nameIsFactoryDefault</key>
        <false/>
        <key>protocolVersion</key>
        <string>1.1</string>
        <key>sdk</key>
        <string>AirPlay;2.0.2</string>
        <key>sourceVersion</key>
        <string>366.0</string>
        <key>statusFlags</key>
        <integer>4</integer>
        <key>features</key>
        <integer>777</integer>
        <key>deviceID</key>
        <string>xyz</string>
        <key>pi</key>
        <string>b24d3a1a-27d1-4c6b-afc0-3405b774df70</string>
        <key>name</key>
        <string>Iot-rpi4-personal-enet</string>
        <key>model</key>
        <string>Shairport Sync</string>
</dict>
</plist>
--
         0.000502704 "rtsp.c:1522" Responding with content of length 587
         0.018396925 "rtsp.c:5182" Connection 1: Received an RTSP Packet of type "POST":
         0.000033686 "rtsp.c:5184"   Type: "CSeq", content: "2"
         0.000012574 "rtsp.c:5184"   Type: "User-Agent", content: "Linux"
         0.000011870 "rtsp.c:5184"   Type: "Client-Instance", content: "yyyyyyyyyyyy"
         0.000012445 "rtsp.c:5184"   Type: "DACP-ID", content: "yyyyyyyyyyyy"
         0.000011907 "rtsp.c:5184"   Type: "Active-Remote", content: "20073886"
         0.000012963 "rtsp.c:5184"   Type: "Content-Type", content: "application/octet-stream"
         0.000011963 "rtsp.c:5184"   Type: "X-Apple-HKP", content: "4"
         0.000011759 "rtsp.c:5184"   Type: "Content-Length", content: "9"
         0.000011704 "rtsp.c:5184"   No Content Plist. Content length: 9.
         0.000015667 "rtsp.c:2225" Connection 1: handle_pair-setup Content-Length 9
         0.012708999 "rtsp.c:2263" pair-setup response
         0.000036852 "rtsp.c:2263"   Response Code: 200.
         0.000012963 "rtsp.c:2263"   Type: "CSeq", content: "2"
         0.000013519 "rtsp.c:2263"   Type: "Server", content: "AirTunes/366.0"
         0.000011870 "rtsp.c:2263"   Type: "Content-Type", content: "application/octet-stream"
         0.000011371 "rtsp.c:2263"   No Content Plist. Content length: 409.
         0.000012203 "rtsp.c:5243" Connection 1: RTSP Response:
         0.000012500 "rtsp.c:5244"   Response Code: 200.
         0.000011778 "rtsp.c:5244"   Type: "CSeq", content: "2"
         0.000011537 "rtsp.c:5244"   Type: "Server", content: "AirTunes/366.0"
         0.000011759 "rtsp.c:5244"   Type: "Content-Type", content: "application/octet-stream"
         0.000011074 "rtsp.c:5244"   No Content Plist. Content length: 409.
         0.000012982 "rtsp.c:1522" Responding with content of length 409
         0.556560333 "rtsp.c:5182" Connection 1: Received an RTSP Packet of type "POST":
         0.000068167 "rtsp.c:5184"   Type: "CSeq", content: "3"
         0.000015018 "rtsp.c:5184"   Type: "User-Agent", content: "Linux"
         0.000013370 "rtsp.c:5184"   Type: "Client-Instance", content: "yyyyyyyyyyyy"
         0.000012482 "rtsp.c:5184"   Type: "DACP-ID", content: "yyyyyyyyyyyy"
         0.000012111 "rtsp.c:5184"   Type: "Active-Remote", content: "20073886"
         0.000011963 "rtsp.c:5184"   Type: "Content-Type", content: "application/octet-stream"
         0.000011870 "rtsp.c:5184"   Type: "X-Apple-HKP", content: "4"
         0.000011574 "rtsp.c:5184"   Type: "Content-Length", content: "457"
         0.000013223 "rtsp.c:5184"   No Content Plist. Content length: 457.
         0.000017315 "rtsp.c:2225" Connection 1: handle_pair-setup Content-Length 457
         0.015391148 "rtsp.c:2263" pair-setup response
         0.000029333 "rtsp.c:2263"   Response Code: 200.
         0.000012870 "rtsp.c:2263"   Type: "CSeq", content: "3"
         0.000011760 "rtsp.c:2263"   Type: "Server", content: "AirTunes/366.0"
         0.000011963 "rtsp.c:2263"   Type: "Content-Type", content: "application/octet-stream"
         0.000012351 "rtsp.c:2263"   No Content Plist. Content length: 69.
         0.000012260 "rtsp.c:5243" Connection 1: RTSP Response:
         0.000011833 "rtsp.c:5244"   Response Code: 200.
         0.000011722 "rtsp.c:5244"   Type: "CSeq", content: "3"
         0.000011093 "rtsp.c:5244"   Type: "Server", content: "AirTunes/366.0"
         0.000011722 "rtsp.c:5244"   Type: "Content-Type", content: "application/octet-stream"
         0.000010907 "rtsp.c:5244"   No Content Plist. Content length: 69.
         0.000013889 "rtsp.c:1522" Responding with content of length 69
         0.009319667 "rtsp.c:5182" Connection 1: Received an RTSP Packet of type "SETUP":
         0.000034963 "rtsp.c:5184"   Type: "CSeq", content: "4"
         0.000013759 "rtsp.c:5184"   Type: "User-Agent", content: "Linux"
         0.000013037 "rtsp.c:5184"   Type: "Client-Instance", content: "yyyyyyyyyyyy"
         0.000012648 "rtsp.c:5184"   Type: "DACP-ID", content: "yyyyyyyyyyyy"
         0.000011982 "rtsp.c:5184"   Type: "Active-Remote", content: "20073886"
         0.000011907 "rtsp.c:5184"   Type: "Content-Type", content: "application/x-apple-binary-plist"
         0.000012074 "rtsp.c:5184"   Type: "Content-Length", content: "205"
         0.000043167 "rtsp.c:5184"   Content Plist (as XML):
--
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
        <key>deviceID</key>
        <string>41:E8:C0:F7:85:F3:74:7B</string>
        <key>sessionUUID</key>
        <string>78A82162-8BDE-464B-924F-CEC652CD10ED</string>
        <key>sourceVersion</key>
        <string>690.07.01</string>
        <key>timingPort</key>
        <integer>53590</integer>
        <key>timingProtocol</key>
        <string>NTP</string>
</dict>
</plist>
--
         0.000080815 "rtsp.c:2833" Connection 1: SETUP (AirPlay 2)
         0.000014796 "rtsp.c:2834" SETUP (AirPlay 2) SETUP incoming message
         0.000011389 "rtsp.c:2834"   Type: "CSeq", content: "4"
         0.000011667 "rtsp.c:2834"   Type: "User-Agent", content: "Linux"
         0.000011611 "rtsp.c:2834"   Type: "Client-Instance", content: "yyyyyyyyyyyy"
         0.000010870 "rtsp.c:2834"   Type: "DACP-ID", content: "yyyyyyyyyyyy"
         0.000010611 "rtsp.c:2834"   Type: "Active-Remote", content: "20073886"
         0.000010445 "rtsp.c:2834"   Type: "Content-Type", content: "application/x-apple-binary-plist"
         0.000010611 "rtsp.c:2834"   Type: "Content-Length", content: "205"
         0.000022592 "rtsp.c:2834"   Content Plist (as XML):
--
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
        <key>deviceID</key>
        <string>41:E8:C0:F7:85:F3:74:7B</string>
        <key>sessionUUID</key>
        <string>78A82162-8BDE-464B-924F-CEC652CD10ED</string>
        <key>sourceVersion</key>
        <string>690.07.01</string>
        <key>timingPort</key>
        <integer>53590</integer>
        <key>timingProtocol</key>
        <string>NTP</string>
</dict>
</plist>
--
         0.000102315 "rtsp.c:2853" Connection 1 SETUP: No "streams" array has been found -- create an event thread and open a TCP port                                                   .
         0.000016963 "rtsp.c:2872" Connection 1: SETUP: NTP setup from 10.0.10.157:48942 ("<unknown>") to self at 10.0.10.175:5000.
         0.000012834 "rtsp.c:3108" SETUP on Connection 1: ntp stream handling is not implemented!
         0.000011574 "rtsp.c:3110" *warning: Shairport Sync can not handle NTP streams.
         0.000013240 "rtsp.c:3410"  SETUP response
         0.000010389 "rtsp.c:3410"   Response Code: 400.
         0.000010352 "rtsp.c:3410"   Type: "CSeq", content: "4"
         0.000010389 "rtsp.c:3410"   Type: "Server", content: "AirTunes/366.0"
         0.000010648 "rtsp.c:3410"   No Content Plist. Content length: 0.
         0.000010500 "rtsp.c:5243" Connection 1: RTSP Response:
         0.000010482 "rtsp.c:5244"   Response Code: 400.
         0.000010222 "rtsp.c:5244"   Type: "CSeq", content: "4"
         0.000010296 "rtsp.c:5244"   Type: "Server", content: "AirTunes/366.0"
         0.000011741 "rtsp.c:5244"   No Content Plist. Content length: 0.
         0.005075852 "rtsp.c:5011" Connection 1: NTP stream rtsp_conversation_thread_func_cleanup_function called.
         0.000033352 "rtsp.c:2641" Connection 1: TEARDOWN NTP stream connection.
         0.000015092 "rtsp.c:5043" Connection 1: terminating -- closing RTSP connection socket 8: from 10.0.10.157:48942 to self at 10                                                   .0.10.175:5000.
         0.000335389 "rtsp.c:5110" Connection 1: Closed.
         0.000027222 "rtsp.c:5320" Connection 1: RTSP thread exit.
^C        16.436738916 "shairport.c:1745" exit on SIGINT
         0.000204149 "rtsp.c:5346" rtsp_listen_loop_cleanup_handler called.
         0.000029185 "rtsp.c:535" Connection 1: not cancelled.
         0.000013000 "rtsp.c:5352" closing socket 3.
         0.000065907 "rtsp.c:5352" closing socket 4.
         0.000123815 "shairport.c:1588" exit function called...
         0.000023333 "shairport.c:1598" Stopping the activity monitor.
         0.000012019 "activity_monitor.c:243" activity_monitor_stop begin. state: 0, player_state: 0.
         0.000127926 "activity_monitor.c:250" activity_monitor_stop complete
         0.000020111 "shairport.c:1600" Stopping the activity monitor done.
         0.000012037 "shairport.c:1646" Deinitialise the audio backend.
         0.000020926 "audio_alsa.c:1373" Cancel buffer monitor thread.
         0.000136129 "shairport.c:1648" Deinitialise the audio backend done.
         0.000017963 "shairport.c:1654" Waiting for SoXr timecheck to terminate...
         0.000102926 "shairport.c:1657" Waiting for SoXr timecheck to terminate done
         0.000017574 "ptp-utilities.c:206" ptp_shm_interface_close
         0.000068593 "mdns_avahi.c:517" avahi_dacp_monitor_stop Avahi DACP monitor successfully stopped
         0.000015519 "mdns_avahi.c:414" avahi_unregister.
         0.000011907 "mdns_avahi.c:416" avahi: stop the threaded poll.
         0.000170278 "mdns_avahi.c:420" avahi: free the client.
         0.000207648 "mdns_avahi.c:426" avahi: free the threaded poll.
         0.000051926 "mdns_avahi.c:434" avahi: free the service name.
         0.000013537 "mdns_avahi.c:441" avahi: free the ap2 service_name.
         0.000010889 "mdns_avahi.c:447" avahi free text_record_string_list
         0.000018333 "mdns_avahi.c:454" avahi free ap_2text_record_string_list
         0.000014000 "shairport.c:1725" normal exit
dietpi@iot-rpi4-personal-enet:~$ shairport-sync -V
4.3.1-24-g7e0e3af6-AirPlay2-smi10-OpenSSL-Avahi-ALSA-soxr-sysconfdir:/etc
dietpi@iot-rpi4-personal-enet:~$ sudo nano /etc/shairport-sync.conf
dietpi@iot-rpi4-personal-enet:~$ sudo shairport-sync --statistics -vv
         0.000362759 "shairport.c:579" looking for configuration file at full path "/etc/shairport-sync.conf"
         0.000969759 "shairport.c:2252" Startup in AirPlay 2 mode, with features 0x405c4a00,0x1c340 on device "xyz".
         0.000073222 "shairport.c:2291" Version String: "4.3.1-24-g7e0e3af6-AirPlay2-smi10-OpenSSL-Avahi-ALSA-soxr-sysconfdir:/etc"
         0.000015760 "shairport.c:2310" Command Line: "shairport-sync --statistics -vv".
         0.000048463 "shairport.c:2317" libsodium initialised.
         0.000244333 "shairport.c:2342" libgcrypt initialised.
         0.000021889 "shairport.c:2346" Log Verbosity is 2.
         0.000016611 "audio_alsa.c:1004" alsa: init() -- alsa_backend_state => abm_disconnected.
         0.000011981 "audio_alsa.c:1021" alsa: alsa_maximum_stall_time of 0.200000 sec.
         0.000038112 "audio_alsa.c:1175" alsa output rate is 44100 frames per second
         0.000018981 "audio_alsa.c:1310" alsa: disable_standby_mode is "never".
         0.000013204 "audio_alsa.c:1314" alsa: disable_standby_mode_silence_threshold is 0.040000 seconds.
         0.000012889 "audio_alsa.c:1316" alsa: disable_standby_mode_silence_scan_interval is 0.004000 seconds.
         0.000017722 "audio_alsa.c:1356" alsa: output device name is "hw:Loopback,0".
         0.000230333 "shairport.c:2361" The processor is running little-endian.
         0.000023722 "shairport.c:2394" disable_resend_requests is off.
         0.000023649 "shairport.c:2395" diagnostic_drop_packet_fraction is 0.000000. A value of 0.0 means no packets will be dropped d                                                   eliberately.
         0.000038111 "shairport.c:2399" statistics_requester status is 1.
         0.000029407 "shairport.c:2404" rtsp listening port is 7000.
         0.000029111 "shairport.c:2405" udp base port is 6001.
         0.000035334 "shairport.c:2406" udp port range is 10.
         0.000036037 "shairport.c:2407" player name is "Iot-rpi4-personal-enet".
         0.000043740 "shairport.c:2408" backend is "alsa".
         0.000032445 "shairport.c:2409" run_this_before_play_begins action is "(null)".
         0.000032481 "shairport.c:2410" run_this_after_play_ends action is "(null)".
         0.000032204 "shairport.c:2411" wait-cmd status is 0.
         0.000034778 "shairport.c:2412" run_this_before_play_begins may return output is 0.
         0.000032574 "shairport.c:2413" run_this_if_an_unfixable_error_is_detected action is "(null)".
         0.000032926 "shairport.c:2415" run_this_before_entering_active_state action is  "(null)".
         0.000032592 "shairport.c:2417" run_this_after_exiting_active_state action is  "(null)".
         0.000013037 "audio_alsa.c:2039" keep_dac_busy is now "no"
         0.000035000 "shairport.c:2419" active_state_timeout is  10.000000 seconds.
         0.000059241 "shairport.c:2420" mdns backend "(null)".
         0.000030482 "shairport.c:2421" userSuppliedLatency is 0.
         0.000035000 "shairport.c:2422" interpolation setting is "auto".
         0.000013555 "shairport.c:2426" interpolation soxr_delay_threshold is 30000000.
         0.000011019 "shairport.c:2427" resync time is 0.050000 seconds.
         0.000011203 "shairport.c:2428" resync recovery time is 0.100000 seconds.
         0.000011148 "shairport.c:2429" allow a session to be interrupted: 0.
         0.000010908 "shairport.c:2430" busy timeout time is 20.
         0.000010444 "shairport.c:2431" drift tolerance is 0.010000 seconds.
         0.000012741 "shairport.c:2432" password is "(null)".
         0.000011870 "shairport.c:2433" default airplay volume is: 0.000000.
         0.000012704 "shairport.c:2434" high threshold airplay volume is: -16.000000.
         0.000013204 "shairport.c:2436" check for higher-than-threshold volume for new play session is disabled.
         0.000012555 "shairport.c:2442" ignore_volume_control is 1.
         0.000012186 "shairport.c:2446" volume_max_db is not set
         0.000011833 "shairport.c:2447" volume range in dB (zero means use the range specified by the mixer): 0.
         0.000012593 "shairport.c:2449" volume_range_combined_hardware_priority (1 means hardware mixer attenuation is used first) is                                                    0.
         0.000012944 "shairport.c:2453" playback_mode is 0 (0-stereo, 1-mono, 1-reverse_stereo, 2-both_left, 3-both_right).
         0.000012352 "shairport.c:2455" disable_synchronization is 0.
         0.000011889 "shairport.c:2456" use_mmap_if_available is 1.
         0.000011796 "shairport.c:2457" output_format automatic selection is disabled.
         0.000012519 "shairport.c:2460" output_format is "S32_LE".
         0.000011814 "shairport.c:2461" output_rate automatic selection is disabled.
         0.000011982 "shairport.c:2464" output_rate is 44100.
         0.000011963 "shairport.c:2465" audio backend desired buffer length is 0.400000 seconds.
         0.000012574 "shairport.c:2467" audio_backend_buffer_interpolation_threshold_in_seconds is 0.120000 seconds.
         0.000013000 "shairport.c:2469" audio backend latency offset is 0.400000 seconds.
         0.000012555 "shairport.c:2471" audio backend silence lead-in time is "auto".
         0.000012074 "shairport.c:2475" zeroconf regtype is "_raop._tcp".
         0.000012463 "shairport.c:2476" decoders_supported field is 1.
         0.000011871 "shairport.c:2477" use_apple_decoder is 0.
         0.000011704 "shairport.c:2478" alsa_use_hardware_mute is 0.
         0.000011777 "shairport.c:2482" no special mdns service interface was requested.
         0.000029685 "shairport.c:2485" configuration file name "/etc/shairport-sync.conf" resolves to "/etc/shairport-sync.conf".
         0.000013945 "shairport.c:2515" loudness is 0.
         0.000011111 "shairport.c:2516" loudness reference level is -20.000000
         0.000176611 "ptp-utilities.c:223" Send control message to NQPTP: "/nqptp T"
         0.000206908 "ptp-utilities.c:163" ptp_shm_interface_open with mapped_addr = 0
         0.000121963 "ptp-utilities.c:194" ptp_shm_interface_open -- success!
         0.000092129 "shairport.c:2643" NQPTP is online.
         0.000361204 "activity_monitor.c:163" am_state: am_inactive
         0.004950648 "mdns_avahi.c:220" avahi: service 'xyz@Iot-rpi4-personal-enet' group is not yet committed.
         0.002075259 "mdns_avahi.c:268" avahi: avahi_entry_group_commit 0
         0.000329815 "mdns_avahi.c:463" avahi_dacp_monitor_start Avahi DACP monitor successfully started
         0.000289352 "mdns_avahi.c:224" avahi: service 'xyz@Iot-rpi4-personal-enet' group is registering.
         0.942155462 "mdns_avahi.c:191" avahi: service 'xyz@Iot-rpi4-personal-enet' successfully added.
         0.551664815 "shairport.c:248" soxr_delay: 2580975 nanoseconds, soxr_delay_threshold: 30 milliseconds.
         0.000074241 "shairport.c:255" "soxr" interpolation has been chosen.
         8.300678235 "rtsp.c:716" No active connections.
         0.000068389 "rtsp.c:723" Airplay Volume for new connections is 0.000000.
         0.000224500 "rtsp.c:5598" Connection 1: New connection from 10.0.10.157:36532 to self at 10.0.10.175:7000.
         0.000657537 "rtsp.c:5182" Connection 1: Received an RTSP Packet of type "GET":
         0.000072315 "rtsp.c:5184"   Type: "CSeq", content: "1"
         0.000014889 "rtsp.c:5184"   Type: "User-Agent", content: "Linux"
         0.000013130 "rtsp.c:5184"   Type: "Client-Instance", content: "yyyyyyyyyyyy"
         0.000012740 "rtsp.c:5184"   Type: "DACP-ID", content: "yyyyyyyyyyyy"
         0.000011408 "rtsp.c:5184"   Type: "Active-Remote", content: "20073886"
         0.000011629 "rtsp.c:5184"   No Content Plist. Content length: 0.
         0.000015260 "rtsp.c:2021" Connection 1: GET /info :: Content-Length 0
         0.000011314 "rtsp.c:2023" GET request
         0.000011686 "rtsp.c:2023"   Type: "CSeq", content: "1"
         0.000011555 "rtsp.c:2023"   Type: "User-Agent", content: "Linux"
         0.000061204 "rtsp.c:2023"   Type: "Client-Instance", content: "yyyyyyyyyyyy"
         0.000016352 "rtsp.c:2023"   Type: "DACP-ID", content: "yyyyyyyyyyyy"
         0.000010629 "rtsp.c:2023"   Type: "Active-Remote", content: "20073886"
         0.000010797 "rtsp.c:2023"   No Content Plist. Content length: 0.
         0.000011277 "rtsp.c:1664" GET /info:
         0.000010278 "rtsp.c:1664"   Type: "CSeq", content: "1"
         0.000010297 "rtsp.c:1664"   Type: "User-Agent", content: "Linux"
         0.000011351 "rtsp.c:1664"   Type: "Client-Instance", content: "yyyyyyyyyyyy"
         0.000010815 "rtsp.c:1664"   Type: "DACP-ID", content: "yyyyyyyyyyyy"
         0.000073926 "rtsp.c:1664"   Type: "Active-Remote", content: "20073886"
         0.000022648 "rtsp.c:1664"   No Content Plist. Content length: 0.
         0.000228445 "rtsp.c:1803" GET /info Stage 2 Response
         0.000048666 "rtsp.c:1803"   Response Code: 501.
         0.000016519 "rtsp.c:1803"   Type: "CSeq", content: "1"
         0.000013630 "rtsp.c:1803"   Type: "Server", content: "AirTunes/366.0"
         0.000012166 "rtsp.c:1803"   Type: "Content-Type", content: "application/x-apple-binary-plist"
         0.000086222 "rtsp.c:1803"   Content Plist (as XML):
--
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
        <key>audioLatencies</key>
        <array>
                <dict>
                        <key>inputLatencyMicros</key>
                        <integer>0</integer>
                        <key>outputLatencyMicros</key>
                        <integer>400000</integer>
                        <key>type</key>
                        <integer>100</integer>
                </dict>
                <dict>
                        <key>audioType</key>
                        <string>default</string>
                        <key>inputLatencyMicros</key>
                        <integer>0</integer>
                        <key>outputLatencyMicros</key>
                        <integer>400000</integer>
                        <key>type</key>
                        <integer>100</integer>
                </dict>
                <dict>
                        <key>audioType</key>
                        <string>media</string>
                        <key>inputLatencyMicros</key>
                        <integer>0</integer>
                        <key>outputLatencyMicros</key>
                        <integer>400000</integer>
                        <key>type</key>
                        <integer>100</integer>
                </dict>
                <dict>
                        <key>audioType</key>
                        <string>media</string>
                        <key>inputLatencyMicros</key>
                        <integer>0</integer>
                        <key>outputLatencyMicros</key>
                        <integer>400000</integer>
                        <key>type</key>
                        <integer>102</integer>
                </dict>
        </array>
        <key>keepAliveLowPower</key>
        <true/>
        <key>keepAliveSendStatsAsBody</key>
        <true/>
        <key>manufacturer</key>
        <string>Shairport Sync</string>
        <key>nameIsFactoryDefault</key>
        <false/>
        <key>protocolVersion</key>
        <string>1.1</string>
        <key>sdk</key>
        <string>AirPlay;2.0.2</string>
        <key>sourceVersion</key>
        <string>366.0</string>
        <key>statusFlags</key>
        <integer>4</integer>
        <key>features</key>
        <integer>777</integer>
        <key>deviceID</key>
        <string>xyz</string>
        <key>pi</key>
        <string>555-d464-4463-a7fc-555</string>
        <key>name</key>
        <string>Iot-rpi4-personal-enet</string>
        <key>model</key>
        <string>Shairport Sync</string>
</dict>
</plist>
--
         0.000573056 "rtsp.c:5243" Connection 1: RTSP Response:
         0.000025518 "rtsp.c:5244"   Response Code: 200.
         0.000011482 "rtsp.c:5244"   Type: "CSeq", content: "1"
         0.000010463 "rtsp.c:5244"   Type: "Server", content: "AirTunes/366.0"
         0.000012037 "rtsp.c:5244"   Type: "Content-Type", content: "application/x-apple-binary-plist"
         0.000080944 "rtsp.c:5244"   Content Plist (as XML):
--
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
        <key>audioLatencies</key>
        <array>
                <dict>
                        <key>inputLatencyMicros</key>
                        <integer>0</integer>
                        <key>outputLatencyMicros</key>
                        <integer>400000</integer>
                        <key>type</key>
                        <integer>100</integer>
                </dict>
                <dict>
                        <key>audioType</key>
                        <string>default</string>
                        <key>inputLatencyMicros</key>
                        <integer>0</integer>
                        <key>outputLatencyMicros</key>
                        <integer>400000</integer>
                        <key>type</key>
                        <integer>100</integer>
                </dict>
                <dict>
                        <key>audioType</key>
                        <string>media</string>
                        <key>inputLatencyMicros</key>
                        <integer>0</integer>
                        <key>outputLatencyMicros</key>
                        <integer>400000</integer>
                        <key>type</key>
                        <integer>100</integer>
                </dict>
                <dict>
                        <key>audioType</key>
                        <string>media</string>
                        <key>inputLatencyMicros</key>
                        <integer>0</integer>
                        <key>outputLatencyMicros</key>
                        <integer>400000</integer>
                        <key>type</key>
                        <integer>102</integer>
                </dict>
        </array>
        <key>keepAliveLowPower</key>
        <true/>
        <key>keepAliveSendStatsAsBody</key>
        <true/>
        <key>manufacturer</key>
        <string>Shairport Sync</string>
        <key>nameIsFactoryDefault</key>
        <false/>
        <key>protocolVersion</key>
        <string>1.1</string>
        <key>sdk</key>
        <string>AirPlay;2.0.2</string>
        <key>sourceVersion</key>
        <string>366.0</string>
        <key>statusFlags</key>
        <integer>4</integer>
        <key>features</key>
        <integer>777</integer>
        <key>deviceID</key>
        <string>xyz</string>
        <key>pi</key>
        <string>555-d464-4463-a7fc-555</string>
        <key>name</key>
        <string>Iot-rpi4-personal-enet</string>
        <key>model</key>
        <string>Shairport Sync</string>
</dict>
</plist>
--
         0.000597204 "rtsp.c:1522" Responding with content of length 587
         0.004121870 "rtsp.c:5011" Connection 1: unspecified stream rtsp_conversation_thread_func_cleanup_function called.
         0.000063649 "rtsp.c:2641" Connection 1: TEARDOWN unspecified stream connection.
         0.000015796 "rtsp.c:5043" Connection 1: terminating -- closing RTSP connection socket 8: from 10.0.10.157:36532 to self at 10                                                   .0.10.175:7000.
         0.000416667 "rtsp.c:5110" Connection 1: Closed.
         0.000041555 "rtsp.c:5320" Connection 1: RTSP thread exit.
^C        14.457345399 "shairport.c:1745" exit on SIGINT
         0.000239574 "rtsp.c:5346" rtsp_listen_loop_cleanup_handler called.
         0.000032407 "rtsp.c:535" Connection 1: not cancelled.
         0.000014389 "rtsp.c:5352" closing socket 3.
         0.000062574 "rtsp.c:5352" closing socket 4.
         0.000145204 "shairport.c:1588" exit function called...
         0.000020815 "shairport.c:1598" Stopping the activity monitor.
         0.000012704 "activity_monitor.c:243" activity_monitor_stop begin. state: 0, player_state: 0.
         0.000142555 "activity_monitor.c:250" activity_monitor_stop complete
         0.000021796 "shairport.c:1600" Stopping the activity monitor done.
         0.000012612 "shairport.c:1646" Deinitialise the audio backend.
         0.000028648 "audio_alsa.c:1373" Cancel buffer monitor thread.
         0.000121685 "shairport.c:1648" Deinitialise the audio backend done.
         0.000018093 "shairport.c:1654" Waiting for SoXr timecheck to terminate...
         0.000082074 "shairport.c:1657" Waiting for SoXr timecheck to terminate done
         0.000019222 "ptp-utilities.c:206" ptp_shm_interface_close
         0.000064518 "mdns_avahi.c:517" avahi_dacp_monitor_stop Avahi DACP monitor successfully stopped
         0.000017352 "mdns_avahi.c:414" avahi_unregister.
         0.000010834 "mdns_avahi.c:416" avahi: stop the threaded poll.
         0.000134222 "mdns_avahi.c:420" avahi: free the client.
         0.000121407 "mdns_avahi.c:426" avahi: free the threaded poll.
         0.000042982 "mdns_avahi.c:434" avahi: free the service name.
         0.000013426 "mdns_avahi.c:441" avahi: free the ap2 service_name.
         0.000010666 "mdns_avahi.c:447" avahi free text_record_string_list
         0.000014759 "mdns_avahi.c:454" avahi free ap_2text_record_string_list
         0.000012000 "shairport.c:1725" normal exit

System Information.

RPi4 (4GB) OS: debian Bookworm uname -a: Linux iot-rpi4-personal-enet 6.1.21-v8+ #1642 SMP PREEMPT Mon Apr 3 17:24:16 BST 2023 aarch64 GNU/Linux

Output = "hw:Loopback,0" and functions OK when source is iPhone or AirMusic app.

Configuration Information.

>> Display Config Start.

From "uname -a":
 Linux iot-rpi4-personal-enet 6.1.21-v8+ #1642 SMP PREEMPT Mon Apr  3 17:24:16 BST 2023 aarch64 GNU/Linux

From /etc/os-release:
 Debian GNU/Linux 12 (bookworm)

From /sys/firmware/devicetree/base/model:
 Raspberry Pi 4 Model B Rev 1.4

Shairport Sync Version String:
 4.3.1-24-g7e0e3af6-AirPlay2-smi10-OpenSSL-Avahi-ALSA-soxr-sysconfdir:/etc

Command Line:
 shairport-sync --displayConfig

Configuration File:
 /etc/shairport-sync.conf

Configuration File Settings:
 general :
 {
   drift_tolerance_in_seconds = 0.01;
   ignore_volume_control = "yes";
   default_airplay_volume = 0.0;
   audio_backend_latency_offset_in_seconds = 0.4;
   audio_backend_buffer_desired_length_in_seconds = 0.4;
 };
 sessioncontrol :
 {
   session_timeout = 20;
 };
 alsa :
 {
   output_device = "hw:Loopback,0";
   output_rate = 44100;
   output_format = "S32_LE";
   use_precision_timing = "no";
 };
 metadata :
 {
   enabled = "no";
   include_cover_art = "no";
 };

>> Display Config End.
>> Goodbye!

PulseAudio or PipeWire installed?

How did you install Shairport Sync?

Built from source

Check previous issues

mikebrady commented 1 year ago

Thanks for the post. Shairport Sync doesn't support the NTP variant of AirPlay 2, I'm afraid.

It seems that AirPlay 2 allows two different timing systems -- one based on a variant of PTP and one based on a variant of the NTP protocol (but not NTP itself). The still-in-use earlier version of of AirPlay (aka "Classic AirPlay", aka "AirPlay 1", aka "AirTunes 2") uses an NTP variant also.

Shairport Sync handles the PTP-based version of AirPlay 2 only. Until now, I had never actually come across an NTP variant of AirPlay 2, apart from (AFAIR) some support for it in OwnTone -- you might want to check with those guys.

FWIW, Shairport Sync does support Classic AirPlay in AirPlay 2 mode, so if you can persuade the Wiim Pro to use a Classic AirPlay link to Shairport Sync, it would work.

I don't know of a way to signal to the Wiim Pro to use another protocol.

ralph-ralph0 commented 1 year ago

Thank you for your reply!

I suspect (but don't know for sure) that the WiiM Pro isn't a MFi licensee, so it's likely they use something like OwnTone or other daap variant to "cast" AP1 and/or 2. Going with that assumption...

In issue #1710 it seems there's a work-around for the OwnTone/NTP problem (AFIU to enable _raop on OwnTone side) -- but the WiiM device's configs are closed. I'll try longer term to convince the WiiM Pro developers to consider this change if applicable (yet I don't know the unintended side-effects of that work-around).

Meanwhile on the shairport-sync end, are there any configs I can use to force shairport to only negotiate Classic AirPlay protocol with shairport-sync in AirPlay 2 mode? (I already tried advertising only _raop.tcp, port = 5000 for Airplay 1).

Else the only way to "force" Classic AirPlay is to build shairport-sync without AirPlay 2, correct?

ralph-ralph0 commented 1 year ago

Building shairport-sync in AirPlay1 mode, the device was not visible on the network to the WiiM Pro at all, so I couldn't test whether the exchange would revert to PTP (shairport-sync had previously been "visible" to WiiM in Airplay2 mode).

Shairport-sync in AP1 mode properly advertises as _raop._tcp on port 5000 (and I assume correctly with no _airplay._tcp service advertised); other Airplay devices could "see" shairport-sync via Avahi and stream to it no problem.

Fussing with variations of regtype on shairport-sync didn't enable WiiM to "see" it. Even though WiiM is claimed to be Airplay and Airplay 2 compatible.

mikebrady commented 1 year ago

Thanks for the update. Like you, I suspect that the WiiM Pro isn't a MFi licensee.

At this time, there aren't any plans to add AirPlay 2 functionality to Shairport Sync.

ralph-ralph0 commented 12 months ago

Am still puzzling over why shairport-sync in "Classic/Airplay 1" mode can't even be "seen" by WiiM during service discovery, but is "seen" by iPhone, AirMusic, etc.

I'll close this issue while I kick this over to WiiM devs. Will update if there's useful info.