SlideShare a Scribd company logo
1 of 28
Download to read offline
GRILO

static void
_f_do_barnacle_install_properties(GObjectClass
*gobject_class)
{
GParamSpec *pspec;

Feeding applications with
multimedia content

/* 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,

GUADEC, The Hague, July 2010

Iago Toral Quiroga
itoral@igalia.com
Index
➔

Integrating multimedia content

➔

Overview of Grilo

➔

Grilo for application developers

➔

Grilo for backend developers

➔

Demo
Integrating Multimedia Content
Integrating Multimedia Content
➔

Media content available in many forms:
➔

➔

➔

➔

Youtube, Shoutcast, UPnP, Jamendo, Podcasts, Vimeo,
Last.FM, iPod, local drives, etc.

We are used to consume content from many of these
sources every day.
But usually we use various applications to do that: not
convenient.
Multimedia applications today are trying to integrate
more and more of these services to provide a better
user experience.
Integrating Multimedia Content
➔

➔

➔

However, these services expose different APIs /
protocols, have different limitations / behaviors, etc.
Integrating all these services in a single application
requieres a lot of learning and coding.
We have many applications doing this effort already:
➔

➔

Totem, Rhythmbox, Amarok, XBMC, etc

But these solutions are application specific:
Developers cannot reuse this work directly in other projects.
➔ Every application has to maintain its own solution.
➔
Grilo: Overview
Grilo: Overview
➔

➔

➔

➔

➔

➔

A framework for easing access to multimedia content.
Application developers want to browse / search
content from many services...
...but they don't want to know how they work internally
(APIs, protocols, technologies, limitations, ...)
Single API to access media content, hiding
differences among media providers.
Same idea as GStreamer and media formats.
Application developers write their solution once and it
will work for any service supported in Grilo.
Grilo: Overview
Grilo for application developers
Grilo: Application Developers
➔

Looking up available sources (signals):

GrlPluginRegistry *r = grl_plugin_registry_get_instance ();
g_signal_connect (r, "source­added",
                  G_CALLBACK (source_added_cb), NULL);
g_signal_connect (r, "source­removed",
                  G_CALLBACK (source_removed_cb), NULL)
/* Use one of these to load all plugins, plugins
   in a specific directory or just a specific plugin */
grl_plugins_registry_load_all (r);
grl_plugin_registry_load_directory (r, path);
grl_plugin_registry_load (r, path);
Grilo: Application Developers
➔

Looking up available sources (source id):

GrlPluginRegistry *r = grl_plugin_registry_get_instance ();
GrlMediaPlugin *p = grl_plugin_registry_lookup_source (r, “grl­jamendo”);
GrlMediaSource *s = GRL_MEDIA_SOURCE (p);
...
                                                                         
➔

Looking up available sources (capabilities):

GrlPluginRegistry *r = grl_plugin_registry_get_instance ();
GrlMediaPlugin **p =
    grl_plugin_registry_get_sources_by_operations (
        r, GRL_OP_BROWSE | GRL_OP_SEARCH, TRUE);
for (gint i = 0; p[i] != NULL; i++) {
   GrlMediaSource *s = GRL_MEDIA_SOURCE (p[i]);
   ...
}
                                                                         
Grilo: Application Developers
➔

Browsing

GList *keys = grl_metadata_key_list_new (GRL_METADATA_KEY_TITLE,
                                         GRL_METADATA_KEY_CHILDCOUNT,
                                         NULL);
guint browse_id =
  grl_media_source_browse (source,        // MediaSource object
                           container,     // Container to browse
                           keys,          // Metadata keys to retrieve
                           offset, count, // Page info
                           flags,         // Operation flags
                           browse_cb,     // Callback for results
                           user_data);    // User data for callback
static void browse_cb (GrlMediaSource *s, guint opid, GrlMedia *m,
  guint remaining, gpointer user_data, const GError *error)
{
  if (media) {
    const gchar *title = grl_media_get_title (media);
    ...
  }
}
                                                                         
Grilo: Application Developers
➔

Searching

GList *keys = grl_metadata_key_list_new (GRL_METADATA_KEY_TITLE,
                                         GRL_METADATA_KEY_CHILDCOUNT,
                                         NULL);
guint search_id =
  grl_media_source_search (source,        // MediaSource object
                           text,          // Search text
                           keys,          // Metadata keys to retrieve
                           offset, count, // Pagination info
                           flags,         // Operation flags
                           search_cb,     // Callback for results
                           user_data);    // User data for callback
static void search_cb (GrlMediaSource *s, guint opid, GrlMedia *m,
  guint remaining, gpointer user_data, const GError *error)
{
  if (media) {
    const gchar *title = grl_media_get_title (media);
    ...
  }
}
                                                                         
Grilo: Application Developers
➔

Operation flags
GRL_RESOLVE_NORMAL
➔ GRL_RESOLVE_FULL
➔ GRL_RESOLVE_IDLE_RELAY
➔ GRL_RESOLVE_FAST_ONLY
➔
Grilo: Application Developers
➔

Other APIs
Query
➔ Multiple Search
➔ Cancel
➔ Get / Set metadata
➔ Resolve
➔ Store / Remove
➔
Grilo: Application Developers
Youtube
➔ Vimeo
➔ Jamendo
➔ Apple Trailers
➔ Flickr
➔ Podcasts
➔ SHOUTCast
➔ UPnP
➔ Bookmarks
➔ Filesystem
➔

Last.fm album art
➔ Metadata store
➔ Gravatar
➔
Grilo: Application Developers
➔

GNOME Media Server Spec:
➔

➔

http://live.gnome.org/Rygel/MediaServerSpec

Targets:
➔

Separate media providers in a separate process.

➔

Consume media content over D-Bus.

➔

No need for language bindings.

➔

Rygel-Grilo (name subject to change)

➔

Plugins for Totem and Rhythmbox
Grilo for plugin developers
Grilo: plugin developers
➔

Plugin types:
Media Providers (MediaSource)
➔ Provide media content
➔ Youtube, Jamendo, Shoutcast, etc.
➔ browse, search, query, store, remove, etc
➔ Metadata Providers (MetadataSource)
➔ Provide extra metadata
➔ Album art, ratings, imdb, etc
➔ resolve
➔
Grilo: plugin developers
➔

Creating a MetadataSource plugin (class_init)

static void
grl_lasftfm_albumart_source_class_init (GrlMetadataStoreSourceClass * klass)
{
  GrlMetadataSourceClass *metadata_class =
      GRL_METADATA_SOURCE_CLASS (klass);
  metadata_class­>supported_keys =
grl_lastfm_albumart_source_supported_keys;
  metadata_class­>key_depends =
grl_lastfm_albumart_source_key_depends;
  metadata_class­>resolve =
grl_lastfm_albumart_source_resolve;
  ...
}
                                                                         
Grilo: plugin developers
➔

Creating a MetadataSource plugin (supported_keys)

static const GList *
grl_lastfm_albumart_source_supported_keys (GrlMetadataSource *source)
{
                                                                         
  static GList *keys = NULL;
  if (!keys) {
    keys = grl_metadata_key_list_new (GRL_METADATA_KEY_THUMBNAIL,
                                      NULL);
  }
  return keys;
}
                                                                         
Grilo: plugin developers
➔

Creating a MetadataSource plugin (key_depends)

static const GList *
                                                                         
grl_lastfm_albumart_source_key_depends (GrlMetadataSource *source,
                                        GrlKeyID key_id)
{
  static GList *deps = NULL;
  if (!deps) {
    deps = grl_metadata_key_list_new (GRL_METADATA_KEY_ARTIST,
                                      GRL_METADATA_KEY_ALBUM,
                                      NULL);
  }
  if (key_id == GRL_METADATA_KEY_THUMBNAIL) {
    return deps;
  }
  return  NULL;
}
                                                                         
Grilo: plugin developers
➔

Creating a MetadataSource plugin (resolve)

static void
grl_lastfm_albumart_source_resolve (GrlMetadataSource *source,
                                    GrlMetadataSourceResolveSpec *rs)
{                                                                          
    artist = grl_data_get_string (GRL_DATA (rs­>media),
                                  GRL_METADATA_KEY_ARTIST);
    album = grl_data_get_string (GRL_DATA (rs­>media),
                                 GRL_METADATA_KEY_ALBUM);
    thumb_uri = /* Use album & artist to get thumbnail info */
    grl_data_set_string (GRL_DATA (rs­>media),
                         GRL_METADATA_KEY_THUMBNAIL,
                         thumb_uri);
    rs­>callback (rs­>source, rs­>media, rs­>user_data, NULL);
}
                                                                         
Grilo: plugin developers
➔

Creating a MediaSource plugin (class_init)

static void
grl_podcasts_source_class_init (GrlPodcastsSourceClass * klass)
{
  GrlMediaSourceClass *source_class = GRL_MEDIA_SOURCE_CLASS (klass);
  GrlMetadataSourceClass *metadata_class = GRL_METADATA_SOURCE_CLASS (klass);
  source_class­>browse = grl_podcasts_source_browse;
  source_class­>search = grl_podcasts_source_search;
  source_class­>metadata = grl_podcasts_source_metadata;
  metadata_class­>supported_keys = grl_podcasts_source_supported_keys;
  ...
}                             
Grilo: plugin developers
➔

Creating a MediaSource plugin (search)

static void
grl_podcasts_source_search (GrlMediaSource *source,
                            GrlMediaSourceSearchSpec *ss)
{
  GList *medias =
    query_pocasts_by_text (ss­>text, ss­>keys, ss­>skip, ss­>count);
  if (!medias) {
    ss­>callback (ss­>source, ss­>operation_id,
                  NULL, 0, ss­>user_data, NULL);
  } else {
    guint n = g_list_length (medias);
    while (medias) {
      ss­>callback (ss­>source, ss­>operation_id,
                    GRL_MEDIA (medias­>media), ­­n,
                    ss­>user_data, NULL);
      medias = g_list_next (medias);
    }
  }
  ...
}
Demo
Grilo: Resources
➔

Wiki:
➔

➔

http://live.gnome.org/Grilo

Git repositories:
➔

➔

➔

git://git.gnome.org/grilo
git://git.gnome.org/grilo-plugins

IRC:
➔

➔

Mailing list:
➔

➔

grilo @ GIMPNet
http://mail.gnome.org/mailman/listinfo/grilo-list

Bugzilla:
➔

http://bugzilla.gnome.org

➔

Category: Other, Product: grilo
?

More Related Content

Viewers also liked

Efficient multimedia support in QtWebKit on Raspberry Pi (GStreamer Conferenc...
Efficient multimedia support in QtWebKit on Raspberry Pi (GStreamer Conferenc...Efficient multimedia support in QtWebKit on Raspberry Pi (GStreamer Conferenc...
Efficient multimedia support in QtWebKit on Raspberry Pi (GStreamer Conferenc...Igalia
 
NIR on the Mesa i965 backend (FOSDEM 2016)
NIR on the Mesa i965 backend (FOSDEM 2016)NIR on the Mesa i965 backend (FOSDEM 2016)
NIR on the Mesa i965 backend (FOSDEM 2016)Igalia
 
Writing multimedia applications with Grilo (GUADEC 2013)
Writing multimedia applications with Grilo (GUADEC 2013)Writing multimedia applications with Grilo (GUADEC 2013)
Writing multimedia applications with Grilo (GUADEC 2013)Igalia
 
Snabb Switch: Riding the HPC wave to simpler, better network appliances (FOSD...
Snabb Switch: Riding the HPC wave to simpler, better network appliances (FOSD...Snabb Switch: Riding the HPC wave to simpler, better network appliances (FOSD...
Snabb Switch: Riding the HPC wave to simpler, better network appliances (FOSD...Igalia
 
New interoperability features in LibreOffice
New interoperability features in LibreOfficeNew interoperability features in LibreOffice
New interoperability features in LibreOfficeIgalia
 
Status of CSS Grid Layout Implementation (BlinkOn 6)
Status of CSS Grid Layout Implementation (BlinkOn 6)Status of CSS Grid Layout Implementation (BlinkOn 6)
Status of CSS Grid Layout Implementation (BlinkOn 6)Igalia
 
A Browser for the Automotive: Introduction to WebKit for Wayland (Automotive ...
A Browser for the Automotive: Introduction to WebKit for Wayland (Automotive ...A Browser for the Automotive: Introduction to WebKit for Wayland (Automotive ...
A Browser for the Automotive: Introduction to WebKit for Wayland (Automotive ...Igalia
 
Writing multimedia applications with Grilo
Writing multimedia applications with GriloWriting multimedia applications with Grilo
Writing multimedia applications with GriloJuan A. Suárez Romero
 
Production high-performance networking with Snabb and LuaJIT (Linux.conf.au 2...
Production high-performance networking with Snabb and LuaJIT (Linux.conf.au 2...Production high-performance networking with Snabb and LuaJIT (Linux.conf.au 2...
Production high-performance networking with Snabb and LuaJIT (Linux.conf.au 2...Igalia
 

Viewers also liked (10)

Efficient multimedia support in QtWebKit on Raspberry Pi (GStreamer Conferenc...
Efficient multimedia support in QtWebKit on Raspberry Pi (GStreamer Conferenc...Efficient multimedia support in QtWebKit on Raspberry Pi (GStreamer Conferenc...
Efficient multimedia support in QtWebKit on Raspberry Pi (GStreamer Conferenc...
 
NIR on the Mesa i965 backend (FOSDEM 2016)
NIR on the Mesa i965 backend (FOSDEM 2016)NIR on the Mesa i965 backend (FOSDEM 2016)
NIR on the Mesa i965 backend (FOSDEM 2016)
 
Writing multimedia applications with Grilo (GUADEC 2013)
Writing multimedia applications with Grilo (GUADEC 2013)Writing multimedia applications with Grilo (GUADEC 2013)
Writing multimedia applications with Grilo (GUADEC 2013)
 
Snabb Switch: Riding the HPC wave to simpler, better network appliances (FOSD...
Snabb Switch: Riding the HPC wave to simpler, better network appliances (FOSD...Snabb Switch: Riding the HPC wave to simpler, better network appliances (FOSD...
Snabb Switch: Riding the HPC wave to simpler, better network appliances (FOSD...
 
New interoperability features in LibreOffice
New interoperability features in LibreOfficeNew interoperability features in LibreOffice
New interoperability features in LibreOffice
 
Status of CSS Grid Layout Implementation (BlinkOn 6)
Status of CSS Grid Layout Implementation (BlinkOn 6)Status of CSS Grid Layout Implementation (BlinkOn 6)
Status of CSS Grid Layout Implementation (BlinkOn 6)
 
A Browser for the Automotive: Introduction to WebKit for Wayland (Automotive ...
A Browser for the Automotive: Introduction to WebKit for Wayland (Automotive ...A Browser for the Automotive: Introduction to WebKit for Wayland (Automotive ...
A Browser for the Automotive: Introduction to WebKit for Wayland (Automotive ...
 
Writing multimedia applications with Grilo
Writing multimedia applications with GriloWriting multimedia applications with Grilo
Writing multimedia applications with Grilo
 
Production high-performance networking with Snabb and LuaJIT (Linux.conf.au 2...
Production high-performance networking with Snabb and LuaJIT (Linux.conf.au 2...Production high-performance networking with Snabb and LuaJIT (Linux.conf.au 2...
Production high-performance networking with Snabb and LuaJIT (Linux.conf.au 2...
 
Versioning avec Git
Versioning avec GitVersioning avec Git
Versioning avec Git
 

Similar to Grilo: Feeding applications with multimedia content (GUADEC 2010)

Grilo: Integrating Multimedia Content in Applications (ELCE 2010)
Grilo: Integrating Multimedia Content in Applications (ELCE 2010)Grilo: Integrating Multimedia Content in Applications (ELCE 2010)
Grilo: Integrating Multimedia Content in Applications (ELCE 2010)Igalia
 
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
 
Encrypted Media Extensions with GStreamer in WebKit (GStreamer Conference 2018)
Encrypted Media Extensions with GStreamer in WebKit (GStreamer Conference 2018)Encrypted Media Extensions with GStreamer in WebKit (GStreamer Conference 2018)
Encrypted Media Extensions with GStreamer in WebKit (GStreamer Conference 2018)Igalia
 
Develop Android app using Golang
Develop Android app using GolangDevelop Android app using Golang
Develop Android app using GolangSeongJae Park
 
Adapting GNOME Applications to Maemo Fremantle
Adapting GNOME Applications to Maemo FremantleAdapting GNOME Applications to Maemo Fremantle
Adapting GNOME Applications to Maemo FremantleJoaquim Rocha
 
G*なクラウド 雲のかなたに ショートバージョン
G*なクラウド 雲のかなたに ショートバージョンG*なクラウド 雲のかなたに ショートバージョン
G*なクラウド 雲のかなたに ショートバージョンTsuyoshi Yamamoto
 
Migrating from Grails 2 to Grails 3
Migrating from Grails 2 to Grails 3Migrating from Grails 2 to Grails 3
Migrating from Grails 2 to Grails 3Michael Plöd
 
Servo and GStreamer (GStreamer Conference 2018)
Servo and GStreamer (GStreamer Conference 2018)Servo and GStreamer (GStreamer Conference 2018)
Servo and GStreamer (GStreamer Conference 2018)Igalia
 
Building Chromium on an Embedded Platform using Ozone-Wayland Layer (GENIVI 1...
Building Chromium on an Embedded Platform using Ozone-Wayland Layer (GENIVI 1...Building Chromium on an Embedded Platform using Ozone-Wayland Layer (GENIVI 1...
Building Chromium on an Embedded Platform using Ozone-Wayland Layer (GENIVI 1...Igalia
 
Grilo: present and future (GUADEC 2012)
Grilo: present and future (GUADEC 2012)Grilo: present and future (GUADEC 2012)
Grilo: present and future (GUADEC 2012)Igalia
 
A sustainable economic model through contributors to Libre/Free Software comm...
A sustainable economic model through contributors to Libre/Free Software comm...A sustainable economic model through contributors to Libre/Free Software comm...
A sustainable economic model through contributors to Libre/Free Software comm...LibreCon
 
A brand new documentation infrastructure for the GStreamer framework (GStream...
A brand new documentation infrastructure for the GStreamer framework (GStream...A brand new documentation infrastructure for the GStreamer framework (GStream...
A brand new documentation infrastructure for the GStreamer framework (GStream...Igalia
 
Jump into cross platform development with firebase
Jump into cross platform development with firebaseJump into cross platform development with firebase
Jump into cross platform development with firebaseConstantine Mars
 
Go for Mobile Games
Go for Mobile GamesGo for Mobile Games
Go for Mobile GamesTakuya Ueda
 
Mobile Apps by Pure Go with Reverse Binding
Mobile Apps by Pure Go with Reverse BindingMobile Apps by Pure Go with Reverse Binding
Mobile Apps by Pure Go with Reverse BindingTakuya Ueda
 
Grilo: Integration of Multimedia Contents in Applications Made Easy (FOSDEM 2...
Grilo: Integration of Multimedia Contents in Applications Made Easy (FOSDEM 2...Grilo: Integration of Multimedia Contents in Applications Made Easy (FOSDEM 2...
Grilo: Integration of Multimedia Contents in Applications Made Easy (FOSDEM 2...Igalia
 
Dependency management in golang
Dependency management in golangDependency management in golang
Dependency management in golangRamit Surana
 

Similar to Grilo: Feeding applications with multimedia content (GUADEC 2010) (20)

Grilo: Integrating Multimedia Content in Applications (ELCE 2010)
Grilo: Integrating Multimedia Content in Applications (ELCE 2010)Grilo: Integrating Multimedia Content in Applications (ELCE 2010)
Grilo: Integrating Multimedia Content in Applications (ELCE 2010)
 
Grilo
GriloGrilo
Grilo
 
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)
 
Custom plugin
Custom pluginCustom plugin
Custom plugin
 
Grails Custom Plugin
Grails Custom PluginGrails Custom Plugin
Grails Custom Plugin
 
Encrypted Media Extensions with GStreamer in WebKit (GStreamer Conference 2018)
Encrypted Media Extensions with GStreamer in WebKit (GStreamer Conference 2018)Encrypted Media Extensions with GStreamer in WebKit (GStreamer Conference 2018)
Encrypted Media Extensions with GStreamer in WebKit (GStreamer Conference 2018)
 
Develop Android app using Golang
Develop Android app using GolangDevelop Android app using Golang
Develop Android app using Golang
 
Adapting GNOME Applications to Maemo Fremantle
Adapting GNOME Applications to Maemo FremantleAdapting GNOME Applications to Maemo Fremantle
Adapting GNOME Applications to Maemo Fremantle
 
G*なクラウド 雲のかなたに ショートバージョン
G*なクラウド 雲のかなたに ショートバージョンG*なクラウド 雲のかなたに ショートバージョン
G*なクラウド 雲のかなたに ショートバージョン
 
Migrating from Grails 2 to Grails 3
Migrating from Grails 2 to Grails 3Migrating from Grails 2 to Grails 3
Migrating from Grails 2 to Grails 3
 
Servo and GStreamer (GStreamer Conference 2018)
Servo and GStreamer (GStreamer Conference 2018)Servo and GStreamer (GStreamer Conference 2018)
Servo and GStreamer (GStreamer Conference 2018)
 
Building Chromium on an Embedded Platform using Ozone-Wayland Layer (GENIVI 1...
Building Chromium on an Embedded Platform using Ozone-Wayland Layer (GENIVI 1...Building Chromium on an Embedded Platform using Ozone-Wayland Layer (GENIVI 1...
Building Chromium on an Embedded Platform using Ozone-Wayland Layer (GENIVI 1...
 
Grilo: present and future (GUADEC 2012)
Grilo: present and future (GUADEC 2012)Grilo: present and future (GUADEC 2012)
Grilo: present and future (GUADEC 2012)
 
A sustainable economic model through contributors to Libre/Free Software comm...
A sustainable economic model through contributors to Libre/Free Software comm...A sustainable economic model through contributors to Libre/Free Software comm...
A sustainable economic model through contributors to Libre/Free Software comm...
 
A brand new documentation infrastructure for the GStreamer framework (GStream...
A brand new documentation infrastructure for the GStreamer framework (GStream...A brand new documentation infrastructure for the GStreamer framework (GStream...
A brand new documentation infrastructure for the GStreamer framework (GStream...
 
Jump into cross platform development with firebase
Jump into cross platform development with firebaseJump into cross platform development with firebase
Jump into cross platform development with firebase
 
Go for Mobile Games
Go for Mobile GamesGo for Mobile Games
Go for Mobile Games
 
Mobile Apps by Pure Go with Reverse Binding
Mobile Apps by Pure Go with Reverse BindingMobile Apps by Pure Go with Reverse Binding
Mobile Apps by Pure Go with Reverse Binding
 
Grilo: Integration of Multimedia Contents in Applications Made Easy (FOSDEM 2...
Grilo: Integration of Multimedia Contents in Applications Made Easy (FOSDEM 2...Grilo: Integration of Multimedia Contents in Applications Made Easy (FOSDEM 2...
Grilo: Integration of Multimedia Contents in Applications Made Easy (FOSDEM 2...
 
Dependency management in golang
Dependency management in golangDependency management in golang
Dependency management in golang
 

More from Igalia

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?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 WPEIgalia
 
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...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 DevicesIgalia
 
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 MaintenanceIgalia
 
Optimizing Scheduler for Linux Gaming.pdf
Optimizing Scheduler for Linux Gaming.pdfOptimizing Scheduler for Linux Gaming.pdf
Optimizing Scheduler for Linux Gaming.pdfIgalia
 
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 JITIgalia
 
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!Igalia
 
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 GStreamerIgalia
 
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 MesaIgalia
 
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 IgaliaIgalia
 
2023 in Chimera Linux
2023 in Chimera                    Linux2023 in Chimera                    Linux
2023 in Chimera LinuxIgalia
 
Building a Linux distro with LLVM
Building a Linux distro        with LLVMBuilding a Linux distro        with LLVM
Building a Linux distro with LLVMIgalia
 
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 GPUsIgalia
 
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 devicesIgalia
 
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 ChromeOSIgalia
 
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 webIgalia
 
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 shadersIgalia
 
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...Igalia
 
Status of Vulkan on Raspberry
Status of Vulkan on RaspberryStatus of Vulkan on Raspberry
Status of Vulkan on RaspberryIgalia
 

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

Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingEdi Saputra
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoffsammart93
 
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...apidays
 
Six Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal OntologySix Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal Ontologyjohnbeverley2021
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAndrey Devyatkin
 
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistandanishmna97
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...apidays
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsNanddeep Nachan
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businesspanagenda
 
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot ModelMcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot ModelDeepika Singh
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWERMadyBayot
 
WSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2
 
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 WorkerThousandEyes
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdfSandro Moreira
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Victor Rentea
 
Vector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxVector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxRemote DBA Services
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...Zilliz
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Victor Rentea
 

Recently uploaded (20)

Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..
 
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
 
Six Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal OntologySix Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal Ontology
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistan
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot ModelMcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
WSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering Developers
 
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
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
 
Vector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxVector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptx
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
 

Grilo: Feeding applications with multimedia content (GUADEC 2010)