comparison deps/Platinum/CHANGELOG.txt @ 0:3425707ddbf6

Initial import (hopefully this mercurial stuff works...)
author fraserofthenight
date Mon, 06 Jul 2009 08:06:28 -0700
parents
children
comparison
equal deleted inserted replaced
-1:000000000000 0:3425707ddbf6
1 Platinum 0.4.9
2 --------------
3 added: PlatinumiPhone target to Platinum.xcodeproj
4 changed: PlatinumApps.xcodeproj now depends on Platinum.xcodeproj
5 changed: PLT_MediaBrowser and PLT_MediaController now asks delegate before subscribing to events to let a chance to decide if device is worth listening to events
6 changed: renamed PLT_MediaBrowserListener to PLT_MediaBrowserDelegate and PLT_MediaControllerListener to PLT_MediaControllerDelegate
7 changed: check for new event to notify every 100ms instead of 10ms, also reduce link list modifications to reduce allocatio/free
8 added: can now specify custom user-agent and server http header
9 fixed: missing didl resource if no protection attribute was set
10 fixed: can now stop/restart devices without restarting entire upnp stack
11 changed: honor Connection header from response if keep-alive is true
12 fixed: more PS3 support
13 added: now can specify initial port can be ignored if failed and try again with a random port
14 added: support for resolution in didl, can now prevent certain files from being advertised in didl, better mimetype support in FileServer
15 fixed: now aborts properly client socket tasks
16 removed: null/null in array, uses NPT_ARRAY_SIZE instead
17 removed: NPT_ERROR_INTERNAL result when closing a socket while still reading on it, now returns NPT_ERROR_EOS
18 added: support for icons (MediaConnect sample for PS3)
19 added: PLT_HttpRequestContext can hold a request and a context now
20 changed: better dlna support, can now use request information to decide what to return (important to support xbox 360, ps3, etc..)
21 fixed: XBox 360 not finding us anymore, don't hardcode same guid! and fix mp4 playback on 360
22
23 Platinum 0.4.8
24 --------------
25 fixed: XBox 360 and PS3 video playback
26 added: removed some FATAL logs, can pass path to MediaConnect cmd line
27 changed: changes to http server to support path without a query
28 added: frame streamer example (mjpeg live stream advertised via upnp)
29 changed: verified that content-length was indeed set on the entity before writing it, to avoid writing 0 when the length wasn't known (multipart)
30
31 Platinum 0.4.7
32 --------------
33 fixed: listener being called multiple times with same device when appearing or disapearing
34 added: dc:date support in didl
35 added: better dlna support for videos
36 changed: don't cache empty results in media cache
37 fixed: WMP 11 crash when unsubscribing
38 fixed: crash after 15 min due to not cleaning up properly interface list before reusing it
39 changed: allow for services with no actions (although not upnp compliant)
40 fixed: lock media cache before access
41 changed: switching to native eol
42 changed: fixed xcode proj, add delay to get description/scpd for Rhapsody to be happy
43 changed: uses HTTP 1.1 in server with keep-alive. Greatly improves performance
44 updated: license is now GPLv2 or later
45 changed: do not search, announce or respond on localhost anymore
46
47 Platinum 0.4.6
48 --------------
49 changed: upnp server now uses same port for upnp and serving files (helps with firewall)
50 added: upnp support for embedded devices
51 changed: upnp device description can now be modified according to request (user agent header)
52 fixed: better upnp eventing mechanism, can now pause eventing to set multiple state variables, and send update in a batch
53 changed: detect xbox and change description to pretend to be WMP
54 fixed: artist role attribute is not supposed to be in upnp namespace
55 updated: Neptune to support Unicode filenames
56 added: Sonos support! XBMC server can now be browsed by Sonos Desktop Controller and music can be played on multiple Sonos ZonePlayers all synchronously and streamed from XBMC. Sweeeeeeeeeeet!
57 fixed: deadlock on subscribe
58 fixed: crach on subscription cancellation
59 fixed: first event notification was sent to early and could be missed
60 fixed: UPnP Renderer Intel Validity Tool tests
61
62 Platinum 0.4.5
63 --------------
64 fixed: better embedded devices support
65 fixed: Unicode support on Win32 platforms
66 changed: now can pause eventing to set multiple state variables and resume eventing then
67
68 Platinum 0.4.3
69 --------------
70 fixed: vs2008 solution
71 fixed: mp3 invalid protocol
72
73 Platinum 0.4.2
74 --------------
75 changed: don't set an entity on request if no body is expected
76 added: support for PS3 (basic dlna support)
77 changed: MediaCrawler now derives from MediaConnect so that it's seen by XBox 360
78 fixed: now passes the proper reachable interface when subscribing to events by keeping track of which interface was used when retrieving a device description
79 fixed: gcc 4.2.3 errors (Ubuntu 8.04)
80 changed: removed all NPT_Integer references
81 fixed: didl parsing of resource with size > 2GB
82 changed: didl resource duration is now unsigned
83 added: support for SCons 1.0 (0.98.5)
84 fixed: support for files > 4GB
85 fixed: SIGPIPE errors on both Ubuntu and MacOSX
86 fixed: potential memory leaks reported by valgrind
87 changed: updated to use Neptune 1.0.1
88
89 Platinum 0.4.1
90 --------------
91 fixed: crash caused by typo when fixing gcc warnings, was adding the wrong http handler
92 changed: don't use an outside lock for requests in PltHttpClientTask which can cause delay and hang out when queuing requests in a row like when updating state (Thanks Andy B.!)
93 added: copyright 2008
94
95 Platinum 0.4.0
96 --------------
97 added: new PlatinumApps project for XCode
98 added: apple iphone target
99 fixed: fixing scons build, automatic stripping in release mode now
100 fixed: potential crash due to trying to use connector of a client that didn't exist anymore
101 added: support for Vs2008
102 fixed: leopard support with both 10.4 and 10.5 sdk installed
103 fixed: gcc 4 warnings
104 changed: renamed fopen_s to fopen_wrapper
105 fixed: Fix for unbuffered file streams on OSX (was callign setvbuf after seek)
106 added: Support for SO_REUSEPORT on OSX
107 added: Set NOSIGPIPE flag
108
109 Platinum 0.3.9
110 --------------
111 added: Xbox360 support!
112 fixed: warning appearing with gcc4 on macosx
113 fixed: leaks when getting ip addresses
114 added: new ring buffer stream and tests
115 changed: Browse to pass a flag instead of UPnP browse text flag
116 changed: Browse prototype
117 changed: switched to static crt
118 added: can now pass http port to FileMediaServerTest
119 added: more mediatypes (avi, divx) support
120 fixed: content-type not being set properly if file extension was uppercase
121 fixed: MediaCrawler prototypes due to changes to Browse signature
122 added: MediaConnect project
123 added: arm-unknown-linux config (iphone support)
124 added: RingBufferStream class
125 fixed: NPT_Xml now writes the xml header
126 changed: listen task now passed to Start/Stop function to have ctrlpoint, device remove themselves from it
127 changed: working on better subscriber support in ctrlpoints (switching to references)
128 removed: embedded devices support until we have a better idea on how to support it (is it DLNA compliant anyway?)
129 added: a PresentationUrl element to description only if present otherwise Intel UPnP DeviceSpy is confused!
130 added: avi & divx extension support to content-type
131 added: custom http chunk decoder even though we don't support HTTP 1.1 yet
132 fixed: server not reading socket info properly when receiving datagrams which would cause a device to respond to M-SEARCH requests on the wrong udp port (and Xbox360s to not discover our server!)
133 fixed: Http Server handlers seem to trigger only on the path of a url NOT including the query which means that SCPD Urls with queries currently don't work! For now we switch to not use queries in SCPD urls
134 changed: now announce and respond to search requests on loopback adapter
135 fixed: Task manager thread was not sleeping enough! now 100ms
136 added: ContentDirectorywSearchSCPD.xml SCPD (Xbox 360 needs Search !)
137 updated: latest Neptune
138 added: jpg content-type
139 fixed: now don't allow to start if specified port for server is in use already
140 added: more mimetype to class support
141 added: can now pass a port for the file server of PLT_FileMediaServer
142 changed: Device host and ctrl points now get their own task manager so that when they stop, all tasks stop so there's no need to keep track of running tasks
143 changed: ctrl point now issue a search at least on localhost if no interfaces were found
144 fixed: UPnP devices and ctrl points are now freed when stopped (removed)
145 fixed: UPnP devices and ctrl points can be restarted (reused) now
146 added: better support for icons
147 fixed: EventSubscribers now have their own task and try to reuse the socket (Connection Keep-Alive) when possible
148 changed: Service uses NPT_List instead of NPT_Arrays to improve manipulation of state vars
149 added: Can now use Connection keep-alive with HTTP/1.0 clients
150 added: State variables can now be moderated. Service has a task that monitors if vars have changed and send updates if it's time (according to moderation)
151 added: Service now supports the "LastChange" state variable
152 changed: PLT_SsdpInitMulticastIterator joins group on any interface
153 fixed: possible lock when stopping all tasks (lock, notify tasks to stop, unlock then wait for list to be empty)
154 added: some dlna support
155 changed: moved File Media server from PLT_MediaServer to PLT_FileMediaServer
156 added: placeholder for Search in PLT_MediaServer
157 changed: removed MediaRenderer and MediaServer projects, now all is in Platinum project
158 changed: moved MediaConnect source in Source/Devices
159 fixed: build to not include ../ in path.. hopefully fixing gcc 3.3.5 errors
160 added: MediaServer now sets variable rate
161 fixed: bug where subscribers were deleted all the time after first notification
162 fixed: eventing of moderated state variable changes
163 fixed: temporary hack for XBMC support of Xbox360, we urlencoded the ? to that the 360 doesn't strip out the query and then the query ends being parsed as part of the path
164 changed: didl now forces an empty upnp:artist
165 added: Search action to look for ContainerID instead of ObjectId in xml since that's what the xbox 360 sends!
166 changed: refactored to use NPT_HttpRequestContext instead of NPT_SocketInfo
167 added: new macosx target (universal)
168 fixed: use of NPT_CONFIG_THREAD_STACK_SIZE for xbox
169 added: can now reset the connector of a NPT_HttpClient
170 changed: Updates missing headers only if they're really missing (user_agent, connection, ..)
171 changed: Updated NPT_MessageQueue to reflect new blocking way
172 changed: Neptune Http server now uses reuse_address when binding
173 fixed: single quote in urls
174 changed: now can abort NPT_HttpServer
175 fixed: If a request is forwarded, don't try to send the body if there's no content length...
176 fixed: UPnP Renderer now receives moderated events properly
177 fixed: Platinum scons Build, added MediaConnect target
178 improved: HttpClientSocketTask now uses keep-alive so if the server is 1.1 or 1.0 with Connection: Keep-alive, it reuses the socket, useful for eventing
179 added: Split up MediaConnect support and services into separate class, now CUPnPServer derives from PLT_MediaConnect.
180 refactored: move httpserver in start/stop so that it actually stops and cleans up when the device is stopped
181 fixed: now starts a thread only when there's a need to event state variable changes to subscribers instead of in the ctor. Useful since the class is also used by ctrl points and they don't need to notify.
182 fixed: check that the body stream of a request is rewindable before trying to send a request on a keep-alive socket. If it fails, we wouldn't be able to resend it, so instead, we close the socket and reopen a new one.
183 added: new downloader class
184 fixed: potential deadlock when stopping upnp while devices are running
185 changed: made file server port public in PLT_FileMediaServer so that we can update/query it without recreating a new class (no need for setter/getter)
186
187 Platinum 0.3.8
188 ---------------
189
190 fixed: crash in MicroMediaController (ctrlpoint really) when devices go away and a new one reappear. The control point was not removing subscribers from its list for the removed device.
191 added: Visual Studio 2005 project files
192 changed: switched to using new Neptune Logging system
193 changed: PLT_DeviceHost now appends the ip address to friendly name if asked
194
195 Platinum 0.3.7
196 ---------------
197 changed: removed projects in the works from solution
198 changed: dont restrict an interface to have the MULTICAST flag to send multicast data. If it's not multicast, it just won't send it. Cygwin doesn't report MULTICAST flag properly on interfaces that are multicast so that's why.
199 fixed: clear SyncMediaBrowser cache for a device when it disappears
200 changed: put back interface matching in proxy using netmask
201 fixed: linux build
202 fixed: workaround Windows Media Player bug that replaces back slashes to forward slashes in a url query !
203 fixed: duplicate headers in crawler response
204 changed: fileserver now defaults to serving root "/" with all children so that crawler can use /foo.wma
205 changed: made ProcessFileRequest overridable for Crawler
206 changed: Mega update:
207 - revamped to use http handlers from Neptune
208 - extensive switch to using address instead of pointers for NPT_HttpRequest & NPT_HttpResponse
209 - using eventhandlers now in devicehost (static for desc & scpds + dynamic for control/event) and controlpoint (event notifications)
210 - fixed host advertising twice byebye on exit
211 - Moved DeviceHost and Ctrlpoint Start/Stop into protected. It's PLT_UPnP now that starts and stop a device (via Add/Remove..)
212 - Created templated PLT_HttpRequestHandler
213 fixed: 10 secs to get a M-SEARCH response is fine
214 fixed: make it possible to pass an address to send the response back from a search, this is necessary when the udp.connect didn't actually find out which local interface to use
215 fixed: now advertises on all interfaces even in broadcast
216 fixed: setting MX to 1 in proxy, setting extra header to make sure we don't loop more
217 changed: new ssdp proxy using broadcast instead of unicast, no need to keep track of unicasters anymore
218 changed: when using broadcast mode, try to use interface broadcast address instead of 255.255.255.255
219 changed: made presentation url public (so it can be overridden from the outside)
220 hacked: device icons
221 changed: better advertising in broadcast mode (less verbose)
222 fixed: crash when a device disappears while trying to unsubscribe
223 fixed: subscribers being added twice
224 fixed: no need to set random seed in task, must be done in threads instead (using thread id)
225 changed: added a media cache to cache data responses from servers to speed up
226 fixed: better event support (fixed a couple of bugs), unsubscribe on device remove, still need to implement subscription renewal
227 changed: improved NPT_Directory to read size & type with 1 call
228 fixed: assuming forward unix style delimiters in resource urls was wrong, we want to keep whatever we're passed, it may matter
229 changed: now can specify to keep file extension in item title
230 changed: can now put a list of UUIDs to ignore in a ctrl point
231 changed: now sends a search on localhost if no valid interfaces were found
232 changed: now supports broadcast announcements for devices (mainly used by XBOX)
233 fixed: changed callbackurls list to be NPT_List<NPT_String> instead of NPT_List<NPT_String*> for event subscribers to fix a weird crash
234 fixed: SsdpListenTask takes a true UdpSocket if broadcast mode set
235 changed: adding support of NPT_StringFinder for NPT_List<NPT_String> containers
236 changed: using a HttpUrl for base urls instead of string
237 changed: StreamHandler interface, now passing socket info to ModifyResource
238
239 Platinum 0.3.6
240 ---------------
241 - fixed list of devices not being cleared when ctrl point is stopped
242 - fixed setting bad content length when serving a file with a byte-range request causing
243 - filemediaserver now exposes one resource per network interface and put the proper one first (one the browse request was received on)
244 - start listening for ssdp when upnp starts and stops when it stops
245 - reversing back adding the Search method to ContentDirectory service
246 - rewrite of action processing after finding a major flaw due to parallel processing of multiple calls to the same action. Now each invocation of an action gets its own sets of arguments (in and out).
247
248 Platinum 0.3.5
249 ---------------
250 Fixes/Changes:
251 - updated directory structure so that everything falls under Build/Targets (even scons based stuff)
252 - Fixing ip address being 0.0.0.0 in media resources under cygwin in some cases
253 - switching to using HTTP/1.0 for http responses
254 - scons build output to Targets top level folder now
255 - fixed bug where files with no extensions were not advertised (linux)
256 - now strips the executables in Targets folder only in release build
257 - Fixed cygwin bug where devices wouldn't be detected when started after a Control Point. Was advertising on disconnected interfaces.
258 - Fixed logging wrong ip address, now defaults to 127.0.0.1 if no valid one found
259 - fixed bug in server socket task
260 - added back HttpClientTests to solution
261 - fixed bug in client socket task
262 - switch to using NPT_StringOutputStream instead of PLT_OutputStringStream
263 - improved PLT_Downloader
264 - started working on a SQLite abstraction layer for a better Media Server (work in progress)
265
266 Platinum 0.3.2
267 ---------------
268 Fixes/Changes:
269 - Tasks and TaskManager rewrote. No more housekeeping thread to cleanup tasks. Tasks are automatically cleaned up when done.
270 - Stopping a ControlPoint will also stop the SSDP search tasks.
271 - HttpServer can limit the number of connections (threads) it can handle at once.
272 - Didl processing rewrote. Didl objects are more C++ oriented now.
273 - Some progress in regards to DLNA validation. HTTP Server is 1.0 only (connections are closed immediately once all data has been sent. No more keep-alive support).
274 - Started working on Ozone (Sqlite3 abstraction layer)
275
276 Platinum 0.3.1
277 ---------------
278 Fixes/Changes:
279 - Fixed LightSample Test
280 - Fixed MediaRenderer Test
281 - Removed old source and project files to avoid confusion
282
283 Platinum 0.3.00
284 ---------------
285 Fixes/Changes:
286 - Added MacOSX support.
287 - Fixed socket abortion problem on Linux (using a pipe).
288 - Complete rewrite to use threads instead of interrupt driven round-robin. The benefit is that throughput is now greatly improved (for streaming especially).
289 - Addded a new App: MediaCrawler
290 - Split up AV MediaServer code. Now the FileMediaServer is one implementation of the AV MediaServer. More to follow.
291 - Added README, CHANGELOG, LICENSE files
292
293 Known issues:
294 - AV MediaServer Search not implemented yet.
295 - Http server does not use a thread pool. This can be a problem with hungry ControlPoints like the Intel Tools AV MediaController.
296
297 Platinum 0.2.00
298 ---------------
299 Fixes/Changes:
300 - Added support for Linux, Xbox, cygwin platforms (using Scons http://scons.org)
301 - Now using timeouts on sockets. Fixed search not being repeatly sent.
302 - Moved Neptune under ThirdParty folder
303
304 Known issues:
305 - Aborting on some platforms (linux/xbox) is not immediate. Sockets cannot be easily aborted by simply calling closesocket.
306
307 Platinum 0.1.00
308 ---------------
309 Initial Release