Media Services in MeeGo: charting the wild dragons' land
There are multiple tools available on GNU/Linux to allow creation and processing of visual and audio content. In specialized GNU/Linux distributions, however, choices are often limited to few in order to maintain high efficiency of integration between hardware and software. A good amount of work is dedicated to tuning of performance and power consumption of ready-made libraries and frameworks.
There are also new challenges specific to constraint resources environments. While memory and processor speed are becoming increasingly available on mobile devices, there are still limitations in simultaneous access to specialized devices like camera components and hardware acceleration units. In addition, prolonged use of sensing equipment causes battery to drain. But probably most important challenges are created by media content itself.
Resolution of photos taken with camera devices has increased dramatically. It is already bigger not only than the screen of the mobile device but a typical desktop monitor as well. Nokia N900 camera has 5MPix resolution which is 2.4 times more than FullHD pixel-wise. It is 13 times more pixels than the screen of Nokia N900 itself. Scaling image down in order to show it on the screen is required and it is tip of an iceberg.
Optimizing for common tasks is needed. Sadly, common tasks in cooperative constraint resources environments are not really taken into account by widely available libraries. Exposing application's intent of use for the requested media content can help in these optimizations. Knowing that application will never try to modify an image but use it only for visualization purposes, allows to maintain common repository of scaled-down versions. Providing common mechanism for changing image, video, or audio meta information enhances interoperability between applications. Arbitrating access to potentially scarce resource so that applications are not blocking each other gives smoother user experience.
Media content is not only available locally on the device. It is increasingly downloaded from social networks and other sources, shared back to fellow users and its life often spans multiple applications via complex use patterns. Collaborating between applications on media content history gives possibilities for richer user experiences. Common sharing, accounts and single sign-on support would give media flow without disturbance from one application to another to external services.
We create new tools and contributing back enhancements to existing ones. The session is outlining roadmap for changes required and below is incomplete list of projects referenced:
- Qt and Qt Mobility Multimedia
- MeeGo Image Editor infrastructure, http://maemo.gitorious.org/meego-image-editor
- MeeGo multimedia components, http://meego.gitorious.org/maemo-multimedia
- Accounts and Single Sign-on, http://gitorious.org/accounts-sso
- Tracker, http://projects.gnome.org/tracker/
The conference organizing committee has put together slide templates for presenters to use if they so choose. Feel free to take and modify as you like!
