__ __ / /____ _ ____ ___ _____ ____ _ _____ / /_ _ _ / // __ `// __ `__ \ / ___// __ `// ___// __/ / /_/ // /_/ // / / / / // /__ / /_/ /(__ )/ /_ \____/ \__,_//_/ /_/ /_/ \___/ \__,_//____/ \__/ =================================================================== Revision History * Version 1.9.2 (Build 1.9.2.253) ------------------------------------------------------------------ - FIX: transcoder truncating end of audio on some files (OGG) * Version 1.9.1 (Build 1.9.1.252) ------------------------------------------------------------------ - ADD: Windows 8 compatibility - FIX: WASAPI capture performance enhancements - FIX: fixed Grooveshark UI crash on failed login * Version 1.9.0 (Build 1.9.0.244) ------------------------------------------------------------------ - ADD: Grooveshark integration - ADD: cleanup routines for plugin metadata - FIX: background color wrong for plugin configuration panels - FIX: adjusted some logging to trace level * Version 1.8.3 (Build 1.8.3.229) ------------------------------------------------------------------ - FIX: various performance enhancements in content directory svc - FIX: removed FLAC as available target for Virtual Soundcard * Version 1.8.2 (Build 1.8.2.227) ------------------------------------------------------------------ - ADD: additional software update error handling - FIX: build issue preventing software update check from running * Version 1.8.1 (Build 1.8.1.222) ------------------------------------------------------------------ - ADD: log level TRACE for verbose diagnostics logging - ADD: set default log level to DEBUG - ADD: moved some verbose logging to TRACE level - FIX: unhandled timing issue on Server Manager restarts (no HWND) - FIX: ProcessDataPipe refactor on stdin async writes, logging - FIX: updated copyright notice on device presentation web page - API: set default font on ConfigurationPanel - API: retooled StreamDataPipe (issues with 0-length network streams) - API: design-time issue with ConfigurationPanel (abstract) * Version 1.8.0 (Build 1.8.0.207) ------------------------------------------------------------------ - FIX: removed unnecessary service status notification in UI - FIX: fixed value decoding for PluginDataProvider selects - FIX: invalid UPnP BrowseMetadata response on Virtual Soundcard - FIX: Performing Artists container returning incorrect metadata - FIX: Folders container returning incorrect metadata - FIX: remote track type in iTunes library not handled (will skip until iCloud streaming support is available) - ADD: new logging system, log management features - ADD: new software update system - ADD: API - added method to request server restart from plugin configuration panel - ADD: API some obsolete / redundant code removed / refactored - ADD: API version upped to 3.0 - ADD: improved logging for failed UPnP actions - ADD: better handling of invalid UPnP search criteria - ADD: UI performance enhancements - ADD: link to plugin download page - ADD: visual indication that plugin is installed but fail to load - ADD: updated license.txt * Version 1.7.6 (Build 1.7.6.191) ------------------------------------------------------------------ - FIX: API - better error reporting when plugin load fails - FIX: Server Manager crashes when setting capture device dropdown list to invalid selection - FIX: bitrate wrong in metadata for 44.1kHz tracks - FIX: Virtual Soundcard reporting wrong bitrate when hardware mode is forced by user - FIX: byte order issue with WinMM capture samples - FIX: audioscrobbler submits tracks multiple times - ADD: reduced request timeout on device description HTTP GET's - ADD: better logging for device description timeouts * Version 1.7.5 (Build 1.7.5.187) ------------------------------------------------------------------ - FIX: API - handler returning more than request object count is demoted to warning - FIX: API - deprecated redundant handler overrides to add objects; added new overrides to use GetMetadata() implementations instead - FIX: API - StreamDataPipe is no longer abstract - FIX: API - misc. interface improvements & conveniences (API now 2.1) - FIX: bug in pipe factory, L16 stdin input wrong endianness - FIX: correct handling for UPnP SUBSCRIBE infinite timeout - FIX: addressed startup delay on Server Manager (diags refresh slow) - FIX: Server Manager UI performance during service start - FIX: HTTP response content type header fails to emit L16 MIME extensions - FIX: absolute device icon URL's are unhandled - FIX: null format in some album art (ID3 issue) - FIX: last.fm submissions not firing - FIX: scanner stats filecount inaccurate due to playlists - FIX: rescan single folder causes other folders to initialize - FIX: share folder last updated time not refreshing on inserts - ADD: improved data pipe error handling / logging - ADD: API - promoted playlists - ADD: API - plugin initialize / shutdown callbacks - ADD: full library rescan no longer necessary after upgrades * Version 1.7.0 (Build 1.7.0.175) ------------------------------------------------------------------ - ADD: new MediaHandler construct to API - ADD: media server overhaul - ADD: transcoding now supported on non-disk media - ADD: API overhaul - ADD: support for GIF images - ADD: album art support for podcasts - ADD: plugin installer - ADD: plugin administration user interface - ADD: FFmpeg upgraded to v0.8.3 - ADD: OGG transcode target support - ADD: changed user-agent evidence for Jamcast Player (Android) - FIX: internet discovery service ping failed due to bug in system configuration read bug - FIX: adjusted Android profile default audio properties - FIX: OPML listview dragdrop handler was not wired up - FIX: media request hangs when process data pipe has exited - FIX: db deadlock when playback during startup scan - FIX: RIFF header reports incorrect maximum stream length * Version 1.6.1 (Build 1.6.1.133) ------------------------------------------------------------------ - FIX: non-numeric input validation missing on UI fields - FIX: activation prompts for username instead of email address * Version 1.6 (Build 1.6.0.128) ------------------------------------------------------------------ - FIX: playlists container not returning correct number of objects - FIX: adjusted choice of image resizing algorithms - FIX: Last.fm submissions being lost when another client is scrobbling at the same time - FIX: absolute device presentation uri's not parsed properly - FIX: shortened retry interval on UI remoting initialization - FIX: parse bug in ID3 APIC tag (skip 'Description' field) - FIX: album containers without extended meta in some containers - FIX: content length wrong on transcoded streams - FIX: rearranged Network tab in Server Manager for clarity - FIX: MP3 target bitrate transcoder logging inaccurate - ADD: branding configuration / resources / build - ADD: duration parsing for OGG - ADD: WAV metadata parsing - ADD: Virtual Soundcard container to browse root - ADD: track objects now survive server restarts - ADD: device profile for Boxee - ADD: change "Filesystem" container to "Folders" - ADD: device profile for Russound Collage Media Manager - ADD: change defaults for EnableLocaterPing, AutoConfigureRouter * Version 1.5.1 (Build 1.5.1.111) ------------------------------------------------------------------ - FIX: UI version display issue - FIX: typo in GetCurrentConnectionInfo UPnP action response - FIX: locater service ping now off by default - FIX: added leading slash to icon paths in device description XML - FIX: LPCM mime type attributes unconditionally suppressed - FIX: incorrect HTTP Range response when seek attempted against non-seekable media resource - FIX: better error handling for NAT configurator - FIX: removed Pioneer/Denon system device profile in conflict with other devices using Bridgeco chipsets - FIX: wording on Remote Access section is confusing - FIX: missing 'Segoe UI' font causes Server Manager crash - FIX: same device repeated several times on Devices tab - FIX: better error handling for NAT test function - ADD: FLAC compression level registry hack (experimental) - ADD: Server Manager forget single / forget all devices function * Version 1.5 (Build 1.5.0.103) ------------------------------------------------------------------ - FIX: artist container incorrectly handled browse args count = 0 - FIX: incorrectly setting HTTP Accept-Ranges header for HTTP/1.0 - FIX: bug with HTTP compression - FIX: podcast bug when itunes:creator node doesn't exist in feed - FIX: database upgrade drops most user data - FIX: some special characters in user password break activation - FIX: install fails when shared path is empty or invalid - FIX: threading / UI responsiveness issues - FIX: app crash in WMA decoder - FIX: incorrect duration acquired from some VBR MP3's - FIX: directories not sorting properly in filesystem browse - FIX: Server Manager crashes when device icon is invalid - FIX: network watcher events firing incorrectly - FIX: serviceId's were wrong convention in XML device description - FIX: device identification overhaul - FIX: ignoring HTTP Range: 0- requests was a bad idea - ADD: notification dialogs when scanner jobs queued - ADD: wait dialog for installer activation - ADD: major update to SDK (brand-new extensibility library) - ADD: optional proxying of internet media - ADD: last.fm audioscrobbler - ADD: assorted Android-related enhancements - ADD: image transcoding / resizing - ADD: enhancements to device identification logic (UDN) - ADD: Server Manager double-click device to show properties - ADD: remote device authorization security mode - ADD: NAT configurator / remote access tester - ADD: locater services - ADD: device profile IsDlnaCompliant now defaults to True - ADD: prevent Windows from sleeping when streaming audio - ADD: on-demand MP3 resampling - ADD: automatic system notifications of new versions, etc. - ADD: system device profile for BubbleDS * Version 1.1 UPDATE (Build 1.1.1.66) ------------------------------------------------------------------ - FIX: using childcount = 0 in playlist container UPnP Browse returns nothing - FIX: issue with Xbox360, other clients that erroneously omit port number from HTTP Host request headers * Version 1.1 (Build 1.1.0.65) ------------------------------------------------------------------ - ADD: rescan folder / rescan all functionality from new context menu - ADD: shuffled Server Manager tabs around, added new Virtual Soundcard configuration tab - ADD: ability to specify wave capture device for systems with multiple audio adapters; configurable via Server Manager - ADD: accept DeviceDescription.xml for path to device description (foo_upnp compatibility hack for manually added servers) - ADD: system device profile for iPhone PlugPlayer app - ADD: catalog manager now reassociates nonshared media after shared folder added - ADD: enabled subscription item tooltips; removed URL column - ADD: foobar2000 device profile, icon - ADD: consolidated media/UPnP server to single network port - ADD: firewall rules for Windows Vista/7 Advanced Security - FIX: changing device DRM approval status crashes UI - FIX: changed catalog manager job poll interval from 5 to 1 second - FIX: Server Manager crashes when removing a shared folder that is currently being scanned - FIX: removing shared folder causes UI to freeze until operation is completed - FIX: various fixes to catalog manager in relation to playlist scanning, nonshared media, etc. - FIX: text encoding issues with file name hash during import - FIX: Vorbis DATE tag does not parse CCYY MM, CCYY MM DD - FIX: missing content length header on HTTP errors - FIX: configuration registry values always being written as REG_SZ - FIX: moved FLAC as a trancoding preference to the top - FIX: transcoder not handling audio/x-ms-wma to non-PCM conversion - FIX: incorrect handling for synchronization in ID3v2.4 tags - FIX: friendly name cut off on device list panel when too wide - FIX: 48x48 icons device now preferred; PNG icons preferred - FIX: built-in RSS feed cleanup * Version 1.0 (Build 1.0.0.43) ------------------------------------------------------------------ - FIX: support for x/y track format in Vorbis comments - FIX: licensing V1 changes * Beta 1.8 UPDATE (Build 0.9.8.33) ------------------------------------------------------------------ - FIX: ID3v2 unsync not implemented - FIX: ARP exception causes socket disconnect; return empty MAC address and continue instead - ADD: Yamaha RX Series Receiver system device profile - ADD: added "None" values to profile supported media type flags * Beta 1.8 (Build 0.9.8.30) ------------------------------------------------------------------ - FIX: bug in HTTP range request header parsing (seek from end) - FIX: event log sources for UI can't be created when UAC enabled (now created during elevated install process) - FIX: WMP12 PlayTo hack (WMP sending wrong ObjectID's in browse response) - ADD: media seek trick mode (attempt to solve some playback compatibility issues with devices that seem to reject non- seekable content - ADD: system tray utility (runs in user security context) - ADD: run Server Manager as administrator (UAC support) - ADD: Samsung DTV DMR device profile (enables seek trick mode) - ADD: build environment enhancements * Beta 1.7 UPDATE (Build 0.9.7.49) ------------------------------------------------------------------ - FIX: HTTP Internal Server Error code 416; should be 500 - FIX: moved failed get device description warning to upnplog.txt - FIX: invalid MP3 album art being attached to tracks - FIX: "multiple rows in singleton select" error in SCAN_QUERY procedures (add FIRST 1 to SELECTS to prevent) - FIX: unrecognized album art mime type causes unhandled exception on UPnP browse - FIX: changed Virtual Soundcard artist/album metadata - FIX: increased WASAPI shared-mode buffer size - FIX: partial silent samples cause invalid Virtual Soundcard stream (added protection against bad block alignment) - ADD: set static object ID's on root objects according to WMC2 container ID's (AT&T U-Verse compatibility) - ADD: device presentation page * Beta 1.7 UPDATE (Build 0.9.7.44) ------------------------------------------------------------------ - FIX: stereo conversion from 5.1/7.1 capture produces bad LPCM audio stream * Beta 1.7 UPDATE (Build 0.9.7.43) ------------------------------------------------------------------ - FIX: clicking Find button on Devices tab causes UI to crash when multicast send fails - FIX: empty APIC tag causes import exception - FIX: long uri for web resources not handled well by some devices (fixed with new uri cache and int server uri data instead of uri) - FIX: media server device context bleeding across threads causing incorrect device identification * Beta 1.7 UPDATE (Build 0.9.7.42) ------------------------------------------------------------------ - ADD: event logging for unhandled exceptions in jcsvrmgr.exe - ADD: additional logging to SSDP / TCP servers - FIX: network services startup fails due to unresolved hostname - FIX: network services not cleaned up when startup fails - FIX: server manager crashes when application tries to unregister remote server communications and IPC channel is down - FIX: ignore down network adapters (bluetooth) - FIX: culture issues with number formatting (logs, res@duration) - FIX: layout issues with device list control and scrollbars - FIX: multicast socket bug with SSDP service - FIX: discovery behavior erratic when multiple network adapters exist * Beta 1.7 (Build 0.9.7.32) ------------------------------------------------------------------ - FIX: handling for ID3 APIC when tag is present but empty - FIX: better scan error handling for corrupt WMA files - FIX: WMDRM-ND license request handler responding with HTTP 400 - FIX: bad mapped drive to UNC path resolution (Unicode issue with WNetGetUniversalName) - FIX: service crashes when event log is full or cannot be written to - FIX: unhandled # comments in M3U playlists - FIX: trailing backslash bug in scan directory procedure call causes primary key violation - FIX: fixed bad RIFF headers on transcoded WAV output - FIX: WMA decoder now properly detecting output on 24-bit/96kHz source audio files - FIX: improved DLNA compatibility regarding transferMode.dlna.org and getcontentFeatures.dlna.org - FIX: Virtual Soundcard live MP3 stream not properly reporting lack of seeking capabilities in DLNA content features - FIX: network devices now uniquely ID'd by IP address with secondary check against MAC address (MAC address was not a suitable identifier for devices in bridge/VPN scenario) - FIX: various podcast-related browsing issues - FIX: removed all angle brackets from browse containers, renamed system containers - FIX: new media server URL scheme (plus sign was not friendly with Reciva devices - FIX: updated Reciva system device profile (name change) - FIX: filter out unsupported media in RSS feeds - FIX: changed Xbox360 device profile to max 2 channel audio - FIX: changed HTTP Server header to conform with norm - ADD: ID3v2.4 tags now supported (unsync, UTF16, etc.) - ADD: more memory-efficient media data pipe buffer architecture - ADD: network availability auto-detection stop/starts network services as needed (for multiple adapter scenarios) - ADD: moved capture streaming into media server request handler - ADD: media stream pipeline stats to media server logfile - ADD: option to force hardware capture mode on Windows Vista/7 - ADD: FLAC is now an available transcoding target format - ADD: embdedded resource media handler / data pipe - ADD: album art for Virtual Soundcard - ADD: albumart.jpg, albumart.jpeg, cover.jpeg, folder.jpeg added as known album art image filenames * Beta 1.6 HOTFIX (Build 0.9.6.6) ------------------------------------------------------------------ - FIX: improved detection of existing installs and handling of database upgrade when existing install detection fails - FIX: change UPnP control/event URL's to address issue with Netgear MP101 - FIX: changed wording of error message when software license is invalid * Beta 1.6 (Build 0.9.6.5) ------------------------------------------------------------------ - FIX: playlists not browsable in WMP 11/12 - FIX: removed WMC impersonation from WMP device profile - FIX: service crashing with unhandled exception in filesystem event handler - FIX: increased thread priority of WASAPI capture thread to help eliminated glitching reported by some users - FIX: apostrophe in folder name breaks Browse Filesystem - FIX: encoding gaps in licensing service - FIX: devices tab overhaul to eventing-based list management and enhance usability when large number of devices present - FIX: playlist file extension case sensitivity - FIX: playlists being duplicated in database - FIX: encoding issue when reading from process stdout - FIX: added retries to database upgrade function to help with slow-closing file handles and failed updates - FIX: transcoder commandline incorrect usage of MP3 bitrate param - ADD: overhaul to media architecture to facilitate more rapid future development efforts - ADD: option to sort filesystem tracks by track # - ADD: TreatAsControlPoint device setting; set to True to provide all available media formats to a device - ADD: device icon system device profile property - ADD: system device icon for PS3 - ADD: WAV transcoding option for Virtual Soundcard - ADD: database version check at startup - ADD: album art support: folder.jpg, cover.jpg & embedded images found in FLAC, MP3, M4A, and WMA tracks (JPEG, PNG, BMP) - ADD: updated to Firebird version 2.1.2.18118 * Beta 1.5 (Build 0.9.5.25) ------------------------------------------------------------------ - FIX: performance bottleneck in track building functions - FIX: exception handling gap in WASAPI audio capture causes service to crash - FIX: cached device maintains old IP address when IP changes - FIX: Virtual PC Audio capture stream not being resampled when number of audio channels exceeds capabilities of device - FIX: incomplete RIFF header on WAV transcodes - FIX: UPnP service event missing Host header, bad URL - FIX: album, artist, composer, genre metadata capacity increased to 786 UTF-8 characters (track title increased to 760) - FIX: search metadata is now truncated properly on import - FIX: WASAPI now forces 16-bit capture but honors source # channels to avoid capture initialization error - FIX: removed hidden/system folders from filesystem browse - FIX: region of device info panel not responding to mouse events - FIX: UPnP ModelName property not correctly mapped to device profile - ADD: iTunes playlist support - ADD: ability to resample 5.1/7.1 channel PCM audio to stereo - ADD: WMP11/12 compatibility including new "Play To" feature in WMP12 - ADD: expand mime types in GetProtocolInfo function (was *:*:*:*) per DLNA spec (necessary for Sony HDTV compatibility) - ADD: device profile for Omnifi DMS1 - ADD: media server request/response and transcoding log - ADD: ability to disable auto-playlists - ADD: DLNA contentfeatures.dlna.org HTTP header (when requested) - ADD: media referenced by playlists but outside shared folder scope now added to the library instead of being ignored - ADD: license expiration warning in Server Manager, better feedback on license status * Beta 1.4 (Build 0.9.4.5) ------------------------------------------------------------------ - FIX: SSDP service not completely ignoring M-SEARCH broadcasts for inapplicable UPnP device/service types - FIX: virtual PC audio stream not properly cleaning up after 0 connections remain in broadcast client queue - FIX: unhandled socket exception in UPnP server crashes service - FIX: random tracks autoplaylist fails when configured max items exceeds 1499 (now capped at 1499 regardless of config) - FIX: duplicate tracks when browsing by artist - FIX: increased file path storage capacity to 1000 bytes - FIX: database now supports Unicode encoding for all metadata and filesystem strings - FIX: browse by filesystem performance improved - FIX: track detail browse performance improved - FIX: library scanner no longer takes read-only lock on files when scanning - FIX: improved scanner performance - ADD: updated to FFmpeg version SVN-r18199 (--enable-libmp3lame) - ADD: WASAPI audio capture support for Windows Vista/7 platforms - ADD: New device setting "ForceMP3CaptureStream" to force MP3 delivery of Virtual PC Audio capture stream * Beta 1.3 (Build 0.9.3.3) ------------------------------------------------------------------ - FIX: bug in WMA metadata parser when subheader field zero-length - FIX: not signaling HTTP to close connection when resampling - FIX: event log warnings when particular headers are not present in SSDP remote device operations - FIX: database UPnP ProtocolInfo storage inadequate for WMP11/12 - FIX: overflow causes incorrect duration on some WMA, MP4 tracks - FIX: database deadlock occurs with concurrent device updates - FIX: Empty UPnP artist containers when album artist is only artist supplied - FIX: various improvements to UI responsiveness and interaction with Windows service - FIX: removed settings from the Pioneer DMC device profile to allow it to be more generic; same DLNA internals as Denon AVR-3808 - FIX: various UPnP Browse performance tweaks - ADD: created the Device Editor dialog - ADD: updated to FFmpeg version SVN-r17988 (fixes issues with some FLAC files including those with ID3v2 tags at the beginning) - ADD: updated Firebird database provider (2.5 Beta 1) - ADD: changed filesystem folder child track sort order to filename - ADD: reduced UPnP device description refresh interval to 60 min. * Beta 1.2 (Build 0.9.2.4) ------------------------------------------------------------------ - FIX: bug in parsing ProtocolInfo for DLNA-compliant devices - FIX: changed the conditions in which device profile protocolInfo is evaluated for stream compatibility - FIX: duplicate tracks when browsing by artist - FIX: better avoidance of errors when UPnP device description is missing expected values - FIX: ID3v2 metadata block at beginning of FLAC file causes import error; ID3v2 is now skipped over - FIX: UTF-8 extensions in M3U unhandled - FIX: error in playlist item causes entire playlist to be rejected - FIX: GUI extraneous code execute on service start/stop causes sluggish UI update - ADD: device profile HTTP header evidence now evaluated in SSDP - ADD: device profile for Pioneer SC-LX81 - ADD: device profile for Netgear MP-101 - ADD: device profile for Acoustic Energy Wi-Fi Radio * Beta 1.1 (Build 0.9.1.9) ------------------------------------------------------------------ - FIX: device profile cannot overwrite defaults that were acquired from the default device profile - FIX: curly braces in log output causes exception - FIX: UTF-8 encoding bug in ID3 tag parser - FIX: DLNA detection from device description not working - FIX: MP3 track duration incorrect for certain files - ADD: HTTP header device evidence to UPnP logfile - ADD: additional service crash reporting to event log