SlideShare a Scribd company logo
1 of 24
Download to read offline
The move from
a hardware centric product design
towards
a software centric product design:
Gstreamer as a driving force
Marc Leeman
@den_erpel
Introduction
●

The Early Days

●

First Paradigm shift

●

A new technology

●

At the start of the new millennium

●

A typical 2000 design

●

What changed?

●

A new world

●

Gstreamer, the early days

●

Gstreamer, 2nd try

●

Gstreamer, wider use

●

Gstreamer, from here on out

●

Change does not come easy

●

A Changed way of working

●

New challenges
The Early Days
●

Barco: Belgian American Radio Company

●

Established in 1934

●

Focus: Radios
●

Vacuum tubes

●

Long Lasting

●

In those days, buying a radio was costly

●

A status symbol
First Paradigm Shift
●

2nd World War
●

●

Refocus of the industry towards the War Machine

Radios were restricted
●

Control the information

●

Were hidden and penalties were severe

●

Jamming signals were (partly) aimed for detection
A new technology
●

The advent of television
●
●

●

Started back in the 30s, halted for 5 years
Multi standard (PAL, SECAM, NTSC)

Content driven
●

Window on the world

●

Not unlike 16:9 or HD

●

UHD?

●

Real breakthrough after exhibition of 1958

●

From the mid-60s onwards, start of to focus on industrial projects
At the start of a the new millennium
●

Technologies last long
●
●

●

Non disruptive changes
Improving on existing, slow move to new

Competence centre in optics
●

●

RGB projectors

Full chain development with exception of CRT
●

Components out
A typical 2000 design
●

Core of the design is hardware accelerated
●

High density solutions

●

FPGA at the core of the processing
●

“The rest are peripherals”

●
●

●

The rise of DSP solutions
Uc as a controller

Software as network controller
●

Management software provides logical access point

●

Hides 100s of smaller devices
●
●

Boxes each containing 10-20 PCBs
Each processing up to 4 network streams
What Changed?
●

Long lead times
●

Full chain development, not flexible during design

●

Maintenance is much higher once product is introduced
●

●

Custom stack; all development is integrated, very much tailored to “exceptions”

Component life time
●

Industrial range

●

Expensive

●

Underperforming wrt cutting edge

●

Industry is not driving technology, but consumer

●

Mobile... mobile... mobile...
Mobile?
●

Before: research was mainly on:
●
●

●

Focus on power efficiency
Focus on performance within constrained device

Android...
●

●

●

Java and AMM is not efficient
Contradicts previous focus

Solution was not to make the software better but to beef the specs of the devices
●

Same story as compression research

●

More memory, deeper memory hierarchy

●

Faster cores, more cores
A new world
●

Suddenly, a lot of new processor cores are flooding the
market
●
●

●

> 1GHz is the norm
> 2 cores is the norm

Sounds awfully familiar to GPP
●

●

Difference between GPP software and 'embedded' software is
decreasing faster than ever before

Gstreamer as a typical example
GStreamer, the early days
●

Initial attempts on MPC8349 core

●

uClibc based
●

uClibc proved very bad thread behaviour (meant for controller tasks)

●

unfair comparison: compared with MPC8245 based 'limited' protocol support

●

uC core was not as fast as advertised

●

Discontinued

●

YACS: Yet Another Custom Stack
●
●

●

Modular design was retained
2nd time to write a streaming system from scratch

2006
GStreamer, 2nd try
●

Something stuck
●
●

open source (experience with Linux, uclibc, busybox, ffmpeg, X11, …)

●

●

modular design
YACS just felt wrong

MGS: Media Gateway Server
●
●

●

x86-64 server based solution
removes much of the previous mentioned limitations

Small team can support a wide range of systems
●
●

cooperation

●

●

key was modularity
peer review

2008
GStreamer, wider use
●

Hard to not notice the advantages
●

Stability

●

Protocol support

●

Time-to-market

●

Flexibility

●

Replacement of custom stack with GStreamer

●

Integration of custom codecs in GStreamer
●

the power of an external API
GStreamer, from here on out...
●

Established on x86
●

Once in userland, why the focus on one architecture
●

●

NSLU2, SheevaPlug, Raspberry Pi, Odroid, ...

Platform approach
●
●

●

re-use of experience and code
encoder and platform support

For devices, added value is the same
●

Multi protocol support

●

Standard protocol support

●

Not so standard protocol support
Streaming,...or not?
●

RAW video handling (loss-less)
–
–

●

Low latency
High quality high bandwidth

Caps negotiation
V4l2src

V4l2sink

V4L2
V4L2

1 GHz Device handling streams +10Gbps?
–

●

GStreamer application

At first glance, it cannot be done

Not for the pure data handling
–

But for the configuration of the blocks that do the handling

–

Configuration scaler parameters
●

Caps negotiation..

V4l2src

V4L2
V4L2
Linux
Linux

FPGA
FPGA

V4l2sink

V4L2
V4L2
Abstraction, Obstruction
●

Raw, compressed: Oh, wibbly-wobbly, timey-wimey...

●

Keep hardware contained
–

●

As close as possible to the kernel

Standardised interfaces
–

e.g. V4L2 for RAW handling

–

Isolate frameworks behind standard interface
●

–

No new Gstreamer modules
●
●

–

e.g. OMX
Extend and improve
e.g. uri handing

e.g. Piggy back on V4L2 interface
Change does not come easy
●

"GStreamer is slow"

●

"GStreamer adds overhead"

●

Typically from the 'established'
●

●

Optimised code from day 1?

Prove the opposite
●

GStreamer _can_ be slow

●

BUGS, not by design

●

Fix the problems
●
●

●

Alsa
H.264 parsing

fixing a bug can never be an excuse for re-writing a complete software stack
A Changed Way of Working
●

The Linux kernel has been used for some time
●
●

●

Kernel is often very specific to the SoC/board
Kernel is linked to FPGA logic

In contrast: Gstreamer allows more re-use
●

Userspace

●

3rd party camera stacks can easily be transferred

●

Easy integration of codecs and codec implementations throughout
the divisions
Cooperation invites tooling
●

Tooling is no longer an arbitrary choice
–

●

Loads of commercial “good and less good” tools

In order to participate in a community, you need to follow
the rules of that community
–

A similar way of working makes life easier
●

●

Svn → git; deployment, ...

Commercial solution is limited to sugar coating
–

e.g. layer on top of git
New Challenges
●

The future is software
●

●

●

Training, training
Migrate from hardware to software

Software is cheap
●

●

Anyone can create a network system

Typical reflex
●

Protectionism
●
●
●

Do not use GPL
Do not use LGPL
Do not use Open Source Software
New Challenges
●

●

Luckily we past that phase before software became the
dominating factor
Cooperation is key
●

Focus on standards
●

●

Added value is in solutions, not components
●

●

●

Step away from “our use-case is special”
Is our added value really in supporting e.g. camera X support?

Keep moving...

The return of the Garage start-ups?
In Practice
●

Software design is now the core of product design
–
–

●

Used to be hardware driven
Board created, software was added

Now we see inter-divisional architecture meetings
–

●

Cross checking and review of design

Gstreamer provides a stable environment to develop in
–
–

Peer review (when submitted)

–

Common reference within the company

–
●

Stable APIs

Easy to get external experts for temporary bottlenecks
In Practice
●

Training is key
–
–

Convert to Software designers

–
●

Excess in hardware designers
Again, external training

Focus is on adding value, not re-inventing the wheel
Questions?

www.barco.com
www.twitter.com/Barco
www.facebook.com/Barco
www.youtube.com/BarcoTV

More Related Content

Viewers also liked

sasikumarj_resume
sasikumarj_resumesasikumarj_resume
sasikumarj_resume
Sasi Kumar
 
Assistencia geologica
Assistencia geologicaAssistencia geologica
Assistencia geologica
crom68
 
Capria no_video_ship_detection_with_dvbt_software_defined_passive_radar
 Capria no_video_ship_detection_with_dvbt_software_defined_passive_radar Capria no_video_ship_detection_with_dvbt_software_defined_passive_radar
Capria no_video_ship_detection_with_dvbt_software_defined_passive_radar
grssieee
 
Buildin a small linux kernel
Buildin a small linux kernelBuildin a small linux kernel
Buildin a small linux kernel
trx2001
 
Standard java coding convention
Standard java coding conventionStandard java coding convention
Standard java coding convention
Tam Thanh
 
An Ultra-Low Power Asynchronous-Logic
An Ultra-Low Power Asynchronous-LogicAn Ultra-Low Power Asynchronous-Logic
An Ultra-Low Power Asynchronous-Logic
Hossam Hassan
 
11 ak45b5 5
11 ak45b5 511 ak45b5 5
11 ak45b5 5
crom68
 
The Digital Video Broadcast (DVB) Project
The Digital Video Broadcast (DVB) ProjectThe Digital Video Broadcast (DVB) Project
The Digital Video Broadcast (DVB) Project
Partho Choudhury
 
Standard embedded c
Standard embedded cStandard embedded c
Standard embedded c
Tam Thanh
 

Viewers also liked (20)

How To Handle An IRD Audit - Atainz
How To Handle An IRD Audit - AtainzHow To Handle An IRD Audit - Atainz
How To Handle An IRD Audit - Atainz
 
sasikumarj_resume
sasikumarj_resumesasikumarj_resume
sasikumarj_resume
 
Linux Workshop , Day 3
Linux Workshop , Day 3Linux Workshop , Day 3
Linux Workshop , Day 3
 
Assistencia geologica
Assistencia geologicaAssistencia geologica
Assistencia geologica
 
Embedded linux barco-20121001
Embedded linux barco-20121001Embedded linux barco-20121001
Embedded linux barco-20121001
 
DVB-T/H Solution
DVB-T/H  SolutionDVB-T/H  Solution
DVB-T/H Solution
 
Capria no_video_ship_detection_with_dvbt_software_defined_passive_radar
 Capria no_video_ship_detection_with_dvbt_software_defined_passive_radar Capria no_video_ship_detection_with_dvbt_software_defined_passive_radar
Capria no_video_ship_detection_with_dvbt_software_defined_passive_radar
 
Buildin a small linux kernel
Buildin a small linux kernelBuildin a small linux kernel
Buildin a small linux kernel
 
Standard java coding convention
Standard java coding conventionStandard java coding convention
Standard java coding convention
 
An Ultra-Low Power Asynchronous-Logic
An Ultra-Low Power Asynchronous-LogicAn Ultra-Low Power Asynchronous-Logic
An Ultra-Low Power Asynchronous-Logic
 
Embedded Linux
Embedded LinuxEmbedded Linux
Embedded Linux
 
10 ways hardware engineers can make software integration easier
10 ways hardware engineers can make software integration easier10 ways hardware engineers can make software integration easier
10 ways hardware engineers can make software integration easier
 
J2ME
J2MEJ2ME
J2ME
 
Overview of DVB-T standard to deploy Digital Terrestrial Television
Overview of DVB-T standard to deploy Digital Terrestrial TelevisionOverview of DVB-T standard to deploy Digital Terrestrial Television
Overview of DVB-T standard to deploy Digital Terrestrial Television
 
11 ak45b5 5
11 ak45b5 511 ak45b5 5
11 ak45b5 5
 
Introduction to Raspberry PI
Introduction to Raspberry PIIntroduction to Raspberry PI
Introduction to Raspberry PI
 
Embedded Linux Basics
Embedded Linux BasicsEmbedded Linux Basics
Embedded Linux Basics
 
The Digital Video Broadcast (DVB) Project
The Digital Video Broadcast (DVB) ProjectThe Digital Video Broadcast (DVB) Project
The Digital Video Broadcast (DVB) Project
 
Read-only rootfs: theory and practice
Read-only rootfs: theory and practiceRead-only rootfs: theory and practice
Read-only rootfs: theory and practice
 
Standard embedded c
Standard embedded cStandard embedded c
Standard embedded c
 

Similar to The move from a hardware centric design to a software centric design: GStreamer as a driving force

ttgLabs - basic presentation (October 2015)_ENG
ttgLabs - basic presentation (October 2015)_ENGttgLabs - basic presentation (October 2015)_ENG
ttgLabs - basic presentation (October 2015)_ENG
Pavel Ivanov
 
Open_IoT_Summit-Europe-2016-Building_a_Drone_from_scratch
Open_IoT_Summit-Europe-2016-Building_a_Drone_from_scratchOpen_IoT_Summit-Europe-2016-Building_a_Drone_from_scratch
Open_IoT_Summit-Europe-2016-Building_a_Drone_from_scratch
Igor Stoppa
 
Open_IoT_Summit-Europe-2016-Building_an_IoT-class_Device_0
Open_IoT_Summit-Europe-2016-Building_an_IoT-class_Device_0Open_IoT_Summit-Europe-2016-Building_an_IoT-class_Device_0
Open_IoT_Summit-Europe-2016-Building_an_IoT-class_Device_0
Igor Stoppa
 
BYOD Revisited: Build Your Own Device (Embedded Linux Conference 2014)
BYOD Revisited: Build Your Own Device (Embedded Linux Conference 2014)BYOD Revisited: Build Your Own Device (Embedded Linux Conference 2014)
BYOD Revisited: Build Your Own Device (Embedded Linux Conference 2014)
Ron Munitz
 

Similar to The move from a hardware centric design to a software centric design: GStreamer as a driving force (20)

ttgLabs - basic presentation (October 2015)_ENG
ttgLabs - basic presentation (October 2015)_ENGttgLabs - basic presentation (October 2015)_ENG
ttgLabs - basic presentation (October 2015)_ENG
 
SFO15-100K1: Welcome Keynote: George Grey, Linaro CEO
SFO15-100K1: Welcome Keynote: George Grey, Linaro CEOSFO15-100K1: Welcome Keynote: George Grey, Linaro CEO
SFO15-100K1: Welcome Keynote: George Grey, Linaro CEO
 
OSMC 2014: Naemon 1, 2, 3, N | Andreas Ericsson
OSMC 2014: Naemon 1, 2, 3, N | Andreas EricssonOSMC 2014: Naemon 1, 2, 3, N | Andreas Ericsson
OSMC 2014: Naemon 1, 2, 3, N | Andreas Ericsson
 
LAS16 100 K1 - Keynote George Grey
LAS16 100 K1 - Keynote George GreyLAS16 100 K1 - Keynote George Grey
LAS16 100 K1 - Keynote George Grey
 
LAS16-100K1: Welcome Keynote
LAS16-100K1: Welcome KeynoteLAS16-100K1: Welcome Keynote
LAS16-100K1: Welcome Keynote
 
Open_IoT_Summit-Europe-2016-Building_a_Drone_from_scratch
Open_IoT_Summit-Europe-2016-Building_a_Drone_from_scratchOpen_IoT_Summit-Europe-2016-Building_a_Drone_from_scratch
Open_IoT_Summit-Europe-2016-Building_a_Drone_from_scratch
 
LAS16 109 - The status quo and the future of 96Boards
LAS16 109 - The status quo and the future of 96BoardsLAS16 109 - The status quo and the future of 96Boards
LAS16 109 - The status quo and the future of 96Boards
 
LAS16-109: LAS16-109: The status quo and the future of 96Boards
LAS16-109: LAS16-109: The status quo and the future of 96BoardsLAS16-109: LAS16-109: The status quo and the future of 96Boards
LAS16-109: LAS16-109: The status quo and the future of 96Boards
 
George Grey Welcome Keynote - BUD17-100K1
George Grey Welcome Keynote - BUD17-100K1George Grey Welcome Keynote - BUD17-100K1
George Grey Welcome Keynote - BUD17-100K1
 
"Making Computer Vision Software Run Fast on Your Embedded Platform," a Prese...
"Making Computer Vision Software Run Fast on Your Embedded Platform," a Prese..."Making Computer Vision Software Run Fast on Your Embedded Platform," a Prese...
"Making Computer Vision Software Run Fast on Your Embedded Platform," a Prese...
 
Open_IoT_Summit-Europe-2016-Building_an_IoT-class_Device_0
Open_IoT_Summit-Europe-2016-Building_an_IoT-class_Device_0Open_IoT_Summit-Europe-2016-Building_an_IoT-class_Device_0
Open_IoT_Summit-Europe-2016-Building_an_IoT-class_Device_0
 
LAS16-108: JerryScript and other scripting languages for IoT
LAS16-108: JerryScript and other scripting languages for IoTLAS16-108: JerryScript and other scripting languages for IoT
LAS16-108: JerryScript and other scripting languages for IoT
 
JerryScript on RIOT
JerryScript on RIOTJerryScript on RIOT
JerryScript on RIOT
 
Pivotal Greenplum Cloud Marketplaces - Greenplum Summit 2019
Pivotal Greenplum Cloud Marketplaces - Greenplum Summit 2019Pivotal Greenplum Cloud Marketplaces - Greenplum Summit 2019
Pivotal Greenplum Cloud Marketplaces - Greenplum Summit 2019
 
Advanced Video Production with FOSS
Advanced Video Production with FOSSAdvanced Video Production with FOSS
Advanced Video Production with FOSS
 
BYOD Revisited: Build Your Own Device (Embedded Linux Conference 2014)
BYOD Revisited: Build Your Own Device (Embedded Linux Conference 2014)BYOD Revisited: Build Your Own Device (Embedded Linux Conference 2014)
BYOD Revisited: Build Your Own Device (Embedded Linux Conference 2014)
 
PGConf.ASIA 2019 Bali - Patroni on GitLab.com - Jose Cores Finnoto
PGConf.ASIA 2019 Bali - Patroni on GitLab.com - Jose Cores FinnotoPGConf.ASIA 2019 Bali - Patroni on GitLab.com - Jose Cores Finnoto
PGConf.ASIA 2019 Bali - Patroni on GitLab.com - Jose Cores Finnoto
 
Using-gnome_as_enterprise_desktop
Using-gnome_as_enterprise_desktopUsing-gnome_as_enterprise_desktop
Using-gnome_as_enterprise_desktop
 
BKK16-100K1 George Grey, Linaro CEO Opening Keynote
BKK16-100K1 George Grey, Linaro CEO Opening KeynoteBKK16-100K1 George Grey, Linaro CEO Opening Keynote
BKK16-100K1 George Grey, Linaro CEO Opening Keynote
 
Update on the open source browser space (16th GENIVI AMM)
Update on the open source browser space (16th GENIVI AMM)Update on the open source browser space (16th GENIVI AMM)
Update on the open source browser space (16th GENIVI AMM)
 

Recently uploaded

➥🔝 7737669865 🔝▻ jhansi Call-girls in Women Seeking Men 🔝jhansi🔝 Escorts S...
➥🔝 7737669865 🔝▻ jhansi Call-girls in Women Seeking Men  🔝jhansi🔝   Escorts S...➥🔝 7737669865 🔝▻ jhansi Call-girls in Women Seeking Men  🔝jhansi🔝   Escorts S...
➥🔝 7737669865 🔝▻ jhansi Call-girls in Women Seeking Men 🔝jhansi🔝 Escorts S...
amitlee9823
 
Vip Mumbai Call Girls Bandra West Call On 9920725232 With Body to body massag...
Vip Mumbai Call Girls Bandra West Call On 9920725232 With Body to body massag...Vip Mumbai Call Girls Bandra West Call On 9920725232 With Body to body massag...
Vip Mumbai Call Girls Bandra West Call On 9920725232 With Body to body massag...
amitlee9823
 
Whitefield Call Girls Service: 🍓 7737669865 🍓 High Profile Model Escorts | Ba...
Whitefield Call Girls Service: 🍓 7737669865 🍓 High Profile Model Escorts | Ba...Whitefield Call Girls Service: 🍓 7737669865 🍓 High Profile Model Escorts | Ba...
Whitefield Call Girls Service: 🍓 7737669865 🍓 High Profile Model Escorts | Ba...
amitlee9823
 
Nisha Yadav Escorts Service Ernakulam ❣️ 7014168258 ❣️ High Cost Unlimited Ha...
Nisha Yadav Escorts Service Ernakulam ❣️ 7014168258 ❣️ High Cost Unlimited Ha...Nisha Yadav Escorts Service Ernakulam ❣️ 7014168258 ❣️ High Cost Unlimited Ha...
Nisha Yadav Escorts Service Ernakulam ❣️ 7014168258 ❣️ High Cost Unlimited Ha...
nirzagarg
 
Verified Trusted Call Girls Adugodi💘 9352852248 Good Looking standard Profil...
Verified Trusted Call Girls Adugodi💘 9352852248  Good Looking standard Profil...Verified Trusted Call Girls Adugodi💘 9352852248  Good Looking standard Profil...
Verified Trusted Call Girls Adugodi💘 9352852248 Good Looking standard Profil...
kumaririma588
 
Peaches App development presentation deck
Peaches App development presentation deckPeaches App development presentation deck
Peaches App development presentation deck
tbatkhuu1
 
Call Girls Basavanagudi Just Call 👗 7737669865 👗 Top Class Call Girl Service ...
Call Girls Basavanagudi Just Call 👗 7737669865 👗 Top Class Call Girl Service ...Call Girls Basavanagudi Just Call 👗 7737669865 👗 Top Class Call Girl Service ...
Call Girls Basavanagudi Just Call 👗 7737669865 👗 Top Class Call Girl Service ...
amitlee9823
 
RT Nagar Call Girls Service: 🍓 7737669865 🍓 High Profile Model Escorts | Bang...
RT Nagar Call Girls Service: 🍓 7737669865 🍓 High Profile Model Escorts | Bang...RT Nagar Call Girls Service: 🍓 7737669865 🍓 High Profile Model Escorts | Bang...
RT Nagar Call Girls Service: 🍓 7737669865 🍓 High Profile Model Escorts | Bang...
amitlee9823
 
FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756
FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756
FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756
dollysharma2066
 
一比一定(购)卡尔顿大学毕业证(CU毕业证)成绩单学位证
一比一定(购)卡尔顿大学毕业证(CU毕业证)成绩单学位证一比一定(购)卡尔顿大学毕业证(CU毕业证)成绩单学位证
一比一定(购)卡尔顿大学毕业证(CU毕业证)成绩单学位证
wpkuukw
 

Recently uploaded (20)

➥🔝 7737669865 🔝▻ jhansi Call-girls in Women Seeking Men 🔝jhansi🔝 Escorts S...
➥🔝 7737669865 🔝▻ jhansi Call-girls in Women Seeking Men  🔝jhansi🔝   Escorts S...➥🔝 7737669865 🔝▻ jhansi Call-girls in Women Seeking Men  🔝jhansi🔝   Escorts S...
➥🔝 7737669865 🔝▻ jhansi Call-girls in Women Seeking Men 🔝jhansi🔝 Escorts S...
 
Vip Mumbai Call Girls Bandra West Call On 9920725232 With Body to body massag...
Vip Mumbai Call Girls Bandra West Call On 9920725232 With Body to body massag...Vip Mumbai Call Girls Bandra West Call On 9920725232 With Body to body massag...
Vip Mumbai Call Girls Bandra West Call On 9920725232 With Body to body massag...
 
Whitefield Call Girls Service: 🍓 7737669865 🍓 High Profile Model Escorts | Ba...
Whitefield Call Girls Service: 🍓 7737669865 🍓 High Profile Model Escorts | Ba...Whitefield Call Girls Service: 🍓 7737669865 🍓 High Profile Model Escorts | Ba...
Whitefield Call Girls Service: 🍓 7737669865 🍓 High Profile Model Escorts | Ba...
 
Top Rated Pune Call Girls Koregaon Park ⟟ 6297143586 ⟟ Call Me For Genuine S...
Top Rated  Pune Call Girls Koregaon Park ⟟ 6297143586 ⟟ Call Me For Genuine S...Top Rated  Pune Call Girls Koregaon Park ⟟ 6297143586 ⟟ Call Me For Genuine S...
Top Rated Pune Call Girls Koregaon Park ⟟ 6297143586 ⟟ Call Me For Genuine S...
 
Book Paid In Vashi In 8976425520 Navi Mumbai Call Girls
Book Paid In Vashi In 8976425520 Navi Mumbai Call GirlsBook Paid In Vashi In 8976425520 Navi Mumbai Call Girls
Book Paid In Vashi In 8976425520 Navi Mumbai Call Girls
 
Booking open Available Pune Call Girls Kirkatwadi 6297143586 Call Hot Indian...
Booking open Available Pune Call Girls Kirkatwadi  6297143586 Call Hot Indian...Booking open Available Pune Call Girls Kirkatwadi  6297143586 Call Hot Indian...
Booking open Available Pune Call Girls Kirkatwadi 6297143586 Call Hot Indian...
 
Nisha Yadav Escorts Service Ernakulam ❣️ 7014168258 ❣️ High Cost Unlimited Ha...
Nisha Yadav Escorts Service Ernakulam ❣️ 7014168258 ❣️ High Cost Unlimited Ha...Nisha Yadav Escorts Service Ernakulam ❣️ 7014168258 ❣️ High Cost Unlimited Ha...
Nisha Yadav Escorts Service Ernakulam ❣️ 7014168258 ❣️ High Cost Unlimited Ha...
 
Verified Trusted Call Girls Adugodi💘 9352852248 Good Looking standard Profil...
Verified Trusted Call Girls Adugodi💘 9352852248  Good Looking standard Profil...Verified Trusted Call Girls Adugodi💘 9352852248  Good Looking standard Profil...
Verified Trusted Call Girls Adugodi💘 9352852248 Good Looking standard Profil...
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
Top Rated Pune Call Girls Saswad ⟟ 6297143586 ⟟ Call Me For Genuine Sex Serv...
Top Rated  Pune Call Girls Saswad ⟟ 6297143586 ⟟ Call Me For Genuine Sex Serv...Top Rated  Pune Call Girls Saswad ⟟ 6297143586 ⟟ Call Me For Genuine Sex Serv...
Top Rated Pune Call Girls Saswad ⟟ 6297143586 ⟟ Call Me For Genuine Sex Serv...
 
Sweety Planet Packaging Design Process Book.pptx
Sweety Planet Packaging Design Process Book.pptxSweety Planet Packaging Design Process Book.pptx
Sweety Planet Packaging Design Process Book.pptx
 
Peaches App development presentation deck
Peaches App development presentation deckPeaches App development presentation deck
Peaches App development presentation deck
 
Call Girls Basavanagudi Just Call 👗 7737669865 👗 Top Class Call Girl Service ...
Call Girls Basavanagudi Just Call 👗 7737669865 👗 Top Class Call Girl Service ...Call Girls Basavanagudi Just Call 👗 7737669865 👗 Top Class Call Girl Service ...
Call Girls Basavanagudi Just Call 👗 7737669865 👗 Top Class Call Girl Service ...
 
WhatsApp Chat: 📞 8617697112 Call Girl Baran is experienced
WhatsApp Chat: 📞 8617697112 Call Girl Baran is experiencedWhatsApp Chat: 📞 8617697112 Call Girl Baran is experienced
WhatsApp Chat: 📞 8617697112 Call Girl Baran is experienced
 
VIP Model Call Girls Kalyani Nagar ( Pune ) Call ON 8005736733 Starting From ...
VIP Model Call Girls Kalyani Nagar ( Pune ) Call ON 8005736733 Starting From ...VIP Model Call Girls Kalyani Nagar ( Pune ) Call ON 8005736733 Starting From ...
VIP Model Call Girls Kalyani Nagar ( Pune ) Call ON 8005736733 Starting From ...
 
Jordan_Amanda_DMBS202404_PB1_2024-04.pdf
Jordan_Amanda_DMBS202404_PB1_2024-04.pdfJordan_Amanda_DMBS202404_PB1_2024-04.pdf
Jordan_Amanda_DMBS202404_PB1_2024-04.pdf
 
RT Nagar Call Girls Service: 🍓 7737669865 🍓 High Profile Model Escorts | Bang...
RT Nagar Call Girls Service: 🍓 7737669865 🍓 High Profile Model Escorts | Bang...RT Nagar Call Girls Service: 🍓 7737669865 🍓 High Profile Model Escorts | Bang...
RT Nagar Call Girls Service: 🍓 7737669865 🍓 High Profile Model Escorts | Bang...
 
FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756
FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756
FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756
 
一比一定(购)卡尔顿大学毕业证(CU毕业证)成绩单学位证
一比一定(购)卡尔顿大学毕业证(CU毕业证)成绩单学位证一比一定(购)卡尔顿大学毕业证(CU毕业证)成绩单学位证
一比一定(购)卡尔顿大学毕业证(CU毕业证)成绩单学位证
 
Hire 💕 8617697112 Meerut Call Girls Service Call Girls Agency
Hire 💕 8617697112 Meerut Call Girls Service Call Girls AgencyHire 💕 8617697112 Meerut Call Girls Service Call Girls Agency
Hire 💕 8617697112 Meerut Call Girls Service Call Girls Agency
 

The move from a hardware centric design to a software centric design: GStreamer as a driving force

  • 1. The move from a hardware centric product design towards a software centric product design: Gstreamer as a driving force Marc Leeman @den_erpel
  • 2. Introduction ● The Early Days ● First Paradigm shift ● A new technology ● At the start of the new millennium ● A typical 2000 design ● What changed? ● A new world ● Gstreamer, the early days ● Gstreamer, 2nd try ● Gstreamer, wider use ● Gstreamer, from here on out ● Change does not come easy ● A Changed way of working ● New challenges
  • 3. The Early Days ● Barco: Belgian American Radio Company ● Established in 1934 ● Focus: Radios ● Vacuum tubes ● Long Lasting ● In those days, buying a radio was costly ● A status symbol
  • 4. First Paradigm Shift ● 2nd World War ● ● Refocus of the industry towards the War Machine Radios were restricted ● Control the information ● Were hidden and penalties were severe ● Jamming signals were (partly) aimed for detection
  • 5. A new technology ● The advent of television ● ● ● Started back in the 30s, halted for 5 years Multi standard (PAL, SECAM, NTSC) Content driven ● Window on the world ● Not unlike 16:9 or HD ● UHD? ● Real breakthrough after exhibition of 1958 ● From the mid-60s onwards, start of to focus on industrial projects
  • 6. At the start of a the new millennium ● Technologies last long ● ● ● Non disruptive changes Improving on existing, slow move to new Competence centre in optics ● ● RGB projectors Full chain development with exception of CRT ● Components out
  • 7. A typical 2000 design ● Core of the design is hardware accelerated ● High density solutions ● FPGA at the core of the processing ● “The rest are peripherals” ● ● ● The rise of DSP solutions Uc as a controller Software as network controller ● Management software provides logical access point ● Hides 100s of smaller devices ● ● Boxes each containing 10-20 PCBs Each processing up to 4 network streams
  • 8. What Changed? ● Long lead times ● Full chain development, not flexible during design ● Maintenance is much higher once product is introduced ● ● Custom stack; all development is integrated, very much tailored to “exceptions” Component life time ● Industrial range ● Expensive ● Underperforming wrt cutting edge ● Industry is not driving technology, but consumer ● Mobile... mobile... mobile...
  • 9. Mobile? ● Before: research was mainly on: ● ● ● Focus on power efficiency Focus on performance within constrained device Android... ● ● ● Java and AMM is not efficient Contradicts previous focus Solution was not to make the software better but to beef the specs of the devices ● Same story as compression research ● More memory, deeper memory hierarchy ● Faster cores, more cores
  • 10. A new world ● Suddenly, a lot of new processor cores are flooding the market ● ● ● > 1GHz is the norm > 2 cores is the norm Sounds awfully familiar to GPP ● ● Difference between GPP software and 'embedded' software is decreasing faster than ever before Gstreamer as a typical example
  • 11. GStreamer, the early days ● Initial attempts on MPC8349 core ● uClibc based ● uClibc proved very bad thread behaviour (meant for controller tasks) ● unfair comparison: compared with MPC8245 based 'limited' protocol support ● uC core was not as fast as advertised ● Discontinued ● YACS: Yet Another Custom Stack ● ● ● Modular design was retained 2nd time to write a streaming system from scratch 2006
  • 12. GStreamer, 2nd try ● Something stuck ● ● open source (experience with Linux, uclibc, busybox, ffmpeg, X11, …) ● ● modular design YACS just felt wrong MGS: Media Gateway Server ● ● ● x86-64 server based solution removes much of the previous mentioned limitations Small team can support a wide range of systems ● ● cooperation ● ● key was modularity peer review 2008
  • 13. GStreamer, wider use ● Hard to not notice the advantages ● Stability ● Protocol support ● Time-to-market ● Flexibility ● Replacement of custom stack with GStreamer ● Integration of custom codecs in GStreamer ● the power of an external API
  • 14. GStreamer, from here on out... ● Established on x86 ● Once in userland, why the focus on one architecture ● ● NSLU2, SheevaPlug, Raspberry Pi, Odroid, ... Platform approach ● ● ● re-use of experience and code encoder and platform support For devices, added value is the same ● Multi protocol support ● Standard protocol support ● Not so standard protocol support
  • 15. Streaming,...or not? ● RAW video handling (loss-less) – – ● Low latency High quality high bandwidth Caps negotiation V4l2src V4l2sink V4L2 V4L2 1 GHz Device handling streams +10Gbps? – ● GStreamer application At first glance, it cannot be done Not for the pure data handling – But for the configuration of the blocks that do the handling – Configuration scaler parameters ● Caps negotiation.. V4l2src V4L2 V4L2 Linux Linux FPGA FPGA V4l2sink V4L2 V4L2
  • 16. Abstraction, Obstruction ● Raw, compressed: Oh, wibbly-wobbly, timey-wimey... ● Keep hardware contained – ● As close as possible to the kernel Standardised interfaces – e.g. V4L2 for RAW handling – Isolate frameworks behind standard interface ● – No new Gstreamer modules ● ● – e.g. OMX Extend and improve e.g. uri handing e.g. Piggy back on V4L2 interface
  • 17. Change does not come easy ● "GStreamer is slow" ● "GStreamer adds overhead" ● Typically from the 'established' ● ● Optimised code from day 1? Prove the opposite ● GStreamer _can_ be slow ● BUGS, not by design ● Fix the problems ● ● ● Alsa H.264 parsing fixing a bug can never be an excuse for re-writing a complete software stack
  • 18. A Changed Way of Working ● The Linux kernel has been used for some time ● ● ● Kernel is often very specific to the SoC/board Kernel is linked to FPGA logic In contrast: Gstreamer allows more re-use ● Userspace ● 3rd party camera stacks can easily be transferred ● Easy integration of codecs and codec implementations throughout the divisions
  • 19. Cooperation invites tooling ● Tooling is no longer an arbitrary choice – ● Loads of commercial “good and less good” tools In order to participate in a community, you need to follow the rules of that community – A similar way of working makes life easier ● ● Svn → git; deployment, ... Commercial solution is limited to sugar coating – e.g. layer on top of git
  • 20. New Challenges ● The future is software ● ● ● Training, training Migrate from hardware to software Software is cheap ● ● Anyone can create a network system Typical reflex ● Protectionism ● ● ● Do not use GPL Do not use LGPL Do not use Open Source Software
  • 21. New Challenges ● ● Luckily we past that phase before software became the dominating factor Cooperation is key ● Focus on standards ● ● Added value is in solutions, not components ● ● ● Step away from “our use-case is special” Is our added value really in supporting e.g. camera X support? Keep moving... The return of the Garage start-ups?
  • 22. In Practice ● Software design is now the core of product design – – ● Used to be hardware driven Board created, software was added Now we see inter-divisional architecture meetings – ● Cross checking and review of design Gstreamer provides a stable environment to develop in – – Peer review (when submitted) – Common reference within the company – ● Stable APIs Easy to get external experts for temporary bottlenecks
  • 23. In Practice ● Training is key – – Convert to Software designers – ● Excess in hardware designers Again, external training Focus is on adding value, not re-inventing the wheel