mt-daapd is a media server software which implements the DAAP protocol. It is no longer actively developed. The mt-daapd code was forked into a second project which is under active development called forked-daapd.
This project is to create a new application based on forked-daapd.
Goals:
1. change the application name
2. remove some library dependencies
3. Ensure operability on embedded NAS devices that don't necessarily run bleeding edge kernels.
Requirements:
1. New software should compile and run on modern Linux and FreeBSD 8.x systems
1a. New software should compile and run on modern embedded NAS systems that are running Linux on ARM.
2. All functionality currently in forked-daapd not specifically addressed below shall be maintained in working order, except, ARM systems are not required to do transcoding.
3. Changes in forked-daapd not related to the action items below shall be pulled into this project during the course of the project (stay current with upstream.)
The source code for the forked-daapd project is here: git://[login to view URL]~jblache/[login to view URL]
Detailed requirements:
1. All references to "forked-daapd" must be changed to "fdaapd"
2. The dependencies that must be removed are libavl (avl-0.3.5) and ANTLR v3 (including libantlr3c).
Alternate methodologies or libraries must be implemented to replace the functionality that these libraries provide.
The following two libraries *may* provide some useful functionality in place of what must be removed. Please evaluate them for inclusion. (from [login to view URL])
libnfo - NFO metadata parser/writer library
libvalhalla - Metadata scanning library
(After evaluating how libavl and ANTLR v3 are used, a discussion with me and a recommendation from the provider must occur before implementation begins.)
3. The forked-daapd software currently scans a directory specified in its configuration file for media files and adds them to a sqlite database. In addition it monitors that same specified media directory for changes (files added/deleted/moved) and adds (or deletes) those files to the sqlite database. This functionality (directory monitoring) should be evaluated. The goal is to ensure that embedded systems that do not use the most modern kernels can still accomplish library updates. My understanding is that this directory monitoring implementation requires very new kernels and libraries that may not be supported on embedded NAS devices yet. Perhaps this functionality can be enabled on systems that will support it but be disabled at compile time if the target system doesn't support it, which leads to the next two requirements.
3b. A configuration parameter must be added to the configuration file that allows a periodic rescan of the media library to be specified.
3c. The new software must also accept a siginfo signal from the kill program to trigger a rescan of the media library.
3d. Implement an optional feature that enables automated library management that works similarly to iTunes. The configuration file should accept parameters for library directory (full path), new media directory (full path). If the "new media directory" is specified the feature is enabled.
When files are placed in the directory specified by "new media directory" the software reads the ID3 tags or the NFO file (with the same name as the movie file) and a new directory path in the library directory for the media based on Artist, Album, etc is created (if it doesn't already exist) and places the new media in the appropriate folder. Under the Library directory there should be directories for Music, Movies, TV Shows, and Podcasts at a minimum.
Thanks for bidding. If you can do this for less than the budget, feel free to indicate that in the bid.