So I decided to do a regular Blog about the fascinating stuff going on. This will be mostly a series of interviews with various team members to answer some questions and share information about the development of MediaPortal with you all.
The Upcoming Release of MediaPortal 1.1.0
1. What has delayed the release of MP 1.1.0?
Our main focus for MediaPortal 1.1.0 is on stability and compatibility. Microsoft Windows 7 is quite a big hit, and we have to ensure that MediaPortal 1.1.0 is fully compatible with it. But this meant that we had to do very big changes in MediaPortal and the TV Server for the 1.1.0 release. These changes, and the age of the MediaPortal codebase (core), did take a lot longer than expected. But we concluded that it is better to delay the release instead of pushing out a partly working version.
2. What do you mean by the age of the codebase (core)?
MediaPortal started as a fork of XBMC. This means that you build a new application, based on the source code of another. Over the years, more and more code from XBMC was removed by newly written code from our developers. But you can still find a lot of original XBMC code in ours.
Now the problem is the foundation (core) of MediaPortal. No one would have guessed the 'monster' it would grow into one day, and that’s why the core is not able to allow us to extend MediaPortal the way we want.
Recently we added a very small change, to display a mute icon onscreen. As a result, we had an extreme slowdown in GUI responsiveness. It took us nearly two weeks to track down the issue to this change, and we are still not fully clear why this change caused the slowdown.
There are countless examples in which one minor change broke something in a completely unrelated feature, and this is because the foundation of MediaPortal is overloaded with what we want it to do. Areas such as the skin engine are full of undocumented hacks and workarounds; so most developers don’t dare to touch this beast.
This is why we started working on MediaPortal 2, where we have one stable and "simple" core, and "everything else" is just a plugin. In MediaPortal it’s the other way around. Pretty much everything has to be inside the Core, which does not help the stability at all.
3. I noticed there are a lot of great patches, especially skin patches, which did not make it in the MP 1.1.0 release. As we are now in a ‘feature freeze’, when will those be included?
MediaPortal 1.1.0 is currently planned to be the last official release of MediaPortal, since Albert has managed to get MediaPortal 2 to a state of development where more developers of the team can start working on it. However, since not all of our developers feel able to help to create major features from scratch in MediaPortal 2, there might be one additional "Feature" release of MediaPortal 1. This has not been decided yet. We will inform the community as soon as we come to a conclusion on that matter.
4. Why have you not included the major popular plugins in MP 1.1.0?
When I started to use MediaPortal, the developers invited community developers into the team and they then added their (community) plugins into MediaPortal. This did add a lot of the "basic" features to MediaPortal which we still use today, but it also caused us huge problems.
Before we released MediaPortal 0.2.3, we had a lot of none essential plugins and about four skins inside our project which were no longer working, and the original author had left the team long ago.
Another issue was that some designers added support for community plugins into our default skin. With a stable release cycle of one year, this was a disaster for us, as well as the developers of the community plugins, who faced false bug reports based on the outdated skin files distributed with MediaPortal. So, we concluded that MediaPortal should only provide basic functionality, and allow the user to extend it by community plugins and skins which are created and maintained by the community. By doing that we not only ensure the stability of the main application, but also allow our community plugin developers complete freedom about their work.
5. What does TsReader do for a user, and why is it so important?
Every time you play a video or watch TV, then a "DirectShowGraph" is built. This sounds very complex and techie, but it is very simple actually. Let's say you want to play a video you recorded with MediaPortal i.e."Toy Story.ts". Then this file is one big "Container" which includes all sorts of different data. Such as the video, maybe multiple audio streams in different languages and even subtitles.
It is the job of our TsReader filter, to open this file and split it into its individual contents, to make them separately available. That’s why it is also called a ‘Splitter’. Now Video and Audio filters (also called Codecs) are able to take the video and audio streams, process them, and send them to video and audio renderers so you can ultimately watch the video or Live TV.
This procedure is the same for all kinds of containers such as .mkv, .avi, .mpg, .mp4, to name a few; but for these files Splitters other than TsReader are used.
6. Why does MP use the ts format and not just mpg?
The TV Server in MediaPortal used to record in mpg format as well. But there is an ancient bug inside the mpg Splitter (which is included in Windows), that causes fatal or random playback issues. So, we had two choices: create our own mpg splitter (MpgReader), or just focus on the Transport Stream (*.ts) format, which is now supported by many editing applications in case a user wants to cut them. We chose the latter, because mpg is a no longer among the popular container formats, and developing our own mpg splitter would have been a huge task.
7. Can you play ts files in any player, or do you have to convert them?
You can play them in VLC, MediaPlayer Classic and even Windows Media Player.
8. What is NALU?
NALU stands for "Network Abstraction Layer Unit". Basically Video codecs are very "picky" about how you send them the video stream. By adding NALU support to TsReader, we were able to support more video codecs, without breaking the support for other video codecs.
9. What new codecs does MP 1.1.0 support?
In MediaPortal 1.1.0 you are now able to use the inbuilt audio and video codecs of Windows 7, MediaPlayer Classic Home Theater Video Codec and DivX h.264 HD. Since adding NALU support was a general change, we cannot give any specific number about how many codecs are supported. In fact, pretty much any codec should work now.
10. I thought MP already supported HD playback and recording. What is the added advantage of DivX h.264 support?
HD recording and playback are two different things. All you need to be able to record HD shows is a TV-Card which supports it; and HD channels of course. There is no video codec involved in recording (neither SD nor HD), since the received, digital signals are already encoded in h.264.
HD video codecs are needed for the playback of h.264 content, which was already supported in previous releases of MediaPortal. The problem was that not all codecs were able to connect to our TsReader which is used in Live TV and for ts files playback.
We tried to add support for the previously mentioned codecs manually, before we added NALU support. The result was that when we had Windows DVD DTV codecs working with TsReader, then the DivX h.264 HD codec did not work, and so on. This was why we concluded that we require NALU support to have all codecs supported.
11. What feature of MP 1.1.0 are you most excited about and what is so special about it?
I am most excited about the revised MediaPortal Extensions Installer (MPEI) Dukus has created to allow our users to install new community plugins and skins with ease. The new version now provides skin designers and plugin developers with a lot more freedom to customize their installation. This will hopefully make the MediaPortal Extensions Installer become "THE" distribution tool for community plugin developers and skin designers, so users only have to use one method for all skins and plugins.
12. So when will MP 1.1.0 RC be released?
I am sure that is the question on everyone's mind, and I wish I could give a definite date. We are getting very close and as long as we don't run into any problems I would say within weeks, not months. I will post an announcement of the release date here as soon as I can. So stay tuned for that.
Thank you for taking the time to talk with me Infinityloop and for explaining technical issues in such a clear way. Now I really can't wait for MP 1.1.0 release!