I am looking for someone to port the MiniDLNA server program to Windows
and Mac OS X. MiniDLNA is a minimal, open-source DLNA server for Linux. The
goal of this job is to port MiniDLNA so that it can be run and conveniently
used on both OS X and a modern Windows PC (Windows XP and newer). Further
the external dependencies of MiniDLNA should be reduced to simplify the
You can obtain MiniDLNA from here: [url removed, login to view]
More information on DLNA is here: [url removed, login to view]
The two targets OS X and Windows require a very different amount of work:
OS X is a much closer target to Linux than Windows. And most important: A
working MiniDLNA port to OS X already exists! It just resides in a separate
branch and was not yet integrated into MiniDLNA's main branch.
I therefore propose to tackle the project by the following four sub-steps:
1) Integrate existing OS X port into main branch
The existing MiniDLNA OS X port resides in the "osx_port" development branch.
You can read more about it here:
[url removed, login to view]
I'm not sure by how far the osx_port branch is out of sync with the main
branch but it should be ok. Some code of the osx_port branch might be
OS X specific and the build script probably incomplete. See here:
[url removed, login to view]
Goal of this first step is to merge the code of the osx_port and the main
branch as well as update the build scripts so that MiniDLNA can be compiled
out of the box on both Linux and OS X from one code base.
2) Windows CLI port
MiniDLNA can run as a daemon under Linux or as a normal command-line
application (for debug purposes). In this first step, the MiniDLNA server
just needs to properly run in application-mode on Windows - not as a
MiniDLNA's makefile and build scripts should be extended so that they also
support a MinGW target and the MiniDLNA CLI application becomes compilable
for win32 target using MinGW compiler.
Preliminary analysis indicates that the major hurdle to achieve the initial
Windows port should be the inotify syscall()'s used in the MiniDLNA source
code. This functionality must be re-implemented using the Windows
3) Porting to Windows Service
Implement the MiniDLNA server as a Windows Service: Just as MiniDLNA can
be started as a deamon under Linux the windows port should also run as a
windows service. In addition, there should be the possibility to check the
status or start/stop/restart the MiniDLNA server either via a tray icon or
shortcuts under Start->Programs menu.
Because MiniDLNA is an open-source program under GPL license you could
reuse code from other GPLed programs that run as Windows Service. There
are several such open-source projects that seem to use code derived from
sample code in the Windows Platform SDK.
4) Trim down external dependencies
In the source file "metadata.c", MiniDLNA parses input media files for meta
data like title, artist or playback duration. MiniDLNA requires a rather
large number of external libraries for this task like libjpeg, libid3tag,
libexif, libavformat and libavcodec. Especially, libavformat and libavcodec
are full-featured (and large!) container muxing/demuxing and video/audio de-
and encoder libraries. MiniDLNA however doesn't use any de- or encoding
functionality at all.
Therefore, the meta data parsing in "metadata.c" should be changed to
interface with libmediainfo, which provides the necessary functionality:
[url removed, login to view]
At least the references to libavformat and libavcodec should be replaced
by libmediainfo. However, libmediainfo has potential to replace also other
dependencies (like libid3tag, libjpeg, libvorbis, etc.). So the goal of this
step is to reduce the number of external dependencies as much as
Please only bid if you have read and understood the project description!
As there seems to be common misunderstanding: The OS X port of MiniDLNA already exists and it is functional. So I don't expect any further work on the existing OS X code. Just MiniDLNA for OS X and MiniDLNA for Linux currently reside in two distinct code branches. The task of this project is to merge the branches into one code base. This should actually represent just a minor fraction of the total complexity of the project.
Also note that the integration of the existing OS X code is of minor importance to me. So if you refrained from considering this project so far because you have only experience with Windows but not with OS X this shouldn't prevent you from bidding. If you are otherwise convincing we can drop the OS X requirement and you have good chances to be awarded with the project.
And with regard to the skills you should have: MiniDLNA is a program written in C language and using some lower-level interfaces (like inotify). So this is not about scripting! Therefore, I expect that you at least have skills in C programming...
Meanwhile, MiniDLNA has been ported to Windows using Cygwin. The patches are available upstream at:
This should significantly simplify this project - especially Task 2). Please consider.
8 freelancers are bidding on average $7075 for this job
Can help... I am an expert... please check my reviews, qualifications and latest projects i have worked on... please provide more details so that i can give you an accurate bid...
Hi, i can port it wo any windows OS in the moment. Porting it to mac would be possible at a later stage. If you need my help porting the server let me know. best regards Oliver
i have deep knowledge on Linux & [url removed, login to view] also have different type of server like web server,Dns [url removed, login to view] language & programming.
You have given almost all the details required for completing the job. I can try completing this job meeting your requirements in the given time line.