SlideShare a Scribd company logo
1 of 24
Download to read offline
Grilo: Easy Access to Online Multimedia Content




                                  LinuxCon Europe 2012, Barcelona
                       Juan A. Suarez Romero <jasuarez@igalia.com>
Grilo: Easy Access to Online Multimedia Content




                                Introduction




   Grilo: Easy Access to Online Multimedia Content   LinuxCon Europe 2012, Barcelona
About me




       Juan A. Suárez Romero
              Computer engineer, Coruña University
              Working at Igalia since 2007
              Experience in multimedia
              Involved in Maemo and MeeGo
              Co-author of MAFW




   Grilo: Easy Access to Online Multimedia Content   LinuxCon Europe 2012, Barcelona
Outline



  1    Current problems


  2    Grilo


  3    Conclusions


  4    Thank you!




      Grilo: Easy Access to Online Multimedia Content   LinuxCon Europe 2012, Barcelona
Grilo: Easy Access to Online Multimedia Content




                       Current problems




   Grilo: Easy Access to Online Multimedia Content   LinuxCon Europe 2012, Barcelona
Many sources of content



    Online/offline sources
    Different protocol/API
    Sources that do not
    provide content
    (meta-information)




   Grilo: Easy Access to Online Multimedia Content   LinuxCon Europe 2012, Barcelona
Many different devices



    Different screen sizes
    Different hardware
    components
    Different platforms




   Grilo: Easy Access to Online Multimedia Content   LinuxCon Europe 2012, Barcelona
Current approach



       Develop one application per service
              Each application with different UX
              Not easily scalable: new sources require new applications
              Expensive maintenance
       In some cases, one application attending more than one
       service
              Services of the same type (e.g., Photo storage service)
              Define a common layer between application and the service

                      Not shared effort! Reinventing the wheel all time




   Grilo: Easy Access to Online Multimedia Content   LinuxCon Europe 2012, Barcelona
What we need?




  Stop reinventing the wheel!

       Platform-level solution for accessing multimedia content
              Provide homogeneous access to all content
              Scalable with new sources of information
              Collaboration!
              Consistent user experience
                      Users care about the content, not the provider




   Grilo: Easy Access to Online Multimedia Content   LinuxCon Europe 2012, Barcelona
Grilo: Easy Access to Online Multimedia Content




                                            Grilo




   Grilo: Easy Access to Online Multimedia Content   LinuxCon Europe 2012, Barcelona
What is Grilo?




       Framework focused on making discovery and browsing
       easy for application developers
              A single, high-level API for all the sources
              A collection plugins that provides access to the sources
              An extendable system to provide more plugins

       http://live.gnome.org/Grilo




   Grilo: Easy Access to Online Multimedia Content   LinuxCon Europe 2012, Barcelona
Architecture overview




   Grilo: Easy Access to Online Multimedia Content   LinuxCon Europe 2012, Barcelona
Media types and Keys


   Collection of keys and
   values
   Several keys provided by
   core: title, URL, author, . . .
           Plugins can extend them
           with new keys
   Support for multiple
   values
   Support for relations
   between keys




   Grilo: Easy Access to Online Multimedia Content   LinuxCon Europe 2012, Barcelona
Plugins and Sources


    Key component of the
    system
    Plugins are dynamically
    loaded by core
    Plugins create one or more
    sources
    Sources support multiple
    operations
           Browse, Search, Store,
           Remove, . . .
    All operations are optional




   Grilo: Easy Access to Online Multimedia Content   LinuxCon Europe 2012, Barcelona
Plugins and Sources


    Sources perform two main
    roles:
           Provide new media
           content
           Enrich already existent
           media content
    Sources collaborate among
    them to solve the requests




   Grilo: Easy Access to Online Multimedia Content   LinuxCon Europe 2012, Barcelona
Example of collaboration



       Developer wants to show content from UPnP server and
       play it
       They need the url to play, a title and a thumbnail to show
          1   Perform the request through core API
          2   Core checks if the requested keys are supported by the
              source
                      thumbnail is not supported by UPnP source
          3   Checks which sources are able to resolve thumbnail key
                      CoverArt source is able to
                      But it requires to know two keys: artist and album




   Grilo: Easy Access to Online Multimedia Content   LinuxCon Europe 2012, Barcelona
Example of collaboration



   4   Core checks if those required keys are supported by
       original UPnP source
              If not, repeat the process as in the case of thumbnail
   5   Perform the request in the UPnP source with the keys
       requested plus the new keys
   6   When the results arrive, send them to CoverArt source to
       include the thumbnail
   7   Send the final results to application

  Developer only needs to deal with one provider




   Grilo: Easy Access to Online Multimedia Content   LinuxCon Europe 2012, Barcelona
Implementing applications




       Main language is C
              Other languages supported through gobject introspection
              (Python, Javascript, Vala, . . . )
       Support for C++ (grilomm)
       Some initial support for Qt/QML




   Grilo: Easy Access to Online Multimedia Content   LinuxCon Europe 2012, Barcelona
Code example

 1    # ! / usr / bin / python
 2
 3    import sys
 4    from g i . r e p o s i t o r y import Grl
 5
 6    def main ( argv ) :
 7      i f l e n ( argv ) < 1 :
 8         p r i n t " Usage : m a k e _ l i s t . py < s e a r c h _ t e x t > "
 9         return 1
10
11       Grl . i n i t ( [ ] )
12       r e g i s t r y = Grl . R e g i s t r y . g e t _ d e f a u l t ( )
13       registry . load_all_plugins ( )
14       keys = [ Grl .METADATA_KEY_DURATION,
15           Grl . METADATA_KEY_TITLE,
16           Grl .METADATA_KEY_URL]
17       o p t i o n s = Grl . OperationOptions . new ( None )
18       options . set_count ( 2 0 0 ) ;
19       r e s u l t s = Grl . m u l t i p l e _ s e a r c h _ s y n c ( None , argv [ 0 ] , keys , o p t i o n s )
20
21       p r i n t " #EXT3MU"
22       f o r media in r e s u l t s :
23           i f i s i n s t a n c e ( media , Grl . MediaAudio ) :
24               p r i n t " #EXT3INF : " + s t r ( media . g e t _ d u r a t i o n ( ) ) + " , " + media . g e t _ t i t l e ( )
25               p r i n t media . g e t _ u r l ( )
26
27    i f __name__ == " __main__ " :
28       main ( sys . argv [ 1 : ] )




     Grilo: Easy Access to Online Multimedia Content                      LinuxCon Europe 2012, Barcelona
Implementing plugins

       Plugins must be written in C
       Adding support for writing plugins declaratively (in XML)
       Adding support for other languages (Lua)




   Grilo: Easy Access to Online Multimedia Content   LinuxCon Europe 2012, Barcelona
Grilo: Easy Access to Online Multimedia Content




                                Conclusions




   Grilo: Easy Access to Online Multimedia Content   LinuxCon Europe 2012, Barcelona
Resources


       Wiki
              http://live.gnome.org/Grilo
       Source code
              http://git.gnome.org/browse/grilo
              http://git.gnome.org/browse/grilo-plugins
              http://git.gnome.org/browse/grilomm
       IRC
              #grilo at irc.gnome.org
       Mailing list
              http://mail.gnome.org/mailman/listinfo/
              grilo-list

  Do not miss our booth in ground floor (in front of Rossini
  room)


   Grilo: Easy Access to Online Multimedia Content   LinuxCon Europe 2012, Barcelona
Grilo: Easy Access to Online Multimedia Content




                                  Thank you!




   Grilo: Easy Access to Online Multimedia Content   LinuxCon Europe 2012, Barcelona
Images used in this presentation




       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




   Grilo: Easy Access to Online Multimedia Content   LinuxCon Europe 2012, Barcelona

More Related Content

What's hot

Native Script by Sebastian Witalec
Native Script by Sebastian WitalecNative Script by Sebastian Witalec
Native Script by Sebastian Witalec
Simone Basso
 
Tech Days 2015: Multi-language Programming with GPRbuild
Tech Days 2015: Multi-language Programming with GPRbuildTech Days 2015: Multi-language Programming with GPRbuild
Tech Days 2015: Multi-language Programming with GPRbuild
AdaCore
 

What's hot (20)

OpenChain: How to manage OSS licenses for CI/CD development
OpenChain: How to manage OSS licenses for CI/CD developmentOpenChain: How to manage OSS licenses for CI/CD development
OpenChain: How to manage OSS licenses for CI/CD development
 
Toyota and Strategic Collaboration with the Community
Toyota and Strategic Collaboration with the CommunityToyota and Strategic Collaboration with the Community
Toyota and Strategic Collaboration with the Community
 
Building a Remote Control Robot with Automotive Grade Linux
Building a Remote Control Robot with Automotive Grade LinuxBuilding a Remote Control Robot with Automotive Grade Linux
Building a Remote Control Robot with Automotive Grade Linux
 
Getting started with .NET Core on Linux
Getting started with .NET Core on LinuxGetting started with .NET Core on Linux
Getting started with .NET Core on Linux
 
Not my problem - Delegating responsibility to infrastructure
Not my problem - Delegating responsibility to infrastructureNot my problem - Delegating responsibility to infrastructure
Not my problem - Delegating responsibility to infrastructure
 
WordLift 2.0
WordLift 2.0WordLift 2.0
WordLift 2.0
 
Aliaksei Skobeleu "Taking Control Over Code Metrics"
Aliaksei Skobeleu "Taking Control Over Code Metrics"Aliaksei Skobeleu "Taking Control Over Code Metrics"
Aliaksei Skobeleu "Taking Control Over Code Metrics"
 
Contributing to Automotive Grade Linux (AGL) and GENIVI Development Platform ...
Contributing to Automotive Grade Linux (AGL) and GENIVI Development Platform ...Contributing to Automotive Grade Linux (AGL) and GENIVI Development Platform ...
Contributing to Automotive Grade Linux (AGL) and GENIVI Development Platform ...
 
PDQ Programming Languages plus an overview of Alice - Frank Ducrest
PDQ Programming Languages plus an overview of Alice - Frank DucrestPDQ Programming Languages plus an overview of Alice - Frank Ducrest
PDQ Programming Languages plus an overview of Alice - Frank Ducrest
 
Docker, Microservices, and the Service Mesh
Docker, Microservices, and the Service MeshDocker, Microservices, and the Service Mesh
Docker, Microservices, and the Service Mesh
 
What is Kotlin Multiplaform? Why & How?
What is Kotlin Multiplaform? Why & How? What is Kotlin Multiplaform? Why & How?
What is Kotlin Multiplaform? Why & How?
 
Introduction on Mobile development
Introduction on Mobile developmentIntroduction on Mobile development
Introduction on Mobile development
 
Native Script by Sebastian Witalec
Native Script by Sebastian WitalecNative Script by Sebastian Witalec
Native Script by Sebastian Witalec
 
Tech Days 2015: Multi-language Programming with GPRbuild
Tech Days 2015: Multi-language Programming with GPRbuildTech Days 2015: Multi-language Programming with GPRbuild
Tech Days 2015: Multi-language Programming with GPRbuild
 
Setting up multilingual websites with Content Management Systems
Setting up multilingual websites with  Content Management SystemsSetting up multilingual websites with  Content Management Systems
Setting up multilingual websites with Content Management Systems
 
VR API Evolution, Generic Interfaces, and Factoring
VR API Evolution, Generic Interfaces, and FactoringVR API Evolution, Generic Interfaces, and Factoring
VR API Evolution, Generic Interfaces, and Factoring
 
BUD17-TR01: Philosophy of Open Source
BUD17-TR01: Philosophy of Open SourceBUD17-TR01: Philosophy of Open Source
BUD17-TR01: Philosophy of Open Source
 
Tech Days 2015: SPARK 2014
Tech Days 2015: SPARK 2014Tech Days 2015: SPARK 2014
Tech Days 2015: SPARK 2014
 
OmegaT "Team Project" feature: a case study
OmegaT "Team Project" feature: a case studyOmegaT "Team Project" feature: a case study
OmegaT "Team Project" feature: a case study
 
Kotlin native for iOS and Android
Kotlin native for iOS and AndroidKotlin native for iOS and Android
Kotlin native for iOS and Android
 

Similar to Grilo: Easy Access to Online Multimedia Content (LinuxCon Europe 2012)

Software Heritage: Archiving the Free Software Commons for Fun & Profit
Software Heritage: Archiving the Free Software Commons for Fun & ProfitSoftware Heritage: Archiving the Free Software Commons for Fun & Profit
Software Heritage: Archiving the Free Software Commons for Fun & Profit
Speck&Tech
 
Grilo: Easing integration of multimedia content in applications (LinuxTag 2010)
Grilo: Easing integration of multimedia content in applications (LinuxTag 2010)Grilo: Easing integration of multimedia content in applications (LinuxTag 2010)
Grilo: Easing integration of multimedia content in applications (LinuxTag 2010)
Igalia
 

Similar to Grilo: Easy Access to Online Multimedia Content (LinuxCon Europe 2012) (20)

Software Heritage: Archiving the Free Software Commons for Fun & Profit
Software Heritage: Archiving the Free Software Commons for Fun & ProfitSoftware Heritage: Archiving the Free Software Commons for Fun & Profit
Software Heritage: Archiving the Free Software Commons for Fun & Profit
 
OpenNTF Webinar 05/07/13: OpenNTF - The IBM Collaboration Solutions App Dev C...
OpenNTF Webinar 05/07/13: OpenNTF - The IBM Collaboration Solutions App Dev C...OpenNTF Webinar 05/07/13: OpenNTF - The IBM Collaboration Solutions App Dev C...
OpenNTF Webinar 05/07/13: OpenNTF - The IBM Collaboration Solutions App Dev C...
 
Alessandro Binhara - Presentación en la Convención Internacional de Interoper...
Alessandro Binhara - Presentación en la Convención Internacional de Interoper...Alessandro Binhara - Presentación en la Convención Internacional de Interoper...
Alessandro Binhara - Presentación en la Convención Internacional de Interoper...
 
Comparison of Open Source Software Home Automation Tools
Comparison of Open Source Software Home Automation ToolsComparison of Open Source Software Home Automation Tools
Comparison of Open Source Software Home Automation Tools
 
Stefano Fornari - Come creare e far crescere un progetto ed una community ope...
Stefano Fornari - Come creare e far crescere un progetto ed una community ope...Stefano Fornari - Come creare e far crescere un progetto ed una community ope...
Stefano Fornari - Come creare e far crescere un progetto ed una community ope...
 
Nokia and maemo in the new GNOME mobile context
 Nokia and maemo in the new GNOME mobile context Nokia and maemo in the new GNOME mobile context
Nokia and maemo in the new GNOME mobile context
 
Introduction to Python GUI development with Delphi for Python - Part 1: Del...
Introduction to Python GUI development with Delphi for Python - Part 1:   Del...Introduction to Python GUI development with Delphi for Python - Part 1:   Del...
Introduction to Python GUI development with Delphi for Python - Part 1: Del...
 
Asf icfoss-mentoring
Asf icfoss-mentoringAsf icfoss-mentoring
Asf icfoss-mentoring
 
Grilo: Easing integration of multimedia content in applications (LinuxTag 2010)
Grilo: Easing integration of multimedia content in applications (LinuxTag 2010)Grilo: Easing integration of multimedia content in applications (LinuxTag 2010)
Grilo: Easing integration of multimedia content in applications (LinuxTag 2010)
 
2014 10-14: GitHub plus FOSS == 1 million SPDX
2014 10-14: GitHub plus FOSS == 1 million SPDX2014 10-14: GitHub plus FOSS == 1 million SPDX
2014 10-14: GitHub plus FOSS == 1 million SPDX
 
Introduction to Application Development in Python and Gtk+ / Hildon @ Maemo 5
Introduction to Application Development in Python and Gtk+ / Hildon @ Maemo 5Introduction to Application Development in Python and Gtk+ / Hildon @ Maemo 5
Introduction to Application Development in Python and Gtk+ / Hildon @ Maemo 5
 
Primers or Reminders? The Effects of Existing Review Comments on Code Review
Primers or Reminders? The Effects of Existing Review Comments on Code ReviewPrimers or Reminders? The Effects of Existing Review Comments on Code Review
Primers or Reminders? The Effects of Existing Review Comments on Code Review
 
Complex Made Simple @ LF Energy Conference in Paris
Complex Made Simple @ LF Energy Conference in ParisComplex Made Simple @ LF Energy Conference in Paris
Complex Made Simple @ LF Energy Conference in Paris
 
Python 101 For The Net Developer
Python 101 For The Net DeveloperPython 101 For The Net Developer
Python 101 For The Net Developer
 
OpenChain Automation Case Study - September to December 2021
OpenChain Automation Case Study - September to December 2021OpenChain Automation Case Study - September to December 2021
OpenChain Automation Case Study - September to December 2021
 
Modern IoT and Embedded Linux Deployment - Berlin
Modern IoT and Embedded Linux Deployment - BerlinModern IoT and Embedded Linux Deployment - Berlin
Modern IoT and Embedded Linux Deployment - Berlin
 
<Programming> 2019 - ICW'19: The Issue of Monorepo and Polyrepo In Large Ente...
<Programming> 2019 - ICW'19: The Issue of Monorepo and Polyrepo In Large Ente...<Programming> 2019 - ICW'19: The Issue of Monorepo and Polyrepo In Large Ente...
<Programming> 2019 - ICW'19: The Issue of Monorepo and Polyrepo In Large Ente...
 
PyTorch for Delphi - Python Data Sciences Libraries.pdf
PyTorch for Delphi - Python Data Sciences Libraries.pdfPyTorch for Delphi - Python Data Sciences Libraries.pdf
PyTorch for Delphi - Python Data Sciences Libraries.pdf
 
Complex Made Simple @ Bird&Birds OpenChain Seminar
Complex Made Simple @ Bird&Birds OpenChain SeminarComplex Made Simple @ Bird&Birds OpenChain Seminar
Complex Made Simple @ Bird&Birds OpenChain Seminar
 
Interopability with Suse Linux: MoonLight Project
Interopability with Suse Linux: MoonLight Project Interopability with Suse Linux: MoonLight Project
Interopability with Suse Linux: MoonLight Project
 

More from Igalia

Building End-user Applications on Embedded Devices with WPE
Building End-user Applications on Embedded Devices with WPEBuilding End-user Applications on Embedded Devices with WPE
Building End-user Applications on Embedded Devices with WPE
Igalia
 
Automated Testing for Web-based Systems on Embedded Devices
Automated Testing for Web-based Systems on Embedded DevicesAutomated Testing for Web-based Systems on Embedded Devices
Automated Testing for Web-based Systems on Embedded Devices
Igalia
 
Running JS via WASM faster with JIT
Running JS via WASM      faster with JITRunning JS via WASM      faster with JIT
Running JS via WASM faster with JIT
Igalia
 
Introducción a Mesa. Caso específico dos dispositivos Raspberry Pi por Igalia
Introducción a Mesa. Caso específico dos dispositivos Raspberry Pi por IgaliaIntroducción a Mesa. Caso específico dos dispositivos Raspberry Pi por Igalia
Introducción a Mesa. Caso específico dos dispositivos Raspberry Pi por Igalia
Igalia
 

More from Igalia (20)

A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
Building End-user Applications on Embedded Devices with WPE
Building End-user Applications on Embedded Devices with WPEBuilding End-user Applications on Embedded Devices with WPE
Building End-user Applications on Embedded Devices with WPE
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
Automated Testing for Web-based Systems on Embedded Devices
Automated Testing for Web-based Systems on Embedded DevicesAutomated Testing for Web-based Systems on Embedded Devices
Automated Testing for Web-based Systems on Embedded Devices
 
Embedding WPE WebKit - from Bring-up to Maintenance
Embedding WPE WebKit - from Bring-up to MaintenanceEmbedding WPE WebKit - from Bring-up to Maintenance
Embedding WPE WebKit - from Bring-up to Maintenance
 
Optimizing Scheduler for Linux Gaming.pdf
Optimizing Scheduler for Linux Gaming.pdfOptimizing Scheduler for Linux Gaming.pdf
Optimizing Scheduler for Linux Gaming.pdf
 
Running JS via WASM faster with JIT
Running JS via WASM      faster with JITRunning JS via WASM      faster with JIT
Running JS via WASM faster with JIT
 
To crash or not to crash: if you do, at least recover fast!
To crash or not to crash: if you do, at least recover fast!To crash or not to crash: if you do, at least recover fast!
To crash or not to crash: if you do, at least recover fast!
 
Implementing a Vulkan Video Encoder From Mesa to GStreamer
Implementing a Vulkan Video Encoder From Mesa to GStreamerImplementing a Vulkan Video Encoder From Mesa to GStreamer
Implementing a Vulkan Video Encoder From Mesa to GStreamer
 
8 Years of Open Drivers, including the State of Vulkan in Mesa
8 Years of Open Drivers, including the State of Vulkan in Mesa8 Years of Open Drivers, including the State of Vulkan in Mesa
8 Years of Open Drivers, including the State of Vulkan in Mesa
 
Introducción a Mesa. Caso específico dos dispositivos Raspberry Pi por Igalia
Introducción a Mesa. Caso específico dos dispositivos Raspberry Pi por IgaliaIntroducción a Mesa. Caso específico dos dispositivos Raspberry Pi por Igalia
Introducción a Mesa. Caso específico dos dispositivos Raspberry Pi por Igalia
 
2023 in Chimera Linux
2023 in Chimera                    Linux2023 in Chimera                    Linux
2023 in Chimera Linux
 
Building a Linux distro with LLVM
Building a Linux distro        with LLVMBuilding a Linux distro        with LLVM
Building a Linux distro with LLVM
 
turnip: Update on Open Source Vulkan Driver for Adreno GPUs
turnip: Update on Open Source Vulkan Driver for Adreno GPUsturnip: Update on Open Source Vulkan Driver for Adreno GPUs
turnip: Update on Open Source Vulkan Driver for Adreno GPUs
 
Graphics stack updates for Raspberry Pi devices
Graphics stack updates for Raspberry Pi devicesGraphics stack updates for Raspberry Pi devices
Graphics stack updates for Raspberry Pi devices
 
Delegated Compositing - Utilizing Wayland Protocols for Chromium on ChromeOS
Delegated Compositing - Utilizing Wayland Protocols for Chromium on ChromeOSDelegated Compositing - Utilizing Wayland Protocols for Chromium on ChromeOS
Delegated Compositing - Utilizing Wayland Protocols for Chromium on ChromeOS
 
MessageFormat: The future of i18n on the web
MessageFormat: The future of i18n on the webMessageFormat: The future of i18n on the web
MessageFormat: The future of i18n on the web
 
Replacing the geometry pipeline with mesh shaders
Replacing the geometry pipeline with mesh shadersReplacing the geometry pipeline with mesh shaders
Replacing the geometry pipeline with mesh shaders
 
I'm not an AMD expert, but...
I'm not an AMD expert, but...I'm not an AMD expert, but...
I'm not an AMD expert, but...
 
Status of Vulkan on Raspberry
Status of Vulkan on RaspberryStatus of Vulkan on Raspberry
Status of Vulkan on Raspberry
 

Recently uploaded

Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
vu2urc
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
Earley Information Science
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
giselly40
 

Recently uploaded (20)

Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdf
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 

Grilo: Easy Access to Online Multimedia Content (LinuxCon Europe 2012)

  • 1. Grilo: Easy Access to Online Multimedia Content LinuxCon Europe 2012, Barcelona Juan A. Suarez Romero <jasuarez@igalia.com>
  • 2. Grilo: Easy Access to Online Multimedia Content Introduction Grilo: Easy Access to Online Multimedia Content LinuxCon Europe 2012, Barcelona
  • 3. About me Juan A. Suárez Romero Computer engineer, Coruña University Working at Igalia since 2007 Experience in multimedia Involved in Maemo and MeeGo Co-author of MAFW Grilo: Easy Access to Online Multimedia Content LinuxCon Europe 2012, Barcelona
  • 4. Outline 1 Current problems 2 Grilo 3 Conclusions 4 Thank you! Grilo: Easy Access to Online Multimedia Content LinuxCon Europe 2012, Barcelona
  • 5. Grilo: Easy Access to Online Multimedia Content Current problems Grilo: Easy Access to Online Multimedia Content LinuxCon Europe 2012, Barcelona
  • 6. Many sources of content Online/offline sources Different protocol/API Sources that do not provide content (meta-information) Grilo: Easy Access to Online Multimedia Content LinuxCon Europe 2012, Barcelona
  • 7. Many different devices Different screen sizes Different hardware components Different platforms Grilo: Easy Access to Online Multimedia Content LinuxCon Europe 2012, Barcelona
  • 8. Current approach Develop one application per service Each application with different UX Not easily scalable: new sources require new applications Expensive maintenance In some cases, one application attending more than one service Services of the same type (e.g., Photo storage service) Define a common layer between application and the service Not shared effort! Reinventing the wheel all time Grilo: Easy Access to Online Multimedia Content LinuxCon Europe 2012, Barcelona
  • 9. What we need? Stop reinventing the wheel! Platform-level solution for accessing multimedia content Provide homogeneous access to all content Scalable with new sources of information Collaboration! Consistent user experience Users care about the content, not the provider Grilo: Easy Access to Online Multimedia Content LinuxCon Europe 2012, Barcelona
  • 10. Grilo: Easy Access to Online Multimedia Content Grilo Grilo: Easy Access to Online Multimedia Content LinuxCon Europe 2012, Barcelona
  • 11. What is Grilo? Framework focused on making discovery and browsing easy for application developers A single, high-level API for all the sources A collection plugins that provides access to the sources An extendable system to provide more plugins http://live.gnome.org/Grilo Grilo: Easy Access to Online Multimedia Content LinuxCon Europe 2012, Barcelona
  • 12. Architecture overview Grilo: Easy Access to Online Multimedia Content LinuxCon Europe 2012, Barcelona
  • 13. Media types and Keys Collection of keys and values Several keys provided by core: title, URL, author, . . . Plugins can extend them with new keys Support for multiple values Support for relations between keys Grilo: Easy Access to Online Multimedia Content LinuxCon Europe 2012, Barcelona
  • 14. Plugins and Sources Key component of the system Plugins are dynamically loaded by core Plugins create one or more sources Sources support multiple operations Browse, Search, Store, Remove, . . . All operations are optional Grilo: Easy Access to Online Multimedia Content LinuxCon Europe 2012, Barcelona
  • 15. Plugins and Sources Sources perform two main roles: Provide new media content Enrich already existent media content Sources collaborate among them to solve the requests Grilo: Easy Access to Online Multimedia Content LinuxCon Europe 2012, Barcelona
  • 16. Example of collaboration Developer wants to show content from UPnP server and play it They need the url to play, a title and a thumbnail to show 1 Perform the request through core API 2 Core checks if the requested keys are supported by the source thumbnail is not supported by UPnP source 3 Checks which sources are able to resolve thumbnail key CoverArt source is able to But it requires to know two keys: artist and album Grilo: Easy Access to Online Multimedia Content LinuxCon Europe 2012, Barcelona
  • 17. Example of collaboration 4 Core checks if those required keys are supported by original UPnP source If not, repeat the process as in the case of thumbnail 5 Perform the request in the UPnP source with the keys requested plus the new keys 6 When the results arrive, send them to CoverArt source to include the thumbnail 7 Send the final results to application Developer only needs to deal with one provider Grilo: Easy Access to Online Multimedia Content LinuxCon Europe 2012, Barcelona
  • 18. Implementing applications Main language is C Other languages supported through gobject introspection (Python, Javascript, Vala, . . . ) Support for C++ (grilomm) Some initial support for Qt/QML Grilo: Easy Access to Online Multimedia Content LinuxCon Europe 2012, Barcelona
  • 19. Code example 1 # ! / usr / bin / python 2 3 import sys 4 from g i . r e p o s i t o r y import Grl 5 6 def main ( argv ) : 7 i f l e n ( argv ) < 1 : 8 p r i n t " Usage : m a k e _ l i s t . py < s e a r c h _ t e x t > " 9 return 1 10 11 Grl . i n i t ( [ ] ) 12 r e g i s t r y = Grl . R e g i s t r y . g e t _ d e f a u l t ( ) 13 registry . load_all_plugins ( ) 14 keys = [ Grl .METADATA_KEY_DURATION, 15 Grl . METADATA_KEY_TITLE, 16 Grl .METADATA_KEY_URL] 17 o p t i o n s = Grl . OperationOptions . new ( None ) 18 options . set_count ( 2 0 0 ) ; 19 r e s u l t s = Grl . m u l t i p l e _ s e a r c h _ s y n c ( None , argv [ 0 ] , keys , o p t i o n s ) 20 21 p r i n t " #EXT3MU" 22 f o r media in r e s u l t s : 23 i f i s i n s t a n c e ( media , Grl . MediaAudio ) : 24 p r i n t " #EXT3INF : " + s t r ( media . g e t _ d u r a t i o n ( ) ) + " , " + media . g e t _ t i t l e ( ) 25 p r i n t media . g e t _ u r l ( ) 26 27 i f __name__ == " __main__ " : 28 main ( sys . argv [ 1 : ] ) Grilo: Easy Access to Online Multimedia Content LinuxCon Europe 2012, Barcelona
  • 20. Implementing plugins Plugins must be written in C Adding support for writing plugins declaratively (in XML) Adding support for other languages (Lua) Grilo: Easy Access to Online Multimedia Content LinuxCon Europe 2012, Barcelona
  • 21. Grilo: Easy Access to Online Multimedia Content Conclusions Grilo: Easy Access to Online Multimedia Content LinuxCon Europe 2012, Barcelona
  • 22. Resources Wiki http://live.gnome.org/Grilo Source code http://git.gnome.org/browse/grilo http://git.gnome.org/browse/grilo-plugins http://git.gnome.org/browse/grilomm IRC #grilo at irc.gnome.org Mailing list http://mail.gnome.org/mailman/listinfo/ grilo-list Do not miss our booth in ground floor (in front of Rossini room) Grilo: Easy Access to Online Multimedia Content LinuxCon Europe 2012, Barcelona
  • 23. Grilo: Easy Access to Online Multimedia Content Thank you! Grilo: Easy Access to Online Multimedia Content LinuxCon Europe 2012, Barcelona
  • 24. Images used in this presentation 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 Grilo: Easy Access to Online Multimedia Content LinuxCon Europe 2012, Barcelona