SlideShare a Scribd company logo
Philippe Normand
philn@igalia.com
FOSDEM conference
Bruxelles
2nd February 2019
GStreamer ♥
WPEWebKit
Inject the Web into the pipeline
Who am I?
● Fiddling with WebKit and GStreamer since 2009
● WebKit committer and reviewer
● GStreamer committer
● Partner at Igalia
● Worker-owned coop, currently around 80 happy Igalians
around the world
● Provides consulting services for various Free Software
projects
WPE, the basics
● Web-engine based on WebKit, tailored for a wide range
embedded devices
● 6 months release cycle synchronized with WebKitGTK,
including security updates
● No dependency on any UI toolkit library
● Pluggable view backends in charge of final rendering
● Wayland
● Android experiment
● Device-specific graphics drivers
WPE backend for FDO
● Relies on wayland-egl
● Cross-process buffer sharing
● API for:
● EGLImages
● Or wl_resource objects
● Or Linux dma-buf information (already used internally)
● Combined with Mesa
● Works on desktop & embedded
GStreamer
● Were you at the previous 3 talks in this room?
● A cross-platform framework for creating Multimedia applications
● Graph-based processing, example:
Some HTML overlay use-cases
● Notification display for live TV broadcasting
● Live video stream “banners”
● Content composition for conference live streaming, for instance:
● background picture
● conference logo
● animations
GstWPE
● EGLDisplay and EGLContext shared from downstream
element(s)
● WPEBackend-FDO exportable object created for shared
EGLDisplay
● wpesrc creates a WPE WebView
● EGLImages provided by WPEBackend-FDO wrapped into
GstEGLImages for shared EGLContext
● GstEGLImages inserted into GstGLMemory and pushed to
source pad towards downstream element
The most basic GstWPE example
● Input events relayed from the video sink to the source element
● Known GstWPE limitation: Audio stream not exposed
WPESrc VideoSink
video/x-raw(memory:GLMemory)
Video mixing with GstWPE
WPESrc
Media source glupload glcolorconvert
glvideomixer
decodebin
AudioSink
VideoSink
video/x-raw(memory:GLMemory)
video/x-raw(memory:GLMemory)
Demo
● https://www.youtube.com/watch?v=J2eb-KRk9gw
GstWPE, pros/cons
● Pros:
● WPE’s API designed for application embedding
● Renders web pages to GPU
● Rather small memory footprint (known to work on 256MB
devices)
● Cons:
● Audio buffers rendered in WPE not relayed to GstWPE yet
● Limited input events support
● Currently works only on wayland-egl capable Linux platforms
Future work
● [Almost finished!] WPE WebView transparent background
support
● Audio support
● Unified audio renderer for WebKit
● New Audio capture API for WPEBackend-fdo
● Audio source pad for the wpesrc element
● Improved input events support
● WPE ↔ GstWPE communication channel?
● Support more platforms?
Wrapping up
● https://is.gd/sODd5b : GstWPE upstream in gst-plugins-bad
● https://wpewebkit.org/
● One last demo:
https://www.youtube.com/watch?v=1JUa3Ldb3vE
Inject the Web into your GStreamer pipeline with WPE using a GStreamer/WebKit source element (FOSDEM 2019)

More Related Content

PDF
Android's Multimedia Framework
Opersys inc.
 
PDF
IBM Qradar
Coenraad Smith
 
PDF
OSDC 2018 | OPNsense: the “open” firewall for your datacenter by Thomas Niede...
NETWAYS
 
PDF
How to bring HID attacks to next level with WHID Injector & P4wnP1
Luca Bongiorni
 
PPTX
ALSS14: Xen Project Automotive Hypervisor (Demo)
The Linux Foundation
 
PDF
A Threat Hunter Himself
Teymur Kheirkhabarov
 
PPTX
Cyber threat-hunting---part-2-25062021-095909pm
MuhammadJalalShah1
 
PDF
Security Onion - Introduction
n|u - The Open Security Community
 
Android's Multimedia Framework
Opersys inc.
 
IBM Qradar
Coenraad Smith
 
OSDC 2018 | OPNsense: the “open” firewall for your datacenter by Thomas Niede...
NETWAYS
 
How to bring HID attacks to next level with WHID Injector & P4wnP1
Luca Bongiorni
 
ALSS14: Xen Project Automotive Hypervisor (Demo)
The Linux Foundation
 
A Threat Hunter Himself
Teymur Kheirkhabarov
 
Cyber threat-hunting---part-2-25062021-095909pm
MuhammadJalalShah1
 
Security Onion - Introduction
n|u - The Open Security Community
 

What's hot (20)

PDF
RedHat OpenStack Platform Overview
indevlab
 
PDF
Dave Williams - Nagios Log Server - Practical Experience
Nagios
 
PDF
Android's HIDL: Treble in the HAL
Opersys inc.
 
PPTX
Parallel Futures of a Game Engine (v2.0)
repii
 
PDF
Faster packet processing in Linux: XDP
Daniel T. Lee
 
PDF
Lighting of Killzone: Shadow Fall
Guerrilla
 
PDF
Android Multimedia Framework
Picker Weng
 
PPTX
Static partitioning virtualization on RISC-V
RISC-V International
 
PDF
Purple Team Use Case - Security Weekly
Jorge Orchilles
 
PPTX
RISC-V Boot Process: One Step at a Time
Atish Patra
 
PPT
Ipmi Server Management
sjtu1234567
 
PDF
Splunk Threat Hunting Workshop
Splunk
 
PDF
Стек протоколів IPsec
Shevchenko Andriy
 
PDF
Alexei Vladishev - Zabbix - Monitoring Solution for Everyone
Zabbix
 
PDF
System Software Guide to CXL - Linux Kernel Meetup 2024.pdf
MohanParthasarathy8
 
PDF
[KubeCon EU 2021] Introduction and Deep Dive Into Containerd
Akihiro Suda
 
PDF
Cilium - BPF & XDP for containers
Docker, Inc.
 
PDF
Understanding the Android System Server
Opersys inc.
 
PDF
Linux Namespaces
Masami Ichikawa
 
PDF
ACPI Debugging from Linux Kernel
SUSE Labs Taipei
 
RedHat OpenStack Platform Overview
indevlab
 
Dave Williams - Nagios Log Server - Practical Experience
Nagios
 
Android's HIDL: Treble in the HAL
Opersys inc.
 
Parallel Futures of a Game Engine (v2.0)
repii
 
Faster packet processing in Linux: XDP
Daniel T. Lee
 
Lighting of Killzone: Shadow Fall
Guerrilla
 
Android Multimedia Framework
Picker Weng
 
Static partitioning virtualization on RISC-V
RISC-V International
 
Purple Team Use Case - Security Weekly
Jorge Orchilles
 
RISC-V Boot Process: One Step at a Time
Atish Patra
 
Ipmi Server Management
sjtu1234567
 
Splunk Threat Hunting Workshop
Splunk
 
Стек протоколів IPsec
Shevchenko Andriy
 
Alexei Vladishev - Zabbix - Monitoring Solution for Everyone
Zabbix
 
System Software Guide to CXL - Linux Kernel Meetup 2024.pdf
MohanParthasarathy8
 
[KubeCon EU 2021] Introduction and Deep Dive Into Containerd
Akihiro Suda
 
Cilium - BPF & XDP for containers
Docker, Inc.
 
Understanding the Android System Server
Opersys inc.
 
Linux Namespaces
Masami Ichikawa
 
ACPI Debugging from Linux Kernel
SUSE Labs Taipei
 
Ad

Similar to Inject the Web into your GStreamer pipeline with WPE using a GStreamer/WebKit source element (FOSDEM 2019) (20)

PDF
WebKit-powered HTML overlays in your pipeline with GstWPE (GStreamer Conferen...
Igalia
 
PDF
WPEWebKit, the WebKit port for embedded platforms (Linaro Connect San Diego 2...
Igalia
 
PDF
Reaching the multimedia web from embedded platforms with WPEWebkit
Igalia
 
PDF
Add the power of the Web to your embedded devices with WPE WebKit
Igalia
 
PDF
Building End-user Applications on Embedded Devices with WPE
Igalia
 
PDF
Multimedia support in WebKitGTK and WPE, current status and plans (GStreamer ...
Igalia
 
PDF
How Igalia Is Driving Innovation In Embedded Systems With Open Source Technol...
Igalia
 
PDF
The new WPE API
Igalia
 
PDF
Webgl 기술동향 2011.8
Seung Joon Choi
 
PDF
GStreamer support in WebKit. What's new? (GStreamer Conference 2015)
Igalia
 
PDF
GStreamer support in WebKit. what’s new?
philn2
 
PDF
WPE, a New WebKit Port Optimised for Embedded (IBC 2017)
Igalia
 
PDF
Embedding WPE WebKit - from Bring-up to Maintenance
Igalia
 
PDF
Efficient multimedia support in QtWebKit on Raspberry Pi (GStreamer Conferenc...
Igalia
 
PDF
2021 WebKit Contributors Meeting, Igalia
Igalia
 
PDF
WebKit and GStreamer
calvaris
 
PDF
WebKit and GStreamer (GStreamer Conference 2013)
Igalia
 
PDF
WebAssembly - czy dzisiaj mi się to przyda do pracy?
Brainhub
 
PDF
Igalia and WebKit: Status update and plans
Igalia
 
PDF
Igalia and WebKit: Status update and plans
Igalia
 
WebKit-powered HTML overlays in your pipeline with GstWPE (GStreamer Conferen...
Igalia
 
WPEWebKit, the WebKit port for embedded platforms (Linaro Connect San Diego 2...
Igalia
 
Reaching the multimedia web from embedded platforms with WPEWebkit
Igalia
 
Add the power of the Web to your embedded devices with WPE WebKit
Igalia
 
Building End-user Applications on Embedded Devices with WPE
Igalia
 
Multimedia support in WebKitGTK and WPE, current status and plans (GStreamer ...
Igalia
 
How Igalia Is Driving Innovation In Embedded Systems With Open Source Technol...
Igalia
 
The new WPE API
Igalia
 
Webgl 기술동향 2011.8
Seung Joon Choi
 
GStreamer support in WebKit. What's new? (GStreamer Conference 2015)
Igalia
 
GStreamer support in WebKit. what’s new?
philn2
 
WPE, a New WebKit Port Optimised for Embedded (IBC 2017)
Igalia
 
Embedding WPE WebKit - from Bring-up to Maintenance
Igalia
 
Efficient multimedia support in QtWebKit on Raspberry Pi (GStreamer Conferenc...
Igalia
 
2021 WebKit Contributors Meeting, Igalia
Igalia
 
WebKit and GStreamer
calvaris
 
WebKit and GStreamer (GStreamer Conference 2013)
Igalia
 
WebAssembly - czy dzisiaj mi się to przyda do pracy?
Brainhub
 
Igalia and WebKit: Status update and plans
Igalia
 
Igalia and WebKit: Status update and plans
Igalia
 
Ad

More from Igalia (20)

PDF
Life of a Kernel Bug Fix
Igalia
 
PDF
Unlocking the Full Potential of WPE to Build a Successful Embedded Product
Igalia
 
PDF
Advancing WebDriver BiDi support in WebKit
Igalia
 
PDF
Jumping Over the Garden Wall - WPE WebKit on Android
Igalia
 
PDF
Collective Funding, Governance and Prioritiation of Browser Engine Projects
Igalia
 
PDF
Don't let your motivation go, save time with kworkflow
Igalia
 
PDF
Solving the world’s (localization) problems
Igalia
 
PDF
The Whippet Embeddable Garbage Collection Library
Igalia
 
PDF
Nobody asks "How is JavaScript?"
Igalia
 
PDF
Getting more juice out from your Raspberry Pi GPU
Igalia
 
PDF
WebRTC support in WebKitGTK and WPEWebKit with GStreamer: Status update
Igalia
 
PDF
Demystifying Temporal: A Deep Dive into JavaScript New Temporal API
Igalia
 
PDF
CSS :has() Unlimited Power
Igalia
 
PDF
Device-Generated Commands in Vulkan
Igalia
 
PDF
Current state of Lavapipe: Mesa's software renderer for Vulkan
Igalia
 
PDF
Vulkan Video is Open: Application showcase
Igalia
 
PDF
Scheme on WebAssembly: It is happening!
Igalia
 
PDF
EBC - A new backend compiler for etnaviv
Igalia
 
PDF
RISC-V LLVM State of the Union
Igalia
 
PDF
Device-Generated Commands in Vulkan
Igalia
 
Life of a Kernel Bug Fix
Igalia
 
Unlocking the Full Potential of WPE to Build a Successful Embedded Product
Igalia
 
Advancing WebDriver BiDi support in WebKit
Igalia
 
Jumping Over the Garden Wall - WPE WebKit on Android
Igalia
 
Collective Funding, Governance and Prioritiation of Browser Engine Projects
Igalia
 
Don't let your motivation go, save time with kworkflow
Igalia
 
Solving the world’s (localization) problems
Igalia
 
The Whippet Embeddable Garbage Collection Library
Igalia
 
Nobody asks "How is JavaScript?"
Igalia
 
Getting more juice out from your Raspberry Pi GPU
Igalia
 
WebRTC support in WebKitGTK and WPEWebKit with GStreamer: Status update
Igalia
 
Demystifying Temporal: A Deep Dive into JavaScript New Temporal API
Igalia
 
CSS :has() Unlimited Power
Igalia
 
Device-Generated Commands in Vulkan
Igalia
 
Current state of Lavapipe: Mesa's software renderer for Vulkan
Igalia
 
Vulkan Video is Open: Application showcase
Igalia
 
Scheme on WebAssembly: It is happening!
Igalia
 
EBC - A new backend compiler for etnaviv
Igalia
 
RISC-V LLVM State of the Union
Igalia
 
Device-Generated Commands in Vulkan
Igalia
 

Recently uploaded (20)

PDF
Responsible AI and AI Ethics - By Sylvester Ebhonu
Sylvester Ebhonu
 
PDF
Trying to figure out MCP by actually building an app from scratch with open s...
Julien SIMON
 
PDF
Cloud-Migration-Best-Practices-A-Practical-Guide-to-AWS-Azure-and-Google-Clou...
Artjoker Software Development Company
 
PDF
A Day in the Life of Location Data - Turning Where into How.pdf
Precisely
 
PDF
Tea4chat - another LLM Project by Kerem Atam
a0m0rajab1
 
PDF
MASTERDECK GRAPHSUMMIT SYDNEY (Public).pdf
Neo4j
 
PDF
REPORT: Heating appliances market in Poland 2024
SPIUG
 
PDF
Brief History of Internet - Early Days of Internet
sutharharshit158
 
PDF
AI Unleashed - Shaping the Future -Starting Today - AIOUG Yatra 2025 - For Co...
Sandesh Rao
 
PDF
Automating ArcGIS Content Discovery with FME: A Real World Use Case
Safe Software
 
PPTX
cloud computing vai.pptx for the project
vaibhavdobariyal79
 
PDF
Presentation about Hardware and Software in Computer
snehamodhawadiya
 
PDF
A Strategic Analysis of the MVNO Wave in Emerging Markets.pdf
IPLOOK Networks
 
PDF
Software Development Methodologies in 2025
KodekX
 
PPTX
The-Ethical-Hackers-Imperative-Safeguarding-the-Digital-Frontier.pptx
sujalchauhan1305
 
PPTX
OA presentation.pptx OA presentation.pptx
pateldhruv002338
 
PDF
BLW VOCATIONAL TRAINING SUMMER INTERNSHIP REPORT
codernjn73
 
PDF
Event Presentation Google Cloud Next Extended 2025
minhtrietgect
 
PDF
The Evolution of KM Roles (Presented at Knowledge Summit Dublin 2025)
Enterprise Knowledge
 
PPTX
Dev Dives: Automate, test, and deploy in one place—with Unified Developer Exp...
AndreeaTom
 
Responsible AI and AI Ethics - By Sylvester Ebhonu
Sylvester Ebhonu
 
Trying to figure out MCP by actually building an app from scratch with open s...
Julien SIMON
 
Cloud-Migration-Best-Practices-A-Practical-Guide-to-AWS-Azure-and-Google-Clou...
Artjoker Software Development Company
 
A Day in the Life of Location Data - Turning Where into How.pdf
Precisely
 
Tea4chat - another LLM Project by Kerem Atam
a0m0rajab1
 
MASTERDECK GRAPHSUMMIT SYDNEY (Public).pdf
Neo4j
 
REPORT: Heating appliances market in Poland 2024
SPIUG
 
Brief History of Internet - Early Days of Internet
sutharharshit158
 
AI Unleashed - Shaping the Future -Starting Today - AIOUG Yatra 2025 - For Co...
Sandesh Rao
 
Automating ArcGIS Content Discovery with FME: A Real World Use Case
Safe Software
 
cloud computing vai.pptx for the project
vaibhavdobariyal79
 
Presentation about Hardware and Software in Computer
snehamodhawadiya
 
A Strategic Analysis of the MVNO Wave in Emerging Markets.pdf
IPLOOK Networks
 
Software Development Methodologies in 2025
KodekX
 
The-Ethical-Hackers-Imperative-Safeguarding-the-Digital-Frontier.pptx
sujalchauhan1305
 
OA presentation.pptx OA presentation.pptx
pateldhruv002338
 
BLW VOCATIONAL TRAINING SUMMER INTERNSHIP REPORT
codernjn73
 
Event Presentation Google Cloud Next Extended 2025
minhtrietgect
 
The Evolution of KM Roles (Presented at Knowledge Summit Dublin 2025)
Enterprise Knowledge
 
Dev Dives: Automate, test, and deploy in one place—with Unified Developer Exp...
AndreeaTom
 

Inject the Web into your GStreamer pipeline with WPE using a GStreamer/WebKit source element (FOSDEM 2019)

  • 1. Philippe Normand [email protected] FOSDEM conference Bruxelles 2nd February 2019 GStreamer ♥ WPEWebKit Inject the Web into the pipeline
  • 2. Who am I? ● Fiddling with WebKit and GStreamer since 2009 ● WebKit committer and reviewer ● GStreamer committer ● Partner at Igalia ● Worker-owned coop, currently around 80 happy Igalians around the world ● Provides consulting services for various Free Software projects
  • 3. WPE, the basics ● Web-engine based on WebKit, tailored for a wide range embedded devices ● 6 months release cycle synchronized with WebKitGTK, including security updates ● No dependency on any UI toolkit library ● Pluggable view backends in charge of final rendering ● Wayland ● Android experiment ● Device-specific graphics drivers
  • 4. WPE backend for FDO ● Relies on wayland-egl ● Cross-process buffer sharing ● API for: ● EGLImages ● Or wl_resource objects ● Or Linux dma-buf information (already used internally) ● Combined with Mesa ● Works on desktop & embedded
  • 5. GStreamer ● Were you at the previous 3 talks in this room? ● A cross-platform framework for creating Multimedia applications ● Graph-based processing, example:
  • 6. Some HTML overlay use-cases ● Notification display for live TV broadcasting ● Live video stream “banners” ● Content composition for conference live streaming, for instance: ● background picture ● conference logo ● animations
  • 7. GstWPE ● EGLDisplay and EGLContext shared from downstream element(s) ● WPEBackend-FDO exportable object created for shared EGLDisplay ● wpesrc creates a WPE WebView ● EGLImages provided by WPEBackend-FDO wrapped into GstEGLImages for shared EGLContext ● GstEGLImages inserted into GstGLMemory and pushed to source pad towards downstream element
  • 8. The most basic GstWPE example ● Input events relayed from the video sink to the source element ● Known GstWPE limitation: Audio stream not exposed WPESrc VideoSink video/x-raw(memory:GLMemory)
  • 9. Video mixing with GstWPE WPESrc Media source glupload glcolorconvert glvideomixer decodebin AudioSink VideoSink video/x-raw(memory:GLMemory) video/x-raw(memory:GLMemory)
  • 11. GstWPE, pros/cons ● Pros: ● WPE’s API designed for application embedding ● Renders web pages to GPU ● Rather small memory footprint (known to work on 256MB devices) ● Cons: ● Audio buffers rendered in WPE not relayed to GstWPE yet ● Limited input events support ● Currently works only on wayland-egl capable Linux platforms
  • 12. Future work ● [Almost finished!] WPE WebView transparent background support ● Audio support ● Unified audio renderer for WebKit ● New Audio capture API for WPEBackend-fdo ● Audio source pad for the wpesrc element ● Improved input events support ● WPE ↔ GstWPE communication channel? ● Support more platforms?
  • 13. Wrapping up ● https://is.gd/sODd5b : GstWPE upstream in gst-plugins-bad ● https://wpewebkit.org/ ● One last demo: https://www.youtube.com/watch?v=1JUa3Ldb3vE