Upload
igalia
View
86
Download
0
Tags:
Embed Size (px)
DESCRIPTION
By Iago Toral Quiroga.
Citation preview
static void_f_do_barnacle_install_properties(GObjectClass
*gobject_class){
GParamSpec *pspec;
/* Party code attribute */ pspec = g_param_spec_uint64
(F_DO_BARNACLE_CODE, "Barnacle code.", "Barnacle code",
0, G_MAXUINT64,
G_MAXUINT64 /* default value */,
G_PARAM_READABLE | G_PARAM_WRITABLE |
G_PARAM_PRIVATE);
g_object_class_install_property (gobject_class,
F_DO_BARNACLE_PROP_CODE,
LinuxTag, Berlin, June 2010
Iago Toral [email protected]
GRILOEasing integration of multimedia content in applications
About myself
➔ Working at Igalia since 2003.
➔ Involved with GNOME and Maemo.
➔ MAFW, the Media Application Framework for Maemo.➔ GStreamer, minor contributions.➔ Grilo.
Modern Media Applications- Service Integration -
Modern Media Applications
➔ Integration of content from multiple sources➔ YouTube, Jamendo, Vimeo, SHOUTCast, Last.fm, Local
media, iPod, UPnP, Podcasts, ...➔ Each source requires a lot of work:
➔ Learning: many protocols, APIs, support libraries, particularities, etc➔ Design: how do we communicate the UI with all these different
services? plugin API? Do we have the flexibility we need? etc➔ Implementation: we need UI and service-logic implementation on the
application side for each on them.➔ Maintenance: we have to keep the implementation updated and fix
bugs, react to changes in the protocols, the serivce APIs, etc➔ Many applications doing all this work independently
➔ Application specific solutions➔ Can't we reuse more code?
Modern Media Applications
➔ Platform support for media source abstraction.➔ Just the same GStreamer does for media playback.➔ Provide a framework that exposes a single, easy to
understand and use API to deal with all the services.➔ Hide all the complexity from the UI developers. ➔ Central point for platform developers to work together.
➔ UI developers to focus on UI development.➔ Platform developers to focus on service integration and support.➔ Code a service once, reuse it in many applications.
➔ Great complement to existing multimedia frameworks.➔ The platform would be more appealing to third party developers.➔ This framework provides the media.➔ GStreamer (or others) provide the means to play it back.
A solution for Maemo- MAFW -
MAFW and Maemo
➔ MAFW: Media Application Framework for Maemo.
➔ Developed for its Fremantle version, targetting the N900.➔ MAFW provides platform support in Maemo for the
integration of multimedia content in applications.➔ But it is too Maemo / Fremantle / N900 specific.
➔ Developed with Maemo, Fremantle and the N900 in mind.➔ Not so easy to reuse that work in other platforms / products.
➔ Its development is not as open as it could be.➔ Decissions are not made through public channels.➔ It is not easy for community developers to get involved.
A solution for everyone:Grilo
- Overview -
Grilo: Overview
➔ A framework for easing access to multimedia content from applications.
➔ Platform / application agnostic.➔ Open development model.➔ Free Software, licensed under the LGPL.➔ C, Glib, GObject.
Grilo: Overview
Grilo: Overview
➔ High level, easy to use APIs.➔ Browse(), Search(), Metadata(), etc
➔ Lowers learning curve.➔ No need to learn all those different protocols, technologies
and service particularities, just learn how to use Grilo.
➔ Lowers implementation effort.➔ Most of the work is done in Grilo and supporting libraries.
➔ Reduces and shares maintenance needs.➔ Grilo and platform developers maintain the services.➔ Application developers maintain their UI frontends
Grilo: Overview
➔ Development in Grilo benefits all applications.➔ New plugins➔ New features➔ Bug fixes➔ Performance improvements➔ Etc
➔ More efficient approach to development.➔ Write a backend once, reuse it everywhere. No more
application specific solutions.➔ More developer time to work on better services for everyone.
Grilo- Current Status -
Grilo: Current Status
➔ Basic APIs are defined:➔ Browse➔ Search➔ Query➔ Cancelation➔ Metadata resolution➔ Configuration➔ Source / plugin loading and lookup
➔ But it is not API stable yet➔ We are still fine tunning the APIs➔ We are still adding more features
Grilo: Current Status
➔ Available plugins:➔ Youtube➔ Vimeo➔ Jamendo➔ Apple Trailers➔ Flickr➔ Podcasts➔ SHOUTCast➔ UPnP➔ Bookmarks➔ Filesystem
➔ Last.fm album art➔ Metadata store
Grilo: Current Status
➔ Bindings➔ Vala support➔ Experimental introspection support
➔ Documentation➔ Available in the project repository (--enable-gtk-doc)➔ Overview➔ Quick start guide➔ Code examples➔ API documentation
Grilo: Current Status
➔ Test UI (grilo-test-ui)➔ A GTK+ playground application.➔ Useful for plugin testing.
➔ Related sub-projects:➔ Totem plugin.➔ Rythmbox plugin.➔ Grilo-mediaserver (rygel-grilo)➔ MAFW-grilo➔ Clutter Grilo player
Collaborate with us!
Collaborate with us!
➔ Project hosted by GNOME➔ Wiki: http://live.gnome.org/Grilo➔ Git repositories:
➔ git://git.gnome.org/grilo➔ git://git.gnome.org/grilo-plugins➔ git://git.gnome.org/rygel-grilo
➔ IRC: grilo @ GIMPNet➔ Mailing list:
➔ http://mail.gnome.org/mailman/listinfo/grilo-list➔ Bugzilla:
➔ http://bugzilla.gnome.org➔ Category: Other, Product: grilo
Demos
Grilo: Demos
➔ Grilo Test UI➔ A GTK+ playground for testing purposes.
➔ Totem plugin➔ A plugin for the Totem video player.
➔ Rhythmbox plugin➔ A plugin for the Rhythmbox audio player.
➔ Grilo-mediaserver➔ A media server implementing GNOME's media server
specifications.➔ Integration with Rygel (GNOME's UPnP media server).
Thanks!