ChangeLog for OwnTone
---------------------

version 28.2
	- add Spotify integration that doesn't depend on libspotify
	- partial support for AirPlay events (Homepod buttons)
	- web UI upgraded, now 1.1.0:
		show "comment" field in track details
		drop double login to Spotify when not using libspotify
	- easier install by letting 'make install' add user and service files
	- preserve existing conf file when running 'make install'
	- support for "comment" field when making smart playlists
	- fix support for dacp device-volume
	- fix issue where source file sort tags where ignored
	- fix for Roku (RSP) artist display issue
	- fix bug when 'bind_address' option is used
	- fix for CVE-2021-38383
	- fix some minor time-of-check time-of-use bugs

version 28.1
	- fix incompability in 28.0 with Debian Buster's libwebsockets 2.0

version 28.0
	- rename forked-daapd to OwnTone + new logo
	- fix web UI slow updates due to websockets 3.x changes
	- support for ALAC sort tags
	- support for remote pls/m3u with https streams
	- add /api/queue?id=now_playing json API shortcut
	- fix possible crash on Pulseaudio error callback
	- fix possible segfault-on-exit
	- fix websockets not working on FreeBSD
	- refactor how the server binds to sockets (use dual stack ipv4/6)
	- configurable interface/address binding

version 27.4
	- fix web server path traversal vulnerability

version 27.3
	- support for AirPlay 2 speakers, incl. compressed ALAC
	- web UI upgraded, now v0.8.5:
		new design/layout
		optimize "Recently added"
		Spotify search dialogue improvements
		drop separate admin web page, now integrated in main web
		podcast deletion
		make Radio a top level item
		show release dates
		new sorting options
		prevent browser caching of playlists
		additional settings
	- improved Chromecast streaming (retransmisson, adaptive etc.)
	- JSON api support for updating metadata of queue items
	- JSON api new fields, e.g. time_added, time_played and seek
	- fix for some Chromecasts disconnecting
	- new algorithm for more natural ALSA volume adjustments
	- new nickname option for AirPlay and Chromecast
	- mpd fixes (nextsong, multiple commands)
	- charset flexibility when getting ICY metadata from streams
	- adaptive probing of radio streams
	- libplist and libsodium now required
	- fixes for library update events
	- fixes to speaker selection and unintentional volume changes
	- fix some minor memleaks
	- support shairport-sync metadata pipe flush event
	- misc logging fixup

version 27.2
	- web UI upgraded to v0.7.2:
		show cover artwork in album pages and lazy loading of artwork
		show playlist folders
		use sass/scss for css files
		add "Radio" tab to the music section
		add settings for artwork sources
		add pop up dialog for Remote pairing requests
		support adding/removing podcast subscriptions
		support marking all new podcast episodes/all episodes as played
		support searching by smart pl queries
		skip buttons for audiobooks and podcasts
		show localized times/dates
		generate colored placeholder image if cover artwork is missing
		show "cast" icon for Chromecast outputs
		styling changes of the navbars and moving the volume controls
	- new speaker selection logic (persist user choice even after failure)
	- speaker autoselect no longer enabled by default
	- removed old admin page, not necessary any more
	- fix/workaround for Apple TV's and HomePods that disconnect
	- support for RSS feeds
	- support for nested smart playlists (playlist folders)
	- support for online artwork sources e.g. Discogs, Coverartarchive
	- support for radio StreamUrl's that point to json with metadata
	- fix incorrect artwork shown for unknown album/artists
	- fix issue parsing shairport-sync progress metadata
	- fix missing Spofity logout option
	- fix for embedded artwork not working with ffmpeg 4.3+
	- some smart PL improvements, e.g. support for more tags
	- config option for Airplay timing/control ports (eases firewalling)
	- quicker loading of radio streams (smaller probing)
	- workaround for mxml 2.10 significant memleak
	- some fixes for Roku (RSP)
	- drop libspotify for artwork, doesn't work any more
	- documentation improvements

version 27.1
	- web UI upgraded to v0.6.0: settings page, display more Spotify data
	- support for volumeup, volumedown and mutetoggle DACP commands
	- support for multiple ALSA devices
	- suppress repeated logging of same message to avoid log file bloat
	- fix opening too many files due to looping with shairport-sync
	- fix for genres with single quotes in name
	- fix for incorrect update of time_added metadata
	- fix some small memleaks and missing cleanup

version 27.0
	- no fixed resampling to 44100/16, play source quality if possible
	- Chromecast: quick start, better quality (48000/16 Opus encoded)
	- performance enhancements: Remote and iTunes will load quicker
	- alsa sync with variable sample rate, avoiding audible "clicks"
	- web UI upgraded to v0.5.6, e.g. play non-library tracks, saving queue
	- fix for Pebble mpd client (and possibly others)
	- fix issue with some HLS radio stations
	- support for https streams
	- fix for artwork showing dithered
	- ICY metadata in forked-daapd's mp3 stream
	- support for Spotify collaborative playlists
	- support for Shairport artwork via pipe
	- configurable mp3 streaming quality
	- json api improvements, e.g. for toggling speakers
	- json api/web ui: Relative seeking
	- support for some http seeking
	- fix for macOS Catalina’s Apple Music

version 26.5
	- json api/web ui: file view
	- web ui: artwork support
	- web ui: "Add next" and genre tab
	- Airplay connection test improvements
	- support for https streams in m3u's
	- use Spotify web api for artwork instead of libspotify
	- option to make Airplay devices permanent or excluded
	- support for tracks and disc items in smart playlists
	- db refactor, fix issues with play count, time played etc
	- json api: more options available when adding items to the queue
	- json api: player/toggle
	- mpd version 0.20 support + support for "listfiles" command
	- fix double http auth decline issue

version 26.4:
	- automatic rating
	- fix issue in 26.3 causing invalid time_skipped values in the db
	- improved fallback to ipv4 if ipv6 fails
	- fix issue returning too many queue items to clients
	- fix missing prompt for library password

version 26.3:
	- fix AirPlay 2 devices (e.g. Sonos Beam and Airport Express)
	- fix mdns problems with ATV4 and ipv6
	- fix possible segfault if null user-agent
	- new metadata: Skip Count and Times Skipped (incl iTunes XML mapping)
	- iTunes XML mapping of Play Count and Play Date
	- fix for crashes when client provides no User-Agent
	- logging improvements

version 26.2:
	- fix for db indexes not being used on fresh installs

version 26.1:
	- player web interface
	- support for Airplay speaker control commands
	- add non-library items (e.g. radio stations) to the queue
	- fix for keeping connection alive towards some devices e.g. old ApEx's
	- extension of the JSON API
	- under-the-hood improvements of Spotify integration
	- fix for Android "Remote for iTunes"
	- fix ffmpeg segfault when jpeg encoding
	- performance improvements + misc

version 26.0:
	- added web interface
	- added JSON API
	- new mpd commands (e.g. sticker, urlhandlers, playlistfind)
	- support for adding non-library urls to the playback queue
	- support for id3 grouping tags
	- support for filesystems with ACL's
	- use Spotify web api to load all playlists
	- improved client authentication options
	- only rescan playlists if changed -> faster startup
	- fix bug related to dacp/daap client revision number handling
	- fix bugs related to import of iTunes XML playlists
	- restore ATV4/tvOS11 support by removing requirement for timing_port
	- fixes for Hyperfine Remote
	- improve database performance
	- make sure daemons listen on both ipv4 and ipv6 (for BSD)
	- ffmpeg/transcoding refactored for new ffmpeg API
	- and more...

version 25.0:
	- improved playback resilience
	- substitute packet skipping (producing audio "clicks") with start/stop
	- support for MacOSX with macports and Bonjour mDNS
	- Airplay device verification for Apple TV 4 w/tvOS 10.2 (uses libsodium)
	- support for Spotify web api (saved tracks/albums + Discover Weekly)
	- automatic playback of pipes + support for Shairport metadata pipes
	- added pipe audio output (fifo)
	- persistent queues (queue remains across server restart)
	- support for browser based clients
	- mpd sendmessage: set individual speaker volume, remote pairing
	- mpd add http://path-to-radiostream (i.e. add non-library items)
	- new options, e.g. exclude speakers from list
	- fix for shuffle mode
	- fix broken PNG artwork rescaling
	- use friendly Chromecast name in speaker list
	- support for libav/ffmpeg dual installs
	- refactoring - added the input and library interface
	- performance improvements
	- and other fixing up...

version 24.2:
	- Pulseaudio support (can be used for Bluetooth speakers)
	- new pipe/"fifo" audio output
	- fix misc Chromecast audio bugs
	- fix for Apple tvOS10 disconnecting after some minutes
	- enable CORS headers
	- LastFM scrobbling during regular DAAP streaming
	- smart playlist support for file modification time
	- misc MPD improvements, e.g. new outputsvolume command
	- ignore ipv6 link-local addresses (announced by e.g. ATV4)
	- better inter-thread command handling
	- improved cache performance and use of gzip
	- fix possible segfault on http timeouts
	- fix possible segfault when adding items during playback

version 24.1:
	- support for Monkey's audio
	- fix build problems on some platforms (e.g. OpenWrt)

version 24.0:
	- support for Chromecast audio
	- support more idv3 tags (eg. date released)
	- support more DAAP tags (eg. datereleased, hasbeenplayed)
	- fix problem with playlists not shown in correct order in Remote
	- autoselect devices based on priorities + keep devices selected
	- fix multiple FreeBSD filescanner bugs (like too many open files)
	- ALSA audio refurbished (prevent underrun/overrun, better AirPlay sync)
	- improved mpd command support (eg. lsinfo, move, queue autoplay start)
	- better mpd performance
	- timing changes to keep input and output in sync with player timer
	- prevent cache bloat (unscaled artwork or artwork for deleted tracks)
	- more intelligent Spotify artwork retrieval
	- artwork handling refactored
	- add generic output interface
	- add systemd service file
	- support for OSS4 dropped
	- support for old ffmpeg dropped
	- misc minor bugfixing

version 23.4:
	- fix freeze problem on network stream disconnects
	- support for mp3 streaming
	- better ipv6 handling
	- option to hide singles from album/artist lists
	- misc MPD improvements, incl. new commands and zeroconf support
	- queue handling and transcoding refactored
	- libavresample/libswresample dependency changed to libavfilter
	- improved pairinghelper.sh script

version 23.3:
	- fix issue where volume gets set to -1 on startup of raop devices
	- plug various minor memleaks
	- audiobook improvements, eg resuming playback from saved position
	- live icy metadata
	- libevent 1 support removed
	- LastFM performance improvement
	- drop legacy ffmpeg stuff
	- drop legacy flac, musepack and wma scanner

version 23.2:
	- fix db lock, m3u and Windows Phone bugs
	- improvements for Spotify and mpd
	- fixing bugs as always
	- sorting of genres and composers

version 23.1:
	- support for more mpd commands

version 23.0:
	- add support for the mpd protocol
	- add support for smart playlists
	- playlist and internet stream overhaul

version 22.2:
	- fix for iTunes 12.1
	- fix misc bugs

version 22.1:
	- artwork cache
	- some Spotify fixing up

version 22.0:
	- queue handling improvements
	- added DAAP cache, good for low-power devices like the RPi
	- support for LastFM scrobbling
	- support for .pls playlists
	- added compability with ffmpeg libswresample
	- added options to modify the operation of the SQLite database
	- stop init-rescan/full-rescan from running twice
	- fix misc local audio problems
	- fix some FreeBSD sound timing problems
	- fix segfault on invalid utf8 while sorting
	- fix misc bugs

version 21.0:
	- filescanner performance enhancements (db transactions)
	- support for queue editing
	- support for showing history
	- compability with libevent 2
	- compability with libav 10
	- support for Spotify
	- fix for Seafile libraries
	- support for permission changes in a library (IN_ATTRIB)
	- some DAAP changes to align with iTunes
	- properly show media kind shares in iTunes
	- support for named pipes/fifos
	- natural sorting and better handling of capitalization
	- introduce .init-rescan and .full-rescan triggers
	- fix for XBMC (libshairplay) crash
	- fix missing songartistid (fixes some remotes)
	- fix bug in m3u scanner
	- ICY metadata fixes

version 20.0:
	- includes patch against timeouts
	- configurable artwork file names
	- support for Remote 3 and 4
	- preference for album artist if it is available
	- bug fix for certain Airport Express models
	- bug fix for AirFoil Speakers
	- added support for internet radio with m3u
	- fixed fatal error when stopping player
	- m3u and iTunes playlist scanner improvements
	- improved compability with Hyperfine Remote for Android
	- speaker selection and m3u bug fixes
	- Shoutcast (icy) metadata support for internet radio
	- fix for Apple TV update 6.0
	- fix artwork memory leak
	- basic support for podcasts, compilations and audiobooks
	- user can tell file scanner to ignore certain file types
	- fix for metadata on non-Apple airplay devices
	- configurable library names
	- sorting changes, ignore The/A/An
	- fix for TunesRemote SE
	- force library rescan with .force-rescan
	- fix for the Retune remote on Android
	- fix for AirBubble speakers (shairport)
	- support for artwork in iTunes
	- fixed ffmpeg/libav logging
	- logging and documentation adjustments
	- autoselect AirPlay device if none selected
	- support for embedded artwork
	- config option to disable startup scan
	- config option for max volume for AirPlay devices
	- support for embedded platforms without hi-res timers
	- fix for WMA files
	- fixes for video playback
	- other fixes: non apple players, ffmpeg/libav updates...

version 0.19:
	- more libav 0.7 updates.
	- database speedups.
	- fix for iTunes 30-minute timeout.
	- fixes, big and small.

version 0.18:
	- add config knob for ALSA mixer channel name.
	- do not elevate privileges for reopening the log file; log file
	  will now be owned by the user forked-daapd runs as.
	- fixes, big and small.

version 0.17:
	- support for libav 0.7
	- fixes, big and small.

version 0.16:
	- fix issue with non-UTF-8 metadata while scanning.
	- use proper file size in HTTP streaming code.
	- fix DAAP songlist bug with sort tags.
	- small code fixes.

version 0.15:
	- add support for sending metadata to AppleTV during AirTunes streaming.
	- support DOS-encoded Remote pairing files.
	- rework album_artist_sort handling.
	- enable RAOP to queue RTSP requests.
	- speedup DAAP & RSP filters processing.
	- speedup DAAP songlist generation.
	- artwork can handle and send out both PNG and JPEG.
	- fixes, big and small.

version 0.14:
	- sort headers/tags handling improvements.
	- better handling of tags for TV shows.
	- better handling of DRM-afflicted files.
	- configurable IPv6 support.
	- fix scanning of URL files.
	- fixes, big and small.

version 0.13:
	- add Remote v2 support; Remote v1 is not supported anymore.
	- add per-speaker volume support.
	- implement RAOP retransmission.
	- implement per-device quirks in RAOP.
	- improve compatibility with 802.11g AirPort Express.
	- improve mDNS address resolution, making IPv4 usable again.
	- fix Murmur Hash bug on 32bit platforms.
	- add support for JPEG artwork and alternative filenames.
	- disable session expiration that was causing issues.
	- FFmpeg 0.6 support.
	- fixes, big and small.

version 0.12:
	- add AirTunes v2 streaming.
	- add Remote support.
	- add gzipped replies.
	- add IPv6 support.
	- check for UTF-8 correctness of metadata.
	- fixes, big and small.

version 0.11:
	- support iTunes 9.
	- add iTunes XML playlist scanner.
	- add support for TV shows.
	- add FreeBSD and GNU/kFreeBSD support.
	- add support for DAAP groups.
	- add support for artwork.
	- rework metdata extraction, better support for ID3 tags.
	- database code rework.
	- preliminary support for Remote (pairing, browsing).
	- fixes, big and small.

version 0.10:
	- initial release.
