Closed simeonpilgrim closed 7 years ago
Ok, so moved the device next to server, and it behaved the same, then I change to not using flac and 500ms latency, instead of 1000ms and it definitly faster, but the error still happens...
[13:34:29.602] read_line:975 fd: 480 read error: Error 0
which is not really the fault of your windows port, as best I can tell.
It seems to me it's really the SB slamming the HTTP door at the helper. It's strange that moving away from flac helps. 500 ms instead of 1000 ms definitively causes the helper to "release" RTP (UDP) frames into HTTP(TCP) packets sooner, but you're on the edge here as there is less room for requesting RTP packets re-send when some are missed. Maybe the SB3 does not like my response to its 1st GET - I'll try with my SB3 as well, never used it before
[edit]: no, my SB3 does not close the socket to re-open it right after. Maybe you coudl try to Wireshark a bit what's happening
ok, I can try that..
both http sessions are identical from the transmitted data perspective.
except the first one fails before getting to equivalent of Packet 489
GET /185784643567004b7880577bc486a659_stream.wav HTTP/1.0
Cache-Control: no-cache
Connection: close
Accept: */*
Host: 192.168.178.27:50010
User-Agent: iTunes/4.7.1 (Windows; N; Windows 10; 8664; EN; cp1252) SqueezeCenter, Squeezebox Server, Logitech Media Server/7.9.0/1488878280
Icy-Metadata: 1
HTTP/1.0 200 OK
Server: HairTunes
Connection: close
Content-Type: audio/L16;rate=44100;channels=2
.................................................................................................................................................................................................................................................................................................................. ... ... ... ..................................................................... ...
...
.
char peer0_0[] = { /* Packet 338 */
char peer1_0[] = { /* Packet 339 */
char peer0_1[] = { /* Packet 351 */
char peer0_2[] = { /* Packet 352 */
0x47, 0x45, 0x54, 0x20, 0x2f, 0x31, 0x38, 0x35,
0x37, 0x38, 0x34, 0x36, 0x34, 0x33, 0x35, 0x36,
0x37, 0x30, 0x30, 0x34, 0x62, 0x37, 0x38, 0x38,
0x30, 0x35, 0x37, 0x37, 0x62, 0x63, 0x34, 0x38,
0x36, 0x61, 0x36, 0x35, 0x39, 0x5f, 0x73, 0x74,
0x72, 0x65, 0x61, 0x6d, 0x2e, 0x77, 0x61, 0x76,
0x20, 0x48, 0x54, 0x54, 0x50, 0x2f, 0x31, 0x2e,
0x30, 0x0d, 0x0a, 0x43, 0x61, 0x63, 0x68, 0x65,
0x2d, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c,
0x3a, 0x20, 0x6e, 0x6f, 0x2d, 0x63, 0x61, 0x63,
0x68, 0x65, 0x0d, 0x0a, 0x43, 0x6f, 0x6e, 0x6e,
0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x20,
0x63, 0x6c, 0x6f, 0x73, 0x65, 0x0d, 0x0a, 0x41,
0x63, 0x63, 0x65, 0x70, 0x74, 0x3a, 0x20, 0x2a,
0x2f, 0x2a, 0x0d, 0x0a, 0x48, 0x6f, 0x73, 0x74,
0x3a, 0x20, 0x31, 0x39, 0x32, 0x2e, 0x31, 0x36,
0x38, 0x2e, 0x31, 0x37, 0x38, 0x2e, 0x32, 0x37,
0x3a, 0x35, 0x30, 0x30, 0x31, 0x30, 0x0d, 0x0a,
0x55, 0x73, 0x65, 0x72, 0x2d, 0x41, 0x67, 0x65,
0x6e, 0x74, 0x3a, 0x20, 0x69, 0x54, 0x75, 0x6e,
0x65, 0x73, 0x2f, 0x34, 0x2e, 0x37, 0x2e, 0x31,
0x20, 0x28, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77,
0x73, 0x3b, 0x20, 0x4e, 0x3b, 0x20, 0x57, 0x69,
0x6e, 0x64, 0x6f, 0x77, 0x73, 0x20, 0x31, 0x30,
0x3b, 0x20, 0x38, 0x36, 0x36, 0x34, 0x3b, 0x20,
0x45, 0x4e, 0x3b, 0x20, 0x63, 0x70, 0x31, 0x32,
0x35, 0x32, 0x29, 0x20, 0x53, 0x71, 0x75, 0x65,
0x65, 0x7a, 0x65, 0x43, 0x65, 0x6e, 0x74, 0x65,
0x72, 0x2c, 0x20, 0x53, 0x71, 0x75, 0x65, 0x65,
0x7a, 0x65, 0x62, 0x6f, 0x78, 0x20, 0x53, 0x65,
0x72, 0x76, 0x65, 0x72, 0x2c, 0x20, 0x4c, 0x6f,
0x67, 0x69, 0x74, 0x65, 0x63, 0x68, 0x20, 0x4d,
0x65, 0x64, 0x69, 0x61, 0x20, 0x53, 0x65, 0x72,
0x76, 0x65, 0x72, 0x2f, 0x37, 0x2e, 0x39, 0x2e,
0x30, 0x2f, 0x31, 0x34, 0x38, 0x38, 0x38, 0x37,
0x38, 0x32, 0x38, 0x30, 0x0d, 0x0a, 0x49, 0x63,
0x79, 0x2d, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61,
0x74, 0x61, 0x3a, 0x20, 0x31, 0x0d, 0x0a, 0x0d,
0x0a };
char peer1_1[] = { /* Packet 358 */
0x48, 0x54, 0x54, 0x50, 0x2f, 0x31, 0x2e, 0x30,
0x20, 0x32, 0x30, 0x30, 0x20, 0x4f, 0x4b, 0x0d,
0x0a, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x3a,
0x20, 0x48, 0x61, 0x69, 0x72, 0x54, 0x75, 0x6e,
0x65, 0x73, 0x0d, 0x0a, 0x43, 0x6f, 0x6e, 0x6e,
0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x20,
0x63, 0x6c, 0x6f, 0x73, 0x65, 0x0d, 0x0a, 0x43,
0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x2d, 0x54,
0x79, 0x70, 0x65, 0x3a, 0x20, 0x61, 0x75, 0x64,
0x69, 0x6f, 0x2f, 0x4c, 0x31, 0x36, 0x3b, 0x72,
0x61, 0x74, 0x65, 0x3d, 0x34, 0x34, 0x31, 0x30,
0x30, 0x3b, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65,
0x6c, 0x73, 0x3d, 0x32, 0x0d, 0x0a, 0x0d, 0x0a };
char peer1_2[] = { /* Packet 489 */
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
is this still happening with recent version? (0.80.1)
[13:25:08.003] main:250 client: 192.168.178.20, ipc port 49460
[13:25:08.004] rtp_request_timing:653 [024C2140]: timing request now:2040421812 (port: 60270)
[13:25:08.004] rtp_request_timing:653 [024C2140]: timing request now:2040421812 (port: 60270)
[13:25:08.004] rtp_request_timing:653 [024C2140]: timing request now:2040421812 (port: 60270)
[13:25:08.007] rtp_thread_func:634 [024C2140]: Timing references local:2040421812, remote:83b40b57f2967ec7 (delta:0, sum:0, adjust:0, gaps:0)
[13:25:08.008] rtp_thread_func:634 [024C2140]: Timing references local:2040421812, remote:83b40b57f298ea23 (delta:-1, sum:-1, adjust:0, gaps:0)
[13:25:08.008] rtp_thread_func:634 [024C2140]: Timing references local:2040421812, remote:83b40b57f2b0fcf8 (delta:-1, sum:-2, adjust:0, gaps:0)
[13:25:08.084] http_thread_func:804 [024C2140]: got HTTP connection 444 (silent frames 250)
[13:25:08.087] handle_http:916 [024C2140]: received GET
[13:25:08.087] handle_http:926 [024C2140]: responding:
HTTP/1.0 200 OK
Server: HairTunes
Connection: close
Content-Type: audio/wav
[13:25:08.092] rtp_thread_func:559 [024C2140]: 1st sync packet received
[13:25:08.092] rtp_thread_func:563 [024C2140]: sync packet rtp_latency:1051325780 rtp:1051402955 remote ntp:83b40b5808723dfc, local time 2040421896 (now:2040421906)
[13:25:08.092] rtp_request_timing:653 [024C2140]: timing request now:2040421906 (port: 60270)
[13:25:08.096] rtp_thread_func:634 [024C2140]: Timing references local:2040421906, remote:83b40b58094110fa (delta:5, sum:3, adjust:0, gaps:0)
[13:25:08.135] rtp_thread_func:559 [024C2140]: 1st sync packet received
[13:25:08.135] rtp_thread_func:563 [024C2140]: sync packet rtp_latency:1051327682 rtp:1051404857 remote ntp:83b40b58137cc2c4, local time 2040421945 (now:2040421953)
[13:25:08.223] buffer_put_packet:427 [024C2140]: buffer fill status [level:65535] [W:11423 R:11424]
[13:25:08.259] hairtunes_flush:342 [024C2140]: FLUSH ignored as seqno (11424) <= ab_read (11424)
[13:25:08.409] http_thread_func:854 [024C2140]: spent 312 ms in send!
[13:25:08.564] buffer_get_frame:748 [024C2140]: buffer drain status [level:51] [W:11475 R:11424]
[13:25:09.154] rtp_thread_func:563 [024C2140]: sync packet rtp_latency:1051372659 rtp:1051449834 remote ntp:83b40b5918940ce8, local time 2040422965 (now:2040422968)
[13:25:10.175] rtp_thread_func:563 [024C2140]: sync packet rtp_latency:1051417646 rtp:1051494821 remote ntp:83b40b5a1dba3368, local time 2040423985 (now:2040423984)
[13:25:11.195] rtp_thread_func:563 [024C2140]: sync packet rtp_latency:1051462627 rtp:1051539802 remote ntp:83b40b5b22d76f48, local time 2040425005 (now:2040425000)
[13:25:11.195] rtp_request_timing:653 [024C2140]: timing request now:2040425000 (port: 60270)
[13:25:11.199] rtp_thread_func:634 [024C2140]: Timing references local:2040425000, remote:83b40b5b23c85e3d (delta:-10, sum:-7, adjust:0, gaps:0)
[13:25:12.215] rtp_thread_func:563 [024C2140]: sync packet rtp_latency:1051507610 rtp:1051584785 remote ntp:83b40b5c27f7a40c, local time 2040426016 (now:2040426031)
[13:25:12.247] buffer_put_packet:427 [024C2140]: buffer fill status [level:3] [W:11935 R:11932]
[13:25:12.250] buffer_get_frame:748 [024C2140]: buffer drain status [level:1] [W:11937 R:11936]
[13:25:13.235] rtp_thread_func:563 [024C2140]: sync packet rtp_latency:1051552593 rtp:1051629768 remote ntp:83b40b5d2d17d8cc, local time 2040427036 (now:2040427046)
[13:25:14.254] rtp_thread_func:563 [024C2140]: sync packet rtp_latency:1051597566 rtp:1051674741 remote ntp:83b40b5e32293130, local time 2040428056 (now:2040428062)
[13:25:15.275] rtp_thread_func:563 [024C2140]: sync packet rtp_latency:1051642559 rtp:1051719734 remote ntp:83b40b5f37584250, local time 2040429076 (now:2040429078)
[13:25:15.275] rtp_request_timing:653 [024C2140]: timing request now:2040429078 (port: 60270)
[13:25:15.277] rtp_thread_func:634 [024C2140]: Timing references local:2040429078, remote:83b40b5f37ed6777 (delta:-1, sum:-8, adjust:0, gaps:0)
[13:25:16.295] rtp_thread_func:563 [024C2140]: sync packet rtp_latency:1051687535 rtp:1051764710 remote ntp:83b40b603c6e1004, local time 2040430095 (now:2040430109)
[13:25:16.358] buffer_put_packet:427 [024C2140]: buffer fill status [level:0] [W:12447 R:12447]
[13:25:16.361] buffer_get_frame:748 [024C2140]: buffer drain status [level:4] [W:12452 R:12448]
[13:25:17.315] rtp_thread_func:563 [024C2140]: sync packet rtp_latency:1051732520 rtp:1051809695 remote ntp:83b40b6141913da4, local time 2040431115 (now:2040431125)
Fixed..
Good
When I start streaming I notice in the logs I always get the same error, which seems strange to me, looking at the code I cannot piece together what happening, but I have by SB3 on the other side of a powerline ethernet bridge, as wifi was inconsistent (yet apple tv is happy over both in same spot), and since going to the powerline bridge, the latency of seeing the SB3 as a airplay device takes 3-5 seconds and there is a latency of about that to start playing.. thus I started looking into the logs..
I could plug into ethernet next to server and see if I get there error's still (which might make them harmless)
server log from same period: