Grilo: Easing integration of multimedia content in applications (LinuxTag 2010)
-
Upload
igalia -
Category
Technology
-
view
86 -
download
0
description
Transcript of Grilo: Easing integration of multimedia content in applications (LinuxTag 2010)
![Page 1: Grilo: Easing integration of multimedia content in applications (LinuxTag 2010)](https://reader036.fdocuments.us/reader036/viewer/2022081400/5558e37cd8b42ad7138b4ded/html5/thumbnails/1.jpg)
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
![Page 2: Grilo: Easing integration of multimedia content in applications (LinuxTag 2010)](https://reader036.fdocuments.us/reader036/viewer/2022081400/5558e37cd8b42ad7138b4ded/html5/thumbnails/2.jpg)
About myself
➔ Working at Igalia since 2003.
➔ Involved with GNOME and Maemo.
➔ MAFW, the Media Application Framework for Maemo.➔ GStreamer, minor contributions.➔ Grilo.
![Page 3: Grilo: Easing integration of multimedia content in applications (LinuxTag 2010)](https://reader036.fdocuments.us/reader036/viewer/2022081400/5558e37cd8b42ad7138b4ded/html5/thumbnails/3.jpg)
Modern Media Applications- Service Integration -
![Page 4: Grilo: Easing integration of multimedia content in applications (LinuxTag 2010)](https://reader036.fdocuments.us/reader036/viewer/2022081400/5558e37cd8b42ad7138b4ded/html5/thumbnails/4.jpg)
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?
![Page 5: Grilo: Easing integration of multimedia content in applications (LinuxTag 2010)](https://reader036.fdocuments.us/reader036/viewer/2022081400/5558e37cd8b42ad7138b4ded/html5/thumbnails/5.jpg)
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.
![Page 6: Grilo: Easing integration of multimedia content in applications (LinuxTag 2010)](https://reader036.fdocuments.us/reader036/viewer/2022081400/5558e37cd8b42ad7138b4ded/html5/thumbnails/6.jpg)
A solution for Maemo- MAFW -
![Page 7: Grilo: Easing integration of multimedia content in applications (LinuxTag 2010)](https://reader036.fdocuments.us/reader036/viewer/2022081400/5558e37cd8b42ad7138b4ded/html5/thumbnails/7.jpg)
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.
![Page 8: Grilo: Easing integration of multimedia content in applications (LinuxTag 2010)](https://reader036.fdocuments.us/reader036/viewer/2022081400/5558e37cd8b42ad7138b4ded/html5/thumbnails/8.jpg)
A solution for everyone:Grilo
- Overview -
![Page 9: Grilo: Easing integration of multimedia content in applications (LinuxTag 2010)](https://reader036.fdocuments.us/reader036/viewer/2022081400/5558e37cd8b42ad7138b4ded/html5/thumbnails/9.jpg)
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.
![Page 10: Grilo: Easing integration of multimedia content in applications (LinuxTag 2010)](https://reader036.fdocuments.us/reader036/viewer/2022081400/5558e37cd8b42ad7138b4ded/html5/thumbnails/10.jpg)
Grilo: Overview
![Page 11: Grilo: Easing integration of multimedia content in applications (LinuxTag 2010)](https://reader036.fdocuments.us/reader036/viewer/2022081400/5558e37cd8b42ad7138b4ded/html5/thumbnails/11.jpg)
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
![Page 12: Grilo: Easing integration of multimedia content in applications (LinuxTag 2010)](https://reader036.fdocuments.us/reader036/viewer/2022081400/5558e37cd8b42ad7138b4ded/html5/thumbnails/12.jpg)
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.
![Page 13: Grilo: Easing integration of multimedia content in applications (LinuxTag 2010)](https://reader036.fdocuments.us/reader036/viewer/2022081400/5558e37cd8b42ad7138b4ded/html5/thumbnails/13.jpg)
Grilo- Current Status -
![Page 14: Grilo: Easing integration of multimedia content in applications (LinuxTag 2010)](https://reader036.fdocuments.us/reader036/viewer/2022081400/5558e37cd8b42ad7138b4ded/html5/thumbnails/14.jpg)
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
![Page 15: Grilo: Easing integration of multimedia content in applications (LinuxTag 2010)](https://reader036.fdocuments.us/reader036/viewer/2022081400/5558e37cd8b42ad7138b4ded/html5/thumbnails/15.jpg)
Grilo: Current Status
➔ Available plugins:➔ Youtube➔ Vimeo➔ Jamendo➔ Apple Trailers➔ Flickr➔ Podcasts➔ SHOUTCast➔ UPnP➔ Bookmarks➔ Filesystem
➔ Last.fm album art➔ Metadata store
![Page 16: Grilo: Easing integration of multimedia content in applications (LinuxTag 2010)](https://reader036.fdocuments.us/reader036/viewer/2022081400/5558e37cd8b42ad7138b4ded/html5/thumbnails/16.jpg)
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
![Page 17: Grilo: Easing integration of multimedia content in applications (LinuxTag 2010)](https://reader036.fdocuments.us/reader036/viewer/2022081400/5558e37cd8b42ad7138b4ded/html5/thumbnails/17.jpg)
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
![Page 18: Grilo: Easing integration of multimedia content in applications (LinuxTag 2010)](https://reader036.fdocuments.us/reader036/viewer/2022081400/5558e37cd8b42ad7138b4ded/html5/thumbnails/18.jpg)
Collaborate with us!
![Page 19: Grilo: Easing integration of multimedia content in applications (LinuxTag 2010)](https://reader036.fdocuments.us/reader036/viewer/2022081400/5558e37cd8b42ad7138b4ded/html5/thumbnails/19.jpg)
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
![Page 20: Grilo: Easing integration of multimedia content in applications (LinuxTag 2010)](https://reader036.fdocuments.us/reader036/viewer/2022081400/5558e37cd8b42ad7138b4ded/html5/thumbnails/20.jpg)
Demos
![Page 21: Grilo: Easing integration of multimedia content in applications (LinuxTag 2010)](https://reader036.fdocuments.us/reader036/viewer/2022081400/5558e37cd8b42ad7138b4ded/html5/thumbnails/21.jpg)
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).
![Page 22: Grilo: Easing integration of multimedia content in applications (LinuxTag 2010)](https://reader036.fdocuments.us/reader036/viewer/2022081400/5558e37cd8b42ad7138b4ded/html5/thumbnails/22.jpg)
Thanks!