pDLNA CHANGELOG
(c) 2010-2013 Stefan Heumader
email: stefan@heumader.at
webpage: http://www.pdlna.com

Licened under GPLv3 (see LICENSE file)

-----------------------------------------

Version 0.64.0
03-11-2013

- moved from Movie::Info to using FFmpeg natively to determine media information (based on the idea of lombao)
- using FFmpeg instead of Mplayer to create VideoThumbnails
- using FFmpeg instead of Mplayer to gather media streams
- added default values for FILEINFO database and increased PROGRAM_DBVERSION
- indexing files is now about 4 to 5 times faster (by disabling AutoCommit)
- storing media information is now 0.5 times faster (by disabling AutoCommit)
- added support for MySQL
- added amount of directories to WebUI
- added $VERSION, $HOSTNAME and $OS variables to the FriendlyName configuration
- fixed issue #21 (https://github.com/geuma/pDLNA/issues/21) -aka- special characters in filenames break some regular expressions (under some circumstances)
- improved handling of ExcludedItems configuration parameter
- directories with no subdirectories or subfiles will be deleted from ContentLibrary
- Length of all Media Items in WebUI will only be shown when LowResourceMode is disabled
- added FFmpeg information to WebUI to provide easier access to Transcoding possibilities

Version 0.63.0
08-07-2013

- removed Devel::Size Perl module from dependencies
- added a new DBVERSION meta-information to database - it allows pDLNA to only recreate the database if a new version of pDLNA comes with a new database structure (not every time a new version of pDLNA is installed)
- improved check to detect valid Mplayer installation (since Mplayer seems to change the location of the Mplayer string often) (thanks to lombao)
- enabled EnableGeneralStatistics feature for FreeBSD and readded process information on FreeBSD in the WebUI
- improved error handling in database module
- error log messages will get LogLevel 0 and will always be logged (changed LogLevel in various error messages over some Perl Modules)
- fixed a bug regarding the ConnectionManager HTTP response (thanks to lombao)
- moved from Ogg::Vorbis::Header to Ogg::Vorbis::Header::PurePerl and finally added code for tags from ogg files
- moved (again) from Net::Interface to IO::Interface (thx to shantanubhadoria) (issue #17)
- removed usage of Net::Address::Ethernet (handled by IO::Interface too)
- fixed a bug regarding delivering preview images
- moved from Digest::SHA1 to Digest::SHA and improved the PDLNA::Utils::get_randid function by using timestamp with milliseconds

Version 0.62.0
05-05-2013

- fixed issue #13 (https://github.com/geuma/pDLNA/issues/13) -aka- uninitialized value $request_line
- added support for transcoding all supported types of audio files to WMAv1
- added code to remove newly added ExcludeDirs and ExcludeItems from ContentLibrary
- added execution time to SQL query logging
- added configuration option EnableGeneralStatistics and code to gather statistics (memory usage, media items) every minute and added graphs in WebUI for the EnableGeneralStatistics configuration parameter (currently not available on FreeBSD)
- modified Check4Updates LogCategory to default, since LogCategory update was not available at all
- fixed a bug regarding UPnP Services, where only one service is available (PDLNA::Devices)
- FunFeature: added configuration option Check4UpdatesNotification: a message to a connected urn:samsung.com:serviceId:MessageBoxService service will be sent if a new version of pDLNA is available (if Check4Updates is enabled)
- some general improvements regarding database connections, which lowers memory consumption

Version 0.61.0
07-03-2013

- fixed issue #7 (https://github.com/geuma/pDLNA/issues/7) -aka- Uninitialized value in SSDP.pm
- reworked/improved the code for parsing received SSDP messages
- PDLNA::DeviceList object has been moved to database (feature/issue #11 (https://github.com/geuma/pDLNA/issues/11))
- added a Check4Updates button to the WebUI (feature/issue #12 (https://github.com/geuma/pDLNA/issues/12))
- added transcoding LogCategory for information about the Transcoding Profile selection
- changed way of configuring Transcoding Profiles
- fixed a bug regarding not-mplayer-info-data in media library database
- transcoding audio files to aac, ac3, flac, mp3, vorbis, wav and wmav2 is now available
- added support for wmav1 encoded audio files
- some minor changes to the directory listing code
- fix/workaround for issue #4 (auto detection on FreeBSD) - Net::Interface might have problems to find the matching interface sometimes
- added more information to WebUI
- fixed a bug regarding escaping brackets in directory names

Version 0.60.1
14-02-2013
- fixed issue #8 (https://github.com/geuma/pDLNA/issues/8) -aka- database preparation problem

Version 0.60.0
13-02-2013

- using a database instead of the whole huge in memory object for the ContentLibrary
- fixed issue #6 (https://github.com/geuma/pDLNA/issues/6) -aka- the default size for the logfile rotation
- updated copyright year
- added even more information to the WebUI
- external media items are shown in WebUI too
- transcoding is now avaiable to be configured per client seperately
- added the configuration option TempDir in configuration file to configure the directory for temporary files

Version 0.53.0
15-08-2012

- added LowResourceMode configuration parameter for small devices like NAS and so on, audio and video files will not be openend and analyzed via Mplayer
- added some general functions to Content object for calculation total indexed amount of files, their size and the total indexing time
- changed the webgui's URL to http://IP:HTTPPort/webui/ and renamed the perl module itself too
- changed check for Mplayer - it is necessary when LowResourceMode is disabled and/or VideoThumbnails is enabled
- changed check for FFmpeg - it is necessary when TranscodingProfiles are configured

Version 0.52.0
05-08-2012

- fixed a small typo in INSTALL file, thanks to CrisAnderson
- rewrote a lot of PDLNA::DeviceList database stuff for storing more informations about the devices to maintain better compatibility and features in the future (added PDLNA::DeviceUDN, PDLNA::DeviceService and PDLNA::DeviceServiceAction Perl modules)
- added manufacturerURL for DeviceDescription XML

Version 0.51.2
21-07-2012

- improved regex to detect valid FFmpeg installation
- added some additional media formats to PDLNA::Media perl module
- improved regex to detect VLC version 2.0
- added SIZE to ContentDirectory Object, which is the size of all included items
- improved WebUI (more beautiful listings)
- added connected devices information to WebUI
- added some general process statistics to WebUI
- removed transcoding profile from default configuration file

Version 0.51.1
31-05-2012

- added halfdaily configuration parameter for RescanMediaInterval
- added some additional media formats to PDLNA::Media perl module

Version 0.51.0
16-May-2012

- added support for additional playlist files (audio/x-ms-asx, video/x-ms-asf, application/xspf+xml)
- fixed a bug regarding ignoring SSDP messages from not allowed clients
- added configuration parameter RescanMediaInterval to define, when pDLNA should rebuild the media database
- expired devices will be deleted from PDLNA::DeviceList database
- the running pDLNA installation will not be added to the PDLNA::DeviceList database

Version 0.50.0
28-Mar-2012

- added support for video/x-theora+ogg, audio/x-wav, audio/ac3, audio/x-aiff and video/x-flv Mime-Types
- removed PDLNA::ContentExternal Perl Module and integrated external scripts into PDLNA::ContentItem Perl Modul
- modified configuring External blocks (see sample configuration or configuration guide)
- added configuring network streams in External blocks (StreamingURL)
- refractured PDLNA::HTTPServer::stream_media() function
- added FFmpegBinaryPath configuration parameter for path to installed FFmpeg binary
- added Transcoding Profiles for audio files (see configuration guide for supported profiles)
- added support for network streams as elements of Playlist files
- added dummy responses for GetSearchCapabilities, GetSortCapabilities and GetSystemUpdateID SOAP requests
- added checking for valid MPlayer and FFmpeg installation
- added generation of DLNA contentfeature parameter

Version 0.46.0
13-Mar-2012

- added UUID configuration parameter for choosing method to generate UUID
- fixed a bug ignoring lost+found directories
- added support for .srt subtitle files (SubRip or application/x-subrip) for Samsung TV
- improvements to DirectoryListings (interpreting some of the filters)
- PROGRAM_BETA to CONFIG hash and print_version() to PDLNA::Config module
- changed default value for EnableImageThumbnails from enabled to disabled to be conform to EnableVideoThumbnails
- default value for AllowedClients is set to the local subnet
- fixed a bug regarding default value for LogFileMaxSize

Version 0.45.0
19-Jan-2012

- thumbnails for external content are disabled
- added AllowPlaylists configuration parameter for Directory configuration block
- added support for Playlists (audio/x-scpls and audio/x-mpegurl) with local files
- added LogFileMaxSize configuration parameter for rotating the logfile
- fixed a bug (Device.pm line 139) regarding missing response content
- fixed a bug regarding the validation of the CacheControl configuration parameter
- added support for logging to syslog (SYSLOG option of LogFile configuration parameter)
- added configuration parameter DateFormat to define date format in logging, debug output and library
- changes to PDLNA::Library.pm HTML code

Version 0.44.1
11-Jan-2012

- improved and fixed some bugs in the installation script
- fixed a bug in ContentItem.pm: parent_id() function return {PARENT_ID} value instead of {DATE} value
- fixed a similar bug in ContentDirectory.pm regarding the parent_id() function
- added history for DirectoryListings to PDLNA::Device object
- fixed a problem regarding the different duration notations of audio and video files
- added support for audio mime-types: audio/x-flac
- fixed 'Upper Folder' problem with Samsung TV (handling @parentID filter value in XML request)
- small bugfixes regarding external media items (merged https://github.com/jjYBdx4IL/pDLNA/commit/557c692480fc3dfeb6f20d56997e6d41712c4136 by jjYBdx4IL)
- small changes in documentation regarding external media items (merged https://github.com/jjYBdx4IL/pDLNA/commit/75220bec5e05fcd83664a92cd9a0a45612862988 by jjYBdx4IL)
- added AudioCodec and VideoCodec to ContentItem - this information might be relevant for transcoding issues

Version 0.44.0
04-Jan-2012

- changed ContentItem detection from file extension to mime type
- PDLNA::Device.pm improvements regarding fetching the XML description (just once and not our own)
- items are sorted in directory listing
- added support for the following image mime-types: image/gif
- added support for the following audio mime-types: audio/mp4, audio/x-ms-wma
- added support for the following video mime-types: video/mp4, video/mpeg
- fixed 'die' in line 809 of PDLNA::HTTPServer package
- updated copyright year

Version 0.43.0
30-Dec-2011

- added MKV video streaming support
- modified PDLNA::DeviceList and PDLNA::Device to be shared among different threads
- added PDLNA::DeviceList to PDLNA::HTTPServer thread to detect device type for Samsung specific Mime-Type of MKV files (video/x-mkv instead of video/x-matrovska)
- added ExcludeDirs and ExcludeItems to define specific directories or items to be added to the ContentLibrary
- modified binary configuration by enabling different values in the conifguration file (1, on, true, enable, enabled, yes)
- another small change to initscript and install.pl to execute initscript directly from git repo
- added function model_name() to PDLNA::Device.pm, which gets the XML description from a UPnP device and reads in the modelName

Version 0.42.0
28-Dec-2011

- added support for external streaming sources (e.g. VDR-Streamer - see https://github.com/jjYBdx4IL/VDR-Streamer) (thanks to jjYBdx4IL)
- added full streaming functionality (tested with Samsung LED TV (UE40B8090)) (thanks to jjYBdx4IL again)
- reformated jjYBdx4IL code to match coding style and readded configuration support via BufferSize
- added error handling for missing MPlayer and fixed a bug regarding duration of videos
- adapted install.pl for external streaming scripts
- added VERSION file
- added TODO list to GIT repo
- solved issue #1 (https://github.com/geuma/pDLNA/issues/1) -aka- signal handling
- changed default BufferSize value to 32768 bytes since this value seems to work (thanks to jjYBdx4IL again)
- fixed a path related problem in the initscript

Version 0.41.0
22-Dec-2011

- added EnableImageThumbnails and EnableVideoThumbnails configuration parameters to define whether thumbnails of videos or images should be created and delivered
- added MPlayerBinaryPath configuration parameter to define the location of the MPlayer binary
- added detaching of HTTPServer and Check4Update threads
- changed SSDP function to SSDP Perl Objects, where SSDP threads get created inside of SSDP object
- changed PDLNA::Daemon.pm, seems SSDP Object messed up Perl Signal Handling
- added information of video files (length, width, height and bitrate) to ContentDirectory Object via Movie::Info and adapted install.pl for requirements
- fixed transparency of PDLNA logo in PDLNA::HTTPServer
- played with HTML and CSS for PDLNA::Library
- enabled <dc:date> in ContentItem description XML for video files

Version 0.40.0
17-Nov-2011

- improved PDLNA::HTTPServer::stream_media() function to support the limited streaming functionality (streaming media to the configured BufferSize) for even more DLNA aware devices

Version 0.39.0
07-Nov-2011

- added BufferSize configuration parameter, to configure the maximum size of chunks, which are used for streaming content
- improved PDLNA::HTTPServer::stream_media() function and deleted some old code in the same function

Version 0.38.0
04-Nov-2011

- added functionality, that Samsung TV (and in the future for other capable devices) wants the SpecificViews instead of the BaseView of the Content Database from pDLNA
- added SpecificViews to configuration file, wether pDLNA should tell the Samsung TV to use these SpecificViews
- added image and video thumbnail preview support for Windows Media Player 12
- added support for streaming images to Windows Media Player 12

Version 0.37.1
03-Nov-2011

- added INSTALL file (instructions for installation)
- added install.pl, a small script, which checks for requirements and installs pDLNA
- added PDLNA::Status Perl Module to check for a new version of pDLNA (if configured)

Version 0.37
27-Oct-2011

- fixed a problem and added default value for duration of ContentItems (thx to mrproper)
- added BaseView DirectoryListing support for VLC and Windows Media Player 12

Version 0.36
25-Oct-2011

- general improvements to UPnP and SSDP discovery (i.e. added ContentDirectory and ConnectionManager XML file)
- added BaseView of Content Database which is supported by all (or even mostly all) DLNA clients (added PDLNA::ContentDirectory Perl module)
- added configuration value for crawling directories recursively or not
- fixed deformed thumbnails
- added another LogCategory (httpgeneric)
- removed and improved a lot of old code from PDLNA::HTTPServer
- added PDLNA::HTTPXML Perl module
- added pDLNA logo icon

Version 0.35
21-Oct-2011

- added initial ContentDirectory and ConnectionManager XML files
- moved from Net::Interface to IO::Interface (thx to mrproper)
- moved from Sys::Info::OS to Sys::Hostname and Config (thx to mrproper)
- added support for subnets to AllowedClients configuration (thx to mrproper)
- moved from Image::Resize to GD (thx to mrproper)
- added some small fixes to Content Database (thx to mrproper)
- added some small fixes to PDLNA::HTTPServer Perl module (thx to mrproper)

Version 0.34
09-Oct-2011

- added AllowedClients to the configuration to define IP addresses, which should be able to communicate with pDLNA
- reworked some streaming code

Version 0.33
30-Jan-2011

- added support for logging to a file
- added an INIT script
- pDLNA is able to run as a daemon

Version 0.30
10-Jan-2011

- added LogCategories for better debugging
- added support for streaming images to the Samsung TV

Version 0.26
02-Oct-2010

- added support for previewing thumbnails for videos (get generated dynamically by mplayer)
- configuration file parsing improvements
- automatic detection of listening interface and IP address
- some changes to the streaming part of pDLNA

Version 0.25
29-Sep-2010

- using Sys::Info::OS for operating system version and hostname
- generating a random UDN at startup
- added some config file validation
- made debugging of Content Database more beautiful
- added support for fatal logging
- added a DATE_FORMAT for Date::Format Perl module in PDLNA::Config
- added some debugging messages in PDLNA::SSDP Perl module

Version 0.24
28-Sep-2010

- changed project website URL
- code cleanup in PDLNA::SSDP Perl Module
- added PDLNA::Device and PDLNA::DeviceList Perl modules to store information about already known UPnP clients

Version 0.23
23-Sep-2010

- added preview/thumbnails of images, works in Samsung TV

Version 0.22
23-Sep-2010

- some general improvements to the Content Database code
- DirectoryListings for images, videos and audio files is supported on Samsung TV
- some additional code to the streaming functionality

Version 0.20
20-Sep-2010

- some fixes and improvements to the Content Database
- some additional code to the streaming functionality
- added initial PDLNA::Library Perl module
- added configuration of media directories to the config file

Version 0.19
20-Sep-2010

- moved from HTTP::Server::Simple::CGI to Socket and IO::Select
- added LogLevel 2

Version 0.15
12-Sep-2010

- changed default friendly name
- added initial Content Database
- added PDLNA::Utils Perl module

Version 0.13
10-Sep-2010

- added configuration file

Version 0.12
09-Sep-2010

- discovery via SSDP for Samsung TV is working
