-
Notifications
You must be signed in to change notification settings - Fork 3
/
CHANGELOG
181 lines (139 loc) · 6.79 KB
/
CHANGELOG
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
0.9.2
- (spotraop) force webserver to bind to defined ports
- (spotraop) fix exec_request exiting on wrong beyond-first header
- (spotupnp) log potential incorrect/early notify calls
0.9.1
- UpnpResolveURL needs one extra byte if RelURL parameters does not start with a '/'
- alternate getting of TransportInfo and PositionInfo
- use setlocale() so that atof does not fail on '.'
0.9.0
- (spotupnp) scratch is dynamically allocated
- (spotupnp) on flow, allow icy with all codecs as long as player wants it (and user allowed)
- (spotupnp) only re-acquire state on play action completion. This is not needed on stop/pause and will create issues like fake stops
- (spotupnp) HTTP won't restart from 0 when fully served (case of Sonos asking the same track when no nextURI has been set already)
- (spotraop) clean config entries (a few remains from squeeze2raop)
0.8.7
- fix loglevels
- 'soptraop) update version number
0.8.6
- (spotupnp) on error, reset counter to 0 if player responds
0.8.5
- (spotupnp) when player timeout's, use its DescDocURL, not the UpdateData which is NULL...
0.8.4
- reset totalOut on flush() which is called when seeking as we don't change streamer.
- relax player deletion criteria: keep player if still download DescDoc (UPnP) or responding to ping (raop)
0.8.3
- chunked-encoding must an independent bool, set at the end of connect() (don't use local length either)
0.8.2
- (spotupnp) handle special HTTP case when range's offset is total cache
0.8.1
- (spotraop) fix crash upon player deletion
- (spotupnp) fix id3 for mp3 and don't send it
- (spotupnp) take a 20% on content-length when estimated
- (spotupnp) try to handle players that start by probing toward end of file to guess duration (fb2k, mp3 only)
- (spotupnp) send accept-range even with HEAD and 416
- (spotupnp) -C becomes -A for consistency
- set disc number to 0 for podcasts
0.8.0
- change URL format for better player compatibility
- refactor cache
- add -C 0/1/2 cache options
- remove manual tweaking of protocolInfo
- add track and disc number
0.7.0
- HTTP header parsing regression (failed Sonos pause)
- cache whole track on disk for HTTP range-request
- change default mode to chunk-encoding
- specifiy defaults on command line
0.6.2
- remove memory leak in cspot (only at exit)
- fix ^C crash due to misoerdering of stop functions
- update libraop with hopefully corrected alac encoder
0.6.1
- remove all memory leaks (except for cspot civetweb that is just upon exit and cannot be easily fixed)
- fix valgrind warnings (except dlopen which whould be a suppressed one)
- add codec extension to stream url
0.6.0
- add aac, vorbis and opus encoding
- update libcodecs
0.5.2
- (spotupnp) refactor codec class and fix mp3 encoding on small CPU platform
0.5.1
- fix queue multiple insertion
- update libraop
0.5.0
- (spotraop) add player (airplay) password management
- (spotupnp) better estimated birate
0.4.1
- (spotupnp) respond with a "410 Gone" when drained and close connection
- (spotupnp) duration offset is negative, so invert it when calculation real size for content-length
0.4.0
- (spotupnp) players doing open/close/open on GET where not served (Riva)
- (spotupnp) fix incomplete draining
- (spotupnp) add HTTP length of -2
0.3.3
- avoid gap when adding/removing items in the queue
0.3.2
- can't expect TRACK_INFO after a flush as we don't send notify
0.3.1
- FLUSH means no notify shall be sent (and stop accepting data)
0.3.0
- add -N to allow simple name transformation
0.2.7
- fix PREV on first track would hang player
- PREV go to previous only during first 3 seconds
- fix end of last track just pausing and not being to restart
- fix NEXT on last track not being able to restart
- catch-up with official cspot
0.2.6
- (spotupnp) fix Spotify podcast won't play
0.2.5
- (spotupnp) icy.remain must be zerp-initialized
0.2.4
- (spotupnp) HTTP initial receiver buffer can be bigger than 256...
- (spotupnp) when receiving HTTP garbage if already connected, don't close
- (spotupnp) we should not pop a drained streamer when cspot starts sending a new track. Otherwise, if n is playing, and cspot has sent n+1 (all in buffers), then it will start to try to send n+2. It's fine as we only accept 2 streamers but as soon as n is drained, we would pop it out, making some room allowing a UPnP SetNextURI, but n+1 likely has not started playing yet (which is fine) but we don't know if it even has started streaming. It shall be assumed that UPnP only accepts SetNextURI for n+2 after it has requested n+1, not just because it has fully received n. So if we wanted to better handle short tracks, we would need a callback from streamer when a track starts streaming so that we can immediately send another SetNextURI, instead of waiting for the streaming track to start actually playing
- (spotupnp) increase code buffer size to 4M otherwise we might not have enough data when NextURI starts and player might unexpectingly stops
0.2.3
- fix armv5, v6 and v7 throw exception issue because __cxa_get_globals is borken when crostools uses TLS (ThreadLocalStorage)
- catch connectWithRandomApp error to continue instead of crashing... (TLS errors)
- use cspot update that does not deadlock when disconnecting unresponsive player
- (spotupnp) delete player when flushing all!
- (spotupnp) some player sent out-of-order UPnP response that might cause misdetection of track change and led to removing all HTTPStreamers and crashing
0.2.2
- (spotupnp) terminate player at next update upon UPnP socket error
- (spotupnp) reset ErrorCount when creating new device
0.2.1
- restart in ZeroConf if authentication fails
0.2.0
- (spotupnp) add username/password + reusable credentials
- (spotupnp) fix port and range compliance
0.1.8
- (spotupnp) Fix deadlock on bye-bye => DelMRDevice should not try_lock (mutex is already locked and recursive anyway)
- (spotupnp) unify UPnP utility code with AirConnect
- (spotupnp) config file XML tag was still airupnp
- (spotraop) fix log of un-initialized string in case of exec_request error
0.1.7
- (spotraop) fix crash due to joining a non-existing player thread at exit
- more longs in info instead of debug at exit
0.1.6
- (spotraop) delay daap/artwork activation time
- just follow spotupnp version
0.1.5
- (spotraop) device mutex is recursive so we can have shadowRequest and spotNotify called in the same thread
- (spotupnp) same as above, but we had a trylock in shadow before, make sure this still does work
0.1.4
- handle remote commands for PLAY_TOGGLE, NEXT and PREVIOUS
0.1.3
- longer timeout in cross-net otherwise some ATV fail to pair
0.1.2
- (spotraop) read name from config file
- (spotraop) add keep-alive for HomePod
0.1.1
- make spotraop truly static
0.1.0
- reset versioning
1.0.1
- fix pause
0.0.1
- initial release