MediaPortal 2 Overview
Our Goals for MediaPortal 2
MediaPortal 2 will be the successor, or next generation, of MediaPortal 1. After several years of development we realized that the core of MediaPortal 1 could simply not support everything we wish to do now, let alone expand to meet future needs and incorporate technological advancements.· So we took a hard look at version 1 and evaluated what was working well, and what was not.
The result of this evaluation was a fundamental new approach toward the underlying core structure. Simply put, in MediaPortal 2, everything is built in a modular way. This new architecture offers more stability, flexibility and testability for not only our main application, but also for all extensions. It eliminates the "spaghetti code" seen in MP 1, where the smallest change in one area could cause a completely unrelated feature to break.
The ultimate goal is to provide the best Media Center on earth - for FREE!
Highlights of MediaPortal 2
One of the main advantages of the new architecture is its flexibility. If a new function or feature is needed, our modular approach makes it very simple to add that function via our very flexible plugin concept, either as part of the core application or as an extension. Functions code, skin, localization resources, database, media access code, players and many other components can be simply replaced and/or extended. Plugins may be easily added as needed, see our wiki pages on Plugin Architecture and Developing Plugins
We have also introduced much more stringent code quality requirements for MP 2 in order to avoid the many problems we had with MP 1. In particular we have improved the code documentation as you can see in our Development Documentation Standards in the wiki.
MediaPortal 2 will be implemented as a client-server system. The server will manage all attached MP 2 clients, their local resources (shares), some global preferences and so on. Basically, the server will contain the Media Library and the recording engine for TV and other broadcasts (like radio, web-TV etc.). You will find an Architecture Overview in our wiki.
TV will be implemented as a media provider, which means that it can transparently run at the server and/or at the client. There won't be a need for a dedicated or separate TV server component as cab see on the Architecture Requirements wiki page.
The server can automatically start for upcoming recordings and shut down after recording is completed; or simply run 24/7. The client automatically connects to its home server on start-up. It provides the user interface, just as in MP 1. The client application can be closed after usage. In a single seat setup, server and client run on the same machine and typically will start and shutdown together.
This functionality is well hidden, running in the background. You do not have to bother much during the setup or while using it.
UPnP has become an industry standard for communication of multimedia devices. The MediaPortal 2 communication system is built on the UPnP protocol to allow you to access your media at ease.
The MediaPortal 2 UPnP library was created from scratch to avoid the limitations that available libraries, such as from Intel, might impose.
For the media interface, MediaPortal 2 communicates over its own, powerful UPnP services and provides specific UPnP data structures for the communication, which are very flexible and which support all features of MP 2. The system is easily extendible through additional plugins which can simply add additional UPnP services, for example. Even the standard UPnP/AV services will be added as a plugin.
State of the Art Skin Engine
We threw away the skin engine from MediaPortal 1 and created a new one from scratch for MediaPortal 2.
This new engine was inspired by the Windows Presentation Foundation (WPF). WPF's emphasis on vector graphics allows most controls and elements to be scaled without loss in quality or pixelation, which means skins can scale to any screen size.
Even though it is extremely powerful, we discovered WPF has a few limitations for a Media Center. So we created a slight derivation, called MPF which does not suffer from these limitations. MPF is 90% compatible with WPF, so if you know WPF, it will be easy for you to understand MPF. See our Skin Design wiki pages for details.
The Skin Engine is almost complete, and concept designs have already begun for new MP 2 skins. Seeing is believing!
Integrated Database Engine
MediaPortal 2 includes its own database engine. This means you do not have to bother with SQL-Server. However, advanced users still have the option to choose an already present SQL Server to be used instead of the internal one. Other database engines can easily be supported by simply writing a connector for them.
To store the contents of the media library and other data from plugins, the MediaPortal 2 server provides a database interface where each plugin can install its own subschema. The system automatically tracks database schema scripts, schema updates and uninstallation of subschemas.
The Time Has Come to Get Involved!
Although we have made significant progress, we still have a long way to go until MediaPortal 2 can completely replace MediaPortal 1. What we need are skilled people interested to work with us on version 2 of MediaPortal.
We are looking for developers who are willing to step into the world of MP2 and learn the concepts behind it. Developing for MP2 is great fun, but also needs much discipline.
Developers get all help they need, but we also expect from them that they are proactive. We have a Wiki which contains much information, and this documentation is constantly extended. Please read our MediaPortal 2 Development Documentation.
Developers should have a good programming background and provide the ability to abstract from concrete problems and to develop and conceive concepts.
Designers and Artists
MediaPortal 2 needs a default skin which shows what MediaPortal 2 is able to do. For that we need designers who have experience with designing a graphical user interface (GUI). Coding skills are an advantage but not necessary.
We also need a lot of graphics to be created from scratch. So we need skilled artists in our team as well.
Where to start?
You now have an basic idea about what we are working on, so where should you start if you would like to get involved?
Our wiki already contains a great deal of information including detailed explanations of the fundamentals of MediaPortal 2. You will also find some development tutorials which will help you get started.
You can ask questions, provide feedback, submit patches and start to work your way into MediaPortal 2 in the MediaPortal 2 Development Forum
Finally you will also want to have a look at the source code. How and where to get the latest sources is described in the wiki.
Typically, you will checkout the "MediaPortal" directory from our development trunk, since it represents the current stable point of MediaPortal 2 development.
Be aware that almost all development is done in branches; only stable changes are merged into the trunk.