Grilo: present and future  Juan A. Suárez Romero <jasuarez@igalia.com>
Outline●   Why Grilo?●   What is Grilo?●   Next coming
Playing ContentFetch   Multimedia    Play        application
Playing Content                      Format? ogg, mkv, aviFetch   Multimedia    Codec? mp3, h264, theora        application
Playing ContentFetch   Multimedia    Gstreamer                          .        application    Plugins
Fetching ContentGVFS/GIO/POSIX   Multimedia    Gstreamer                                   .                 application  ...
Fetching ContentOnline/offline contentDifferent protocolsDifferent APIs                         Multimedia    Gstreamer   ...
Fetching Content
Fetching Content Grilo       Multimedia    Gstreamer   .                           .Plugins      application    Plugins
Grilo Key Components                                           Plugin                      registers           Registry   ...
Grilo Sources●   Provides the multimedia content●   Plugins    – Dynamic loaded libraries    – Each plugin provides one or...
Grilo Sources                   GrlMediaSource                                              GrlMetadataSourceGrlYoutubeSou...
Grilo Sources●   Source can declare new metadata keys●   Trade-off between application and plugin    developers●   Operati...
Grilo Sources    ●    Cooperation between sources (full resolution)                      search (tracker, “offspring”,    ...
Whats coming?
XML Plugins
Caps/Opts●   How to filter results?    –   Filter by type    –   Filter by specific key●   Problems    –   Support in sour...
Caps/Optssearch (GrlMediaSource *source,        const gchar *text,        const GList *keys,        guint skip,        gui...
Caps/Opts●   Capabilities (GrlCaps)    –   Defines what the source can do    –   Currently, different types of filtering  ...
Caps/Opts●   Options (GrlOperationOptions)    –   Defines what the application want to do    –   Matches the source capabi...
Plugins Hierarchy GrlMediaPluginGrlMetadataSource   GrlLastfmAlbumartSource GrlMediasource       GrlJamendoSource
Plugins Hierarchy                          1..*GrlPlugin                             GrlSource              GrlMetadataSou...
Plugins Hierarchy                          1..*GrlPlugin                             GrlSource            GrlLastfmAlbumar...
Improved full resolution algorithm●   Several metadata sources solving the same    key    –   If one fails, try the next o...
Resources●   Wiki    –   http://live.gnome.org/Grilo●   Source code    –   git://git.gnome.org/grilo    –   git://git.gnom...
Credits●   Television Icon by The Noun Project (CC Attribution)    http://www.iconspedia.com/icon/television-icon-19995.ht...
Upcoming SlideShare
Loading in …5
×

Grilo: present and future (GUADEC 2012)

324 views

Published on

By Juan A. Suárez Romero.

This talk will focus on Grilo[1], a framework which purpose is to provide media application developers with proper tools to access online and offline multimedia. More specifically, Grilo provides:

- A single, high-level API that abstracts the differences among various media content providers, allowing application developers to browse and search content from various services and sources with little work on the application side.

- A collection of plugins for accessing content from various media providers. Developers can share efforts and code by writing plugins for the framework that are application agnostic.

- A flexible API that allows plugin developers to write plugins of various kinds.

Today, Grilo is already being used by various GNOME applications, such as Totem[2], Rhythmbox[3] or MediaExplorer[4] and it will have even more relevance in the future of the platform, where it is expected to be a key component of the new multimedia applications[5][6].

During this talk we will look at the current version of Grilo, and we will cover the new features that are coming for the 0.2 release: new API aimed to be extensible, new capabilities for filtering, a new design of plugins architecture, support for declarative plugin development, and, of course, the new plugins.

[1] http://live.gnome.org/Grilo
[2] http://projects.gnome.org/totem/
[3] http://projects.gnome.org/rhythmbox/
[4] http://media-explorer.org/
[5] http://live.gnome.org/Design/Apps/Music
[6] http://live.gnome.org/Design/Apps/Videos

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
324
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
3
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Grilo: present and future (GUADEC 2012)

  1. 1. Grilo: present and future Juan A. Suárez Romero <jasuarez@igalia.com>
  2. 2. Outline● Why Grilo?● What is Grilo?● Next coming
  3. 3. Playing ContentFetch Multimedia Play application
  4. 4. Playing Content Format? ogg, mkv, aviFetch Multimedia Codec? mp3, h264, theora application
  5. 5. Playing ContentFetch Multimedia Gstreamer . application Plugins
  6. 6. Fetching ContentGVFS/GIO/POSIX Multimedia Gstreamer . application Plugins
  7. 7. Fetching ContentOnline/offline contentDifferent protocolsDifferent APIs Multimedia Gstreamer . application Plugins
  8. 8. Fetching Content
  9. 9. Fetching Content Grilo Multimedia Gstreamer . .Plugins application Plugins
  10. 10. Grilo Key Components Plugin registers Registry registers Metadata Metadata Metadata enriches Key Metadata Source 1..* Source Source Data contains Low level API Media Media Media Media provides 1..* Source Source Source High level API Audio Video Image BoxProvided by plugins
  11. 11. Grilo Sources● Provides the multimedia content● Plugins – Dynamic loaded libraries – Each plugin provides one or more sources● Two types of sources: – Media Sources – Metadata Sources
  12. 12. Grilo Sources GrlMediaSource GrlMetadataSourceGrlYoutubeSource GrlJamendoSource GrlUpnpSource GrlUpnpSource GrlGravatarSource GrlLasfmSource GrlUpnpSourcelibgrlyoutube.so libgrljamendo.so libgrlupnp.so libgrlgravatar.so libgrllastfm-albumart.so
  13. 13. Grilo Sources● Source can declare new metadata keys● Trade-off between application and plugin developers● Operations – Media source: browse, search, metadata, remove, store, notify changes – Metadata source: resolve, store specific metadata
  14. 14. Grilo Sources ● Cooperation between sources (full resolution) search (tracker, “offspring”, search (tracker, “offspring”, url, lyrics, lyrics url, lyrics, title, thumbnail, thumbnail title, thumbnail, Media Source album) album, artist) artist Application Grilo core API GrlTrackerMedia send creates GrlMedia GrlMedia GrlMediaMetadata Source Metadata Source lyrics thumbnail GrlLyricsSource GrlLastfmSource
  15. 15. Whats coming?
  16. 16. XML Plugins
  17. 17. Caps/Opts● How to filter results? – Filter by type – Filter by specific key● Problems – Support in sources – Too many parameters in function signature
  18. 18. Caps/Optssearch (GrlMediaSource *source,  const gchar *text,  const GList *keys,  guint skip,  guint count,  GrlMetadataResolutionFlags *flags,  GrlMediaSourceResultCb callback,  gpointer user_data);
  19. 19. Caps/Opts● Capabilities (GrlCaps) – Defines what the source can do – Currently, different types of filtering ● Filter by media type ● Filter by key ● Filter by range – Extend for other capabilities ● Sorting
  20. 20. Caps/Opts● Options (GrlOperationOptions) – Defines what the application want to do – Matches the source capabilities – Simplifies the function signature search (GrlMediaSource *source, const gchar *text, const GList *keys, GrlOperationOptions *options, GrlMediaSourceResultCb callback, gpointer user_data);
  21. 21. Plugins Hierarchy GrlMediaPluginGrlMetadataSource GrlLastfmAlbumartSource GrlMediasource GrlJamendoSource
  22. 22. Plugins Hierarchy 1..*GrlPlugin GrlSource GrlMetadataSource GrlMediasource GrlLastfmAlbumartSource GrlJamendoSource
  23. 23. Plugins Hierarchy 1..*GrlPlugin GrlSource GrlLastfmAlbumartSource GrlJamendoSource
  24. 24. Improved full resolution algorithm● Several metadata sources solving the same key – If one fails, try the next one● Dependency not provided by media source – Chain the resolution
  25. 25. Resources● Wiki – http://live.gnome.org/Grilo● Source code – git://git.gnome.org/grilo – git://git.gnome.org/grilo-plugins● IRC – #grilo at irc.gnome.org● Mailing list – http://mail.gnome.org/mailman/listinfo/grilo-list
  26. 26. Credits● Television Icon by The Noun Project (CC Attribution) http://www.iconspedia.com/icon/television-icon-19995.html● Icon Mobile Phone by Jean Victor Balin http://openclipart.org/detail/29119● Hard Disk Icon by Mazenl77 (CC Attribution) http://www.iconspedia.com/icon/hard-disk-1600.html● Memory Card Icon by Custom Icon Design Studio http://www.gettyicons.com/free-icon/103/pretty-office-2-icon-set/free-memory-card-icon-png/● Vimeo, Flickr, Jamendo, YouTube and UpnP logos under copyright of their own brands● Option by rofltosh (CC BY-NC 2.0) http://www.flickr.com/photos/atomicbartbeans/71575328/● Hold on by Andrew Pescod (CC BY-NC-SA 2.0) http://www.flickr.com/photos/andrewpescod/175668680/● Train by Andifeelfine (CC BY-NC-ND 2.0) http://www.flickr.com/photos/andifeelfine/235779841/

×