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



Similar documents
Mobile Devices: Server and Management Lesson 05 Service Discovery

An introduction to creating Web 2.0 applications in Rational Application Developer Version 8.0

A set-up guide and general information to help you get the most out of your new theme.

Adobe Social Product Capabilities. Publish Anywhere

XBMC Architecture Overview

A Cloud-based Architecture for Visual Effect Rendering System

Topics in basic DBMS course

SCCM Plug-in User Guide. Version 2.21

Realizing a Vision Interesting Student Projects

Advanced Archive- It Applica2on Training: Archiving Social Networking and Social Media Sites

Archiving the Social Web MARAC Spring 2013 Conference

Installation Guide Sybase ETL Small Business Edition 4.2 for Windows

Bernie Velivis President, Performax Inc

RCS Liferay Google Analytics Portlet Installation Guide

Yahoo! Communities Architectures Ian Flint

IBM Rational Asset Manager

What is a NAS drive...?

Virtualization Management the ovirt way

Folks Contact aggregation for free software. Travis Reitter Desktop Summit 2011 Berlin, Germany

Building Mobile Mashup Applications. Some Challenges Encountered in Computer Science Degrees

Introduction to OpenTM2 An Open Source Solution for Translators

Kaltura Video Plugin for Jive Deployment Guide. Version: 1.0

Video Marketing Services

Library Requirements

Chapter 2 Database System Concepts and Architecture

Microsoft Dynamics NAV

Slide.Show Quick Start Guide

SOA REFERENCE ARCHITECTURE: WEB TIER

Digital Assets Repository 3.0. PASIG User Group Conference Noha Adly Bibliotheca Alexandrina

eccharts: Behind the scenes

Unit 4 Objectives. Software. Component 4: Introduction to Information and Computer Science. Unit 4: Application and System Software Lecture 1

Enhancing Web Publishing with Digital Asset Management - Using Open Text Artesia DAM to enhance your Open Text WCMS (Red Dot) web sites

Open is as Open Does: Lessons from Running a Professional Open Source Company

System Requirements for Microsoft Dynamics NAV 2013 R2

PKI Made Easy: Managing Certificates with Dogtag. Ade Lee Sr. Software Engineer Red Hat, Inc

Introduction to ovirt

How to Configure Guest Management on the DWC-1000

MailEnable Installation Guide

BT MEDIA JOOMLA COMPONENT

Customers can select one or more of our services as per their requirements.

Digital Asset Management

About Recovery Manager for Active

Windows Embedded Compact 7 Multimedia Features 1

EQUIPMENT OVERVIEW... 4 SETTING UP CALL MANAGER...5

Server Scalability and High Availability

Archive One Policy V4.2 Quick Start Guide October 2005

Index. Registry Report

Introduction to IBM Worklight Mobile Platform

Title Page. Hosted Payment Page Guide ACI Commerce Gateway

Network device management solution

Managing Contacts in Outlook

Development Techniques for Native/Hybrid Tizen Apps. Presenter Matti Pakarinen

Monitoring Nginx Server

v7.1 Technical Specification

Set Up PlayOn. Installing and Setting Up PlayOn. Installing PlayOn Plugins. Accessing Your PlayOn Content. Related URLs

EPrints Preservation Update

oit Manage Digital Images with Picasa March 2010

Semantic SharePoint. Technical Briefing. Helmut Nagy, Semantic Web Company Andreas Blumauer, Semantic Web Company

WhatsVirtual for WhatsUp Gold v16.0 User Guide

RUNNING A HELPDESK CONTENTS. using HP Web Jetadmin

A REST API for Arduino & the CC3000 WiFi Chip

MS 20487A Developing Windows Azure and Web Services

Espial IPTV Middleware. Evo Solution Whitepaper. <Title> Delivering Interactive, Personalized 3-Screen Services

2) Xen Hypervisor 3) UEC

SCCM Plug-in User Guide. Version 3.41

Digital Asset Management Software & Brand Portal

Deploying complex applications to Google Cloud. Olia Kerzhner

GV STRATUS The Next Step in Collaborative Workflows. Régis André Product Manager, STRATUS September 2011

Configuring Apache HTTP Server as a Reverse Proxy Server for SAS 9.3 Web Applications Deployed on Oracle WebLogic Server

Using the TASKING Software Platform for AURIX

Join the Lean Wave. Asanka Abeysinghe Director, Solutions Architecture. WSO2, Inc. Friday, July 22, 11

SFTP Server User Login Instructions. Open Internet explorer and enter the following url:

Supported Hardware and Software. Sybase Mobiliser Platform 5.1 SP03

Siemens SAP Cloud - Infrastructure as a Service

IMPORTANT: You must complete this step before you can install and activate SafeSend.

uxmag.com

Revision History. Revision Revision History Date

ovirt Introduction James Rankin Product Manager Red Hat Virtualization Management the ovirt way

Redmine: A project management software tool. January, 2013

Making System z Sexy Again with Social and Collaboration Software

Trend Micro Incorporated reserves the right to make changes to this document and to the products described herein without notice.

Extend the value of your service desk and integrate ITIL processes with IBM Tivoli Change and Configuration Management Database.

Sophos Endpoint Security and Control How to deploy through Citrix Receiver 2.0

Zend Server 4.0 Beta 2 Release Announcement What s new in Zend Server 4.0 Beta 2 Updates and Improvements Resolved Issues Installation Issues

2012 LABVANTAGE Solutions, Inc. All Rights Reserved.

Sitecore InDesign Connector 1.1

Amahi Instruction Manual

FileMaker Pro 11. Running FileMaker Pro 11 on Citrix XenApp

Cisco Performance Visibility Manager 1.0.1

Social Media Guidelines

State of the GStreamer Project. Jan Schmidt. Centricular Ltd

How to manage photos stored in a QNAP NAS?

HTML5 & Digital Signage

The MeeGo Multimedia Stack. Dr. Stefan Kost Nokia - The MeeGo Multimedia Stack - CELF Embedded Linux Conference Europe

Hardwarekrav. 30 MB. Memory: 1 GB. Additional software Microsoft.NET Framework 4.0.

Surface and Volumetric Data Rendering and Visualisation

CMS Tips & Tricks. CMS Tips & Tricks Quick Reference

Server Consolidation with SQL Server 2008

Sage 200 Online. System Requirements and Prerequisites

Mobile Operating Systems Lesson 05 Windows CE Part 1

Transcription:

Juan A. Suarez Romero <jasuarez@igalia.com>

Introduction

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

Outline 1 Current problems 2 Grilo 3 Conclusions 4 Thank you!

Current problems

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

Many different devices Different screen sizes Different hardware components Different platforms

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

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

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

Architecture overview

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

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

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

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

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

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

Code example 1 #! / usr / b i n / python 2 3 import sys 4 from gi. repository import Grl 5 6 def main ( argv ) : 7 i f len ( argv ) < 1 : 8 print " Usage : make_list. py <search_text >" 9 return 1 10 11 Grl. i n i t ( [ ] ) 12 r e g i s t r y = Grl. Registry. 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 options = Grl. OperationOptions. new(none) 18 options. set_count ( 2 0 0 ) ; 19 results = Grl. multiple_search_sync (None, argv [ 0 ], keys, options ) 20 print " #EXT3MU" 21 for media in results : 22 i f isinstance ( media, Grl. MediaAudio ) : 23 print " #EXT3INF : " + s t r ( media. get_duration ( ) ) + ", " + media. g e t _ t i t l e ( ) 24 print media. get_url ( ) 25 26 i f name == " main " : 27 main ( sys. argv [ 1 : ] )

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

Conclusions

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)

Thank you!

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