introduction to gstreamer - gstreamer: open source ...gmail.com centricular ltd gstreamer...
TRANSCRIPT
![Page 1: Introduction to GStreamer - GStreamer: open source ...gmail.com Centricular Ltd GStreamer development, Windows Faster builds, all platforms Meson build system Centricular Ltd 40 years](https://reader034.vdocuments.net/reader034/viewer/2022050722/5acfea197f8b9ae2138d1516/html5/thumbnails/1.jpg)
Centricular Ltd
Nirbheek Chauhan(nirbheek on Twitter/IRC)
GStreamer contributor since 2014
http://[email protected]
![Page 2: Introduction to GStreamer - GStreamer: open source ...gmail.com Centricular Ltd GStreamer development, Windows Faster builds, all platforms Meson build system Centricular Ltd 40 years](https://reader034.vdocuments.net/reader034/viewer/2022050722/5acfea197f8b9ae2138d1516/html5/thumbnails/2.jpg)
Centricular Ltd
Nirbheek Chauhan(nirbheek on Twitter/IRC)
GStreamer contributor since 2014
http://[email protected]
![Page 3: Introduction to GStreamer - GStreamer: open source ...gmail.com Centricular Ltd GStreamer development, Windows Faster builds, all platforms Meson build system Centricular Ltd 40 years](https://reader034.vdocuments.net/reader034/viewer/2022050722/5acfea197f8b9ae2138d1516/html5/thumbnails/3.jpg)
Centricular Ltd
GStreamer development, WindowsFaster builds, all platforms
Meson build system
![Page 4: Introduction to GStreamer - GStreamer: open source ...gmail.com Centricular Ltd GStreamer development, Windows Faster builds, all platforms Meson build system Centricular Ltd 40 years](https://reader034.vdocuments.net/reader034/viewer/2022050722/5acfea197f8b9ae2138d1516/html5/thumbnails/4.jpg)
Centricular Ltd
40 years of build systems
GNU Make, GNU Autotools, Waf, SCons, CMake, Gyp
… the list goes on
![Page 5: Introduction to GStreamer - GStreamer: open source ...gmail.com Centricular Ltd GStreamer development, Windows Faster builds, all platforms Meson build system Centricular Ltd 40 years](https://reader034.vdocuments.net/reader034/viewer/2022050722/5acfea197f8b9ae2138d1516/html5/thumbnails/5.jpg)
Centricular Ltd
![Page 6: Introduction to GStreamer - GStreamer: open source ...gmail.com Centricular Ltd GStreamer development, Windows Faster builds, all platforms Meson build system Centricular Ltd 40 years](https://reader034.vdocuments.net/reader034/viewer/2022050722/5acfea197f8b9ae2138d1516/html5/thumbnails/6.jpg)
Centricular Ltd
(PS: That graph is incomplete)
libtool, config.lt, config.guess, compile
sed, tr, awk, grep, install, coreutils
![Page 7: Introduction to GStreamer - GStreamer: open source ...gmail.com Centricular Ltd GStreamer development, Windows Faster builds, all platforms Meson build system Centricular Ltd 40 years](https://reader034.vdocuments.net/reader034/viewer/2022050722/5acfea197f8b9ae2138d1516/html5/thumbnails/7.jpg)
Centricular Ltd
Why do we still use Autotools?
![Page 8: Introduction to GStreamer - GStreamer: open source ...gmail.com Centricular Ltd GStreamer development, Windows Faster builds, all platforms Meson build system Centricular Ltd 40 years](https://reader034.vdocuments.net/reader034/viewer/2022050722/5acfea197f8b9ae2138d1516/html5/thumbnails/8.jpg)
Centricular Ltd
Why do we still use Autotools?
$ du -sh gstreamer.git/configure956K gstreamer.git/configure
![Page 9: Introduction to GStreamer - GStreamer: open source ...gmail.com Centricular Ltd GStreamer development, Windows Faster builds, all platforms Meson build system Centricular Ltd 40 years](https://reader034.vdocuments.net/reader034/viewer/2022050722/5acfea197f8b9ae2138d1516/html5/thumbnails/9.jpg)
Centricular Ltd
![Page 10: Introduction to GStreamer - GStreamer: open source ...gmail.com Centricular Ltd GStreamer development, Windows Faster builds, all platforms Meson build system Centricular Ltd 40 years](https://reader034.vdocuments.net/reader034/viewer/2022050722/5acfea197f8b9ae2138d1516/html5/thumbnails/10.jpg)
Centricular Ltd
Why have we been using Autotools?
(Not rhetorical)
![Page 11: Introduction to GStreamer - GStreamer: open source ...gmail.com Centricular Ltd GStreamer development, Windows Faster builds, all platforms Meson build system Centricular Ltd 40 years](https://reader034.vdocuments.net/reader034/viewer/2022050722/5acfea197f8b9ae2138d1516/html5/thumbnails/11.jpg)
Centricular Ltd
Why have we been using Autotools?
It works.
Has served us well so far
![Page 12: Introduction to GStreamer - GStreamer: open source ...gmail.com Centricular Ltd GStreamer development, Windows Faster builds, all platforms Meson build system Centricular Ltd 40 years](https://reader034.vdocuments.net/reader034/viewer/2022050722/5acfea197f8b9ae2138d1516/html5/thumbnails/12.jpg)
Centricular Ltd
Why have we been using Autotools?
Works out of the box on any Linux distro
Cross-compilation
![Page 13: Introduction to GStreamer - GStreamer: open source ...gmail.com Centricular Ltd GStreamer development, Windows Faster builds, all platforms Meson build system Centricular Ltd 40 years](https://reader034.vdocuments.net/reader034/viewer/2022050722/5acfea197f8b9ae2138d1516/html5/thumbnails/13.jpg)
Centricular Ltd
Why have we been using Autotools?
Familiar system
gtk-doc, docbook,glib-mkenums,gettext, gobject-introspection
![Page 14: Introduction to GStreamer - GStreamer: open source ...gmail.com Centricular Ltd GStreamer development, Windows Faster builds, all platforms Meson build system Centricular Ltd 40 years](https://reader034.vdocuments.net/reader034/viewer/2022050722/5acfea197f8b9ae2138d1516/html5/thumbnails/14.jpg)
Centricular Ltd
Why have we been using Autotools?
Conventions
pkg-config, library conventions, etc.
![Page 15: Introduction to GStreamer - GStreamer: open source ...gmail.com Centricular Ltd GStreamer development, Windows Faster builds, all platforms Meson build system Centricular Ltd 40 years](https://reader034.vdocuments.net/reader034/viewer/2022050722/5acfea197f8b9ae2138d1516/html5/thumbnails/15.jpg)
Centricular Ltd
We need something better.
![Page 16: Introduction to GStreamer - GStreamer: open source ...gmail.com Centricular Ltd GStreamer development, Windows Faster builds, all platforms Meson build system Centricular Ltd 40 years](https://reader034.vdocuments.net/reader034/viewer/2022050722/5acfea197f8b9ae2138d1516/html5/thumbnails/16.jpg)
Centricular Ltd
Why do we need something better?
Technical debt
Macros that spit out MBs of shellCargo Cult Programming
![Page 17: Introduction to GStreamer - GStreamer: open source ...gmail.com Centricular Ltd GStreamer development, Windows Faster builds, all platforms Meson build system Centricular Ltd 40 years](https://reader034.vdocuments.net/reader034/viewer/2022050722/5acfea197f8b9ae2138d1516/html5/thumbnails/17.jpg)
Centricular Ltd
Why do we need something better?
Ridiculously slow
Remember MBs of shell?10-20x slower on Windows & embedded systems
![Page 18: Introduction to GStreamer - GStreamer: open source ...gmail.com Centricular Ltd GStreamer development, Windows Faster builds, all platforms Meson build system Centricular Ltd 40 years](https://reader034.vdocuments.net/reader034/viewer/2022050722/5acfea197f8b9ae2138d1516/html5/thumbnails/18.jpg)
Centricular Ltd
Why do we need something better?
“Cross-platform” support
... for the platforms of the 1970s and 1980s
![Page 19: Introduction to GStreamer - GStreamer: open source ...gmail.com Centricular Ltd GStreamer development, Windows Faster builds, all platforms Meson build system Centricular Ltd 40 years](https://reader034.vdocuments.net/reader034/viewer/2022050722/5acfea197f8b9ae2138d1516/html5/thumbnails/19.jpg)
Centricular Ltd
$ grep -A 1 -e 197 configure# Use only awk features that work with 7thedition Unix awk (1978).# My, what an old awk you have, Mr. Solaris!
![Page 20: Introduction to GStreamer - GStreamer: open source ...gmail.com Centricular Ltd GStreamer development, Windows Faster builds, all platforms Meson build system Centricular Ltd 40 years](https://reader034.vdocuments.net/reader034/viewer/2022050722/5acfea197f8b9ae2138d1516/html5/thumbnails/20.jpg)
Centricular Ltd
Why do we need something better?
“Cross-platform” support
Terrible experience on OS X and Windows
![Page 21: Introduction to GStreamer - GStreamer: open source ...gmail.com Centricular Ltd GStreamer development, Windows Faster builds, all platforms Meson build system Centricular Ltd 40 years](https://reader034.vdocuments.net/reader034/viewer/2022050722/5acfea197f8b9ae2138d1516/html5/thumbnails/21.jpg)
Centricular Ltd
Why do we need something better?
Terrible experience on OS X and Windows
GNU vs BSD MinGW vs Cygwin
![Page 22: Introduction to GStreamer - GStreamer: open source ...gmail.com Centricular Ltd GStreamer development, Windows Faster builds, all platforms Meson build system Centricular Ltd 40 years](https://reader034.vdocuments.net/reader034/viewer/2022050722/5acfea197f8b9ae2138d1516/html5/thumbnails/22.jpg)
Centricular Ltd
Why do we need something better?
Terrible experience on OS X and Windows
Can't build with native IDEs
![Page 23: Introduction to GStreamer - GStreamer: open source ...gmail.com Centricular Ltd GStreamer development, Windows Faster builds, all platforms Meson build system Centricular Ltd 40 years](https://reader034.vdocuments.net/reader034/viewer/2022050722/5acfea197f8b9ae2138d1516/html5/thumbnails/23.jpg)
Centricular Ltd
Why do we need something better?
Crappy experience on Windows
“MinGW32 or MinGW64?” “MSYS or MSYS2?”“m4.exe crashes for me” “make.exe hangs”
![Page 24: Introduction to GStreamer - GStreamer: open source ...gmail.com Centricular Ltd GStreamer development, Windows Faster builds, all platforms Meson build system Centricular Ltd 40 years](https://reader034.vdocuments.net/reader034/viewer/2022050722/5acfea197f8b9ae2138d1516/html5/thumbnails/24.jpg)
Centricular Ltd
Why do we need something better?
Crappy experience on Windows
“Why does building all of GStreamer take a full day?”
![Page 25: Introduction to GStreamer - GStreamer: open source ...gmail.com Centricular Ltd GStreamer development, Windows Faster builds, all platforms Meson build system Centricular Ltd 40 years](https://reader034.vdocuments.net/reader034/viewer/2022050722/5acfea197f8b9ae2138d1516/html5/thumbnails/25.jpg)
Centricular Ltd
Why do we need something better?
Unusable experience on Windows
“We use C++ exceptions”SJLJ vs DW2EH vs SEH
![Page 26: Introduction to GStreamer - GStreamer: open source ...gmail.com Centricular Ltd GStreamer development, Windows Faster builds, all platforms Meson build system Centricular Ltd 40 years](https://reader034.vdocuments.net/reader034/viewer/2022050722/5acfea197f8b9ae2138d1516/html5/thumbnails/26.jpg)
Centricular Ltd
Why do we need something better?
Unusable experience on Windows
“I want debug symbols in Visual Studio”DWARF vs PDB
![Page 27: Introduction to GStreamer - GStreamer: open source ...gmail.com Centricular Ltd GStreamer development, Windows Faster builds, all platforms Meson build system Centricular Ltd 40 years](https://reader034.vdocuments.net/reader034/viewer/2022050722/5acfea197f8b9ae2138d1516/html5/thumbnails/27.jpg)
Centricular Ltd
Why do we need something better?
Unusable experience on Windows
“My application uses a symbol server”
![Page 28: Introduction to GStreamer - GStreamer: open source ...gmail.com Centricular Ltd GStreamer development, Windows Faster builds, all platforms Meson build system Centricular Ltd 40 years](https://reader034.vdocuments.net/reader034/viewer/2022050722/5acfea197f8b9ae2138d1516/html5/thumbnails/28.jpg)
Centricular Ltd
Why do we need something better?
Unusable experience on Windows
“I want to build everything with MSVC”
![Page 29: Introduction to GStreamer - GStreamer: open source ...gmail.com Centricular Ltd GStreamer development, Windows Faster builds, all platforms Meson build system Centricular Ltd 40 years](https://reader034.vdocuments.net/reader034/viewer/2022050722/5acfea197f8b9ae2138d1516/html5/thumbnails/29.jpg)
Centricular Ltd
Why do we need something better?
Unusable experience on Windows
“I've always done development inside Visual Studio”
![Page 30: Introduction to GStreamer - GStreamer: open source ...gmail.com Centricular Ltd GStreamer development, Windows Faster builds, all platforms Meson build system Centricular Ltd 40 years](https://reader034.vdocuments.net/reader034/viewer/2022050722/5acfea197f8b9ae2138d1516/html5/thumbnails/30.jpg)
Centricular Ltd
Why do we need something better?
Unusable experience on Windows
“Can I use GStreamer on Windows Phone?”
![Page 31: Introduction to GStreamer - GStreamer: open source ...gmail.com Centricular Ltd GStreamer development, Windows Faster builds, all platforms Meson build system Centricular Ltd 40 years](https://reader034.vdocuments.net/reader034/viewer/2022050722/5acfea197f8b9ae2138d1516/html5/thumbnails/31.jpg)
Centricular Ltd
Why do we need something better?
OS X elements lag behind
Windows elements use APIs added in XP
![Page 32: Introduction to GStreamer - GStreamer: open source ...gmail.com Centricular Ltd GStreamer development, Windows Faster builds, all platforms Meson build system Centricular Ltd 40 years](https://reader034.vdocuments.net/reader034/viewer/2022050722/5acfea197f8b9ae2138d1516/html5/thumbnails/32.jpg)
Centricular Ltd
Why do we need something better?
The harder it is to contribute
The fewer contributors you will have
![Page 33: Introduction to GStreamer - GStreamer: open source ...gmail.com Centricular Ltd GStreamer development, Windows Faster builds, all platforms Meson build system Centricular Ltd 40 years](https://reader034.vdocuments.net/reader034/viewer/2022050722/5acfea197f8b9ae2138d1516/html5/thumbnails/33.jpg)
Centricular Ltd
We need something better.
![Page 34: Introduction to GStreamer - GStreamer: open source ...gmail.com Centricular Ltd GStreamer development, Windows Faster builds, all platforms Meson build system Centricular Ltd 40 years](https://reader034.vdocuments.net/reader034/viewer/2022050722/5acfea197f8b9ae2138d1516/html5/thumbnails/34.jpg)
Centricular Ltd
Why is there no alternative?
![Page 35: Introduction to GStreamer - GStreamer: open source ...gmail.com Centricular Ltd GStreamer development, Windows Faster builds, all platforms Meson build system Centricular Ltd 40 years](https://reader034.vdocuments.net/reader034/viewer/2022050722/5acfea197f8b9ae2138d1516/html5/thumbnails/35.jpg)
Centricular Ltd
Why is there no alternative?
Technical debt, Inertia
Autotools was “good enough”
![Page 36: Introduction to GStreamer - GStreamer: open source ...gmail.com Centricular Ltd GStreamer development, Windows Faster builds, all platforms Meson build system Centricular Ltd 40 years](https://reader034.vdocuments.net/reader034/viewer/2022050722/5acfea197f8b9ae2138d1516/html5/thumbnails/36.jpg)
Centricular Ltd
Why is there no alternative?
Apathy, Inertia
Linux users live in a filter bubble
![Page 37: Introduction to GStreamer - GStreamer: open source ...gmail.com Centricular Ltd GStreamer development, Windows Faster builds, all platforms Meson build system Centricular Ltd 40 years](https://reader034.vdocuments.net/reader034/viewer/2022050722/5acfea197f8b9ae2138d1516/html5/thumbnails/37.jpg)
Centricular Ltd
Why is there no alternative?
Not sexy
Difficult problem, lots of work
![Page 38: Introduction to GStreamer - GStreamer: open source ...gmail.com Centricular Ltd GStreamer development, Windows Faster builds, all platforms Meson build system Centricular Ltd 40 years](https://reader034.vdocuments.net/reader034/viewer/2022050722/5acfea197f8b9ae2138d1516/html5/thumbnails/38.jpg)
Centricular Ltd
Well, now we have an alternative.
Meson
http://mesonbuild.com
![Page 39: Introduction to GStreamer - GStreamer: open source ...gmail.com Centricular Ltd GStreamer development, Windows Faster builds, all platforms Meson build system Centricular Ltd 40 years](https://reader034.vdocuments.net/reader034/viewer/2022050722/5acfea197f8b9ae2138d1516/html5/thumbnails/39.jpg)
Centricular Ltd
Meson
Generates Ninja build files
2 years of development, 40 contributors
![Page 40: Introduction to GStreamer - GStreamer: open source ...gmail.com Centricular Ltd GStreamer development, Windows Faster builds, all platforms Meson build system Centricular Ltd 40 years](https://reader034.vdocuments.net/reader034/viewer/2022050722/5acfea197f8b9ae2138d1516/html5/thumbnails/40.jpg)
Centricular Ltd
$ cd gstreamer.git/$ mkdir build-dir && cd build-dir$ meson ..$ ninja
![Page 41: Introduction to GStreamer - GStreamer: open source ...gmail.com Centricular Ltd GStreamer development, Windows Faster builds, all platforms Meson build system Centricular Ltd 40 years](https://reader034.vdocuments.net/reader034/viewer/2022050722/5acfea197f8b9ae2138d1516/html5/thumbnails/41.jpg)
Centricular Ltd
Meson
Always builds out-of-tree
Auto-detects source code changes and re-runs itself
![Page 42: Introduction to GStreamer - GStreamer: open source ...gmail.com Centricular Ltd GStreamer development, Windows Faster builds, all platforms Meson build system Centricular Ltd 40 years](https://reader034.vdocuments.net/reader034/viewer/2022050722/5acfea197f8b9ae2138d1516/html5/thumbnails/42.jpg)
Centricular Ltd
Meson
Why do we use it?
![Page 43: Introduction to GStreamer - GStreamer: open source ...gmail.com Centricular Ltd GStreamer development, Windows Faster builds, all platforms Meson build system Centricular Ltd 40 years](https://reader034.vdocuments.net/reader034/viewer/2022050722/5acfea197f8b9ae2138d1516/html5/thumbnails/43.jpg)
Centricular Ltd
GStreamer ♥ Meson
![Page 44: Introduction to GStreamer - GStreamer: open source ...gmail.com Centricular Ltd GStreamer development, Windows Faster builds, all platforms Meson build system Centricular Ltd 40 years](https://reader034.vdocuments.net/reader034/viewer/2022050722/5acfea197f8b9ae2138d1516/html5/thumbnails/44.jpg)
Centricular Ltd
GStreamer ♥ Meson
Finally a build system that does what we need
![Page 45: Introduction to GStreamer - GStreamer: open source ...gmail.com Centricular Ltd GStreamer development, Windows Faster builds, all platforms Meson build system Centricular Ltd 40 years](https://reader034.vdocuments.net/reader034/viewer/2022050722/5acfea197f8b9ae2138d1516/html5/thumbnails/45.jpg)
Centricular Ltd
GStreamer ♥ Meson
pkg-config for everything
![Page 46: Introduction to GStreamer - GStreamer: open source ...gmail.com Centricular Ltd GStreamer development, Windows Faster builds, all platforms Meson build system Centricular Ltd 40 years](https://reader034.vdocuments.net/reader034/viewer/2022050722/5acfea197f8b9ae2138d1516/html5/thumbnails/46.jpg)
Centricular Ltd
GStreamer ♥ Meson
gnome.mkenums()gnome.generate_gir()gnome.gtk_doc(), ...
![Page 47: Introduction to GStreamer - GStreamer: open source ...gmail.com Centricular Ltd GStreamer development, Windows Faster builds, all platforms Meson build system Centricular Ltd 40 years](https://reader034.vdocuments.net/reader034/viewer/2022050722/5acfea197f8b9ae2138d1516/html5/thumbnails/47.jpg)
Centricular Ltd
GStreamer ♥ Meson
Useful cross-platform support
![Page 48: Introduction to GStreamer - GStreamer: open source ...gmail.com Centricular Ltd GStreamer development, Windows Faster builds, all platforms Meson build system Centricular Ltd 40 years](https://reader034.vdocuments.net/reader034/viewer/2022050722/5acfea197f8b9ae2138d1516/html5/thumbnails/48.jpg)
Centricular Ltd
GStreamer ♥ Meson
Fewer dependencies
Don't need sh, m4, grep, awk, tr, perl, coreutils, autoconf, automake, kitchen sink for building
![Page 49: Introduction to GStreamer - GStreamer: open source ...gmail.com Centricular Ltd GStreamer development, Windows Faster builds, all platforms Meson build system Centricular Ltd 40 years](https://reader034.vdocuments.net/reader034/viewer/2022050722/5acfea197f8b9ae2138d1516/html5/thumbnails/49.jpg)
Centricular Ltd
GStreamer ♥ Meson
Fewer dependencies
Python 3, Meson, Ninja+ whatever actually builds stuff
![Page 50: Introduction to GStreamer - GStreamer: open source ...gmail.com Centricular Ltd GStreamer development, Windows Faster builds, all platforms Meson build system Centricular Ltd 40 years](https://reader034.vdocuments.net/reader034/viewer/2022050722/5acfea197f8b9ae2138d1516/html5/thumbnails/50.jpg)
Centricular Ltd
Meson ♥ Platforms
Linux, Windows, OS X, BSD, iOS, Android
Integrated Cross-compilation
![Page 51: Introduction to GStreamer - GStreamer: open source ...gmail.com Centricular Ltd GStreamer development, Windows Faster builds, all platforms Meson build system Centricular Ltd 40 years](https://reader034.vdocuments.net/reader034/viewer/2022050722/5acfea197f8b9ae2138d1516/html5/thumbnails/51.jpg)
Centricular Ltd
Meson ♥ Toolchains
GCC, Clang, MinGW, Cygwin, MSVC
Ninja, MSBuild, Visual Studio, XCode
![Page 52: Introduction to GStreamer - GStreamer: open source ...gmail.com Centricular Ltd GStreamer development, Windows Faster builds, all platforms Meson build system Centricular Ltd 40 years](https://reader034.vdocuments.net/reader034/viewer/2022050722/5acfea197f8b9ae2138d1516/html5/thumbnails/52.jpg)
Centricular Ltd
GStreamer ♥ Meson
Everything builds faster!
![Page 53: Introduction to GStreamer - GStreamer: open source ...gmail.com Centricular Ltd GStreamer development, Windows Faster builds, all platforms Meson build system Centricular Ltd 40 years](https://reader034.vdocuments.net/reader034/viewer/2022050722/5acfea197f8b9ae2138d1516/html5/thumbnails/53.jpg)
Centricular Ltd
Meson ♥ Speed
Made to be fast on first principles
Written in Python, so could be even faster
![Page 54: Introduction to GStreamer - GStreamer: open source ...gmail.com Centricular Ltd GStreamer development, Windows Faster builds, all platforms Meson build system Centricular Ltd 40 years](https://reader034.vdocuments.net/reader034/viewer/2022050722/5acfea197f8b9ae2138d1516/html5/thumbnails/54.jpg)
Centricular Ltd
Meson ♥ Speed
Meson configuration is fast
Ninja is faster
![Page 55: Introduction to GStreamer - GStreamer: open source ...gmail.com Centricular Ltd GStreamer development, Windows Faster builds, all platforms Meson build system Centricular Ltd 40 years](https://reader034.vdocuments.net/reader034/viewer/2022050722/5acfea197f8b9ae2138d1516/html5/thumbnails/55.jpg)
Centricular Ltd
GStreamer ♥ Meson
We ported GStreamer to Meson
Can’t get any closer to ‘enjoyment’(when talking about build systems)
![Page 56: Introduction to GStreamer - GStreamer: open source ...gmail.com Centricular Ltd GStreamer development, Windows Faster builds, all platforms Meson build system Centricular Ltd 40 years](https://reader034.vdocuments.net/reader034/viewer/2022050722/5acfea197f8b9ae2138d1516/html5/thumbnails/56.jpg)
Centricular Ltd
GStreamer ♥ Meson
libffi, glib, orc, gstreamergst-plugins-base, gst-plugins-good
gst-plugins-bad, gst-plugins-ugly, gst-libavgst-python, gst-devtools, gst-editing-services
![Page 57: Introduction to GStreamer - GStreamer: open source ...gmail.com Centricular Ltd GStreamer development, Windows Faster builds, all platforms Meson build system Centricular Ltd 40 years](https://reader034.vdocuments.net/reader034/viewer/2022050722/5acfea197f8b9ae2138d1516/html5/thumbnails/57.jpg)
Centricular Ltd
GStreamer ♥ Meson
Everything builds faster!
No forking, no shell, no recursion
![Page 58: Introduction to GStreamer - GStreamer: open source ...gmail.com Centricular Ltd GStreamer development, Windows Faster builds, all platforms Meson build system Centricular Ltd 40 years](https://reader034.vdocuments.net/reader034/viewer/2022050722/5acfea197f8b9ae2138d1516/html5/thumbnails/58.jpg)
Centricular Ltd
Meson ♥ Speed
Autotools vs Meson — GCC on Linux 64-bit, i5×4
gstreamer.git: 32s + 92s = 124s (~2 min) 3s + 67s = 70s → 44% faster
![Page 59: Introduction to GStreamer - GStreamer: open source ...gmail.com Centricular Ltd GStreamer development, Windows Faster builds, all platforms Meson build system Centricular Ltd 40 years](https://reader034.vdocuments.net/reader034/viewer/2022050722/5acfea197f8b9ae2138d1516/html5/thumbnails/59.jpg)
Centricular Ltd
Meson ♥ Speed
Autotools vs Meson — GCC on Windows 64-bit, i5×4
gstreamer.git: 165s + 475s = 640s (>10 min) 5s + 55s = 60s → 1066% faster
![Page 60: Introduction to GStreamer - GStreamer: open source ...gmail.com Centricular Ltd GStreamer development, Windows Faster builds, all platforms Meson build system Centricular Ltd 40 years](https://reader034.vdocuments.net/reader034/viewer/2022050722/5acfea197f8b9ae2138d1516/html5/thumbnails/60.jpg)
Centricular Ltd
GStreamer ♥ Meson
Suddenly...
Building on Windows doesn’t take a day!
![Page 61: Introduction to GStreamer - GStreamer: open source ...gmail.com Centricular Ltd GStreamer development, Windows Faster builds, all platforms Meson build system Centricular Ltd 40 years](https://reader034.vdocuments.net/reader034/viewer/2022050722/5acfea197f8b9ae2138d1516/html5/thumbnails/61.jpg)
Centricular Ltd
GStreamer ♥ Meson
Suddenly...
Building on embedded devices doesn’t take 2 days!
![Page 62: Introduction to GStreamer - GStreamer: open source ...gmail.com Centricular Ltd GStreamer development, Windows Faster builds, all platforms Meson build system Centricular Ltd 40 years](https://reader034.vdocuments.net/reader034/viewer/2022050722/5acfea197f8b9ae2138d1516/html5/thumbnails/62.jpg)
Centricular Ltd
GStreamer ♥ Meson
New things are possible
Generate Visual Studio project files!
Visual Studio development
![Page 63: Introduction to GStreamer - GStreamer: open source ...gmail.com Centricular Ltd GStreamer development, Windows Faster builds, all platforms Meson build system Centricular Ltd 40 years](https://reader034.vdocuments.net/reader034/viewer/2022050722/5acfea197f8b9ae2138d1516/html5/thumbnails/63.jpg)
Centricular Ltd
GStreamer ♥ Meson
New things are possible
Debug with Visual Studio!
Full support for PDB debug symbols
![Page 64: Introduction to GStreamer - GStreamer: open source ...gmail.com Centricular Ltd GStreamer development, Windows Faster builds, all platforms Meson build system Centricular Ltd 40 years](https://reader034.vdocuments.net/reader034/viewer/2022050722/5acfea197f8b9ae2138d1516/html5/thumbnails/64.jpg)
Centricular Ltd
GStreamer ♥ Meson
Alternative/parallel build system for gstreamer
Available in GStreamer 1.10
More work to do on the port itself
![Page 65: Introduction to GStreamer - GStreamer: open source ...gmail.com Centricular Ltd GStreamer development, Windows Faster builds, all platforms Meson build system Centricular Ltd 40 years](https://reader034.vdocuments.net/reader034/viewer/2022050722/5acfea197f8b9ae2138d1516/html5/thumbnails/65.jpg)
Centricular Ltd
GStreamer ♥ Meson
Some projects have already moved to it
PiTiVi, gst-transcoder
![Page 66: Introduction to GStreamer - GStreamer: open source ...gmail.com Centricular Ltd GStreamer development, Windows Faster builds, all platforms Meson build system Centricular Ltd 40 years](https://reader034.vdocuments.net/reader034/viewer/2022050722/5acfea197f8b9ae2138d1516/html5/thumbnails/66.jpg)
Centricular Ltd
GStreamer ♥ Meson
Tim and Nirbheek
Linux support ✓Windows support ✓
![Page 67: Introduction to GStreamer - GStreamer: open source ...gmail.com Centricular Ltd GStreamer development, Windows Faster builds, all platforms Meson build system Centricular Ltd 40 years](https://reader034.vdocuments.net/reader034/viewer/2022050722/5acfea197f8b9ae2138d1516/html5/thumbnails/67.jpg)
Centricular Ltd
GStreamer ♥ Meson
Tim, Nirbheek, and you!
macOS support ᴡɪᴘ
iOS support ᴡɪᴘ
Android support ᴡɪᴘ
![Page 68: Introduction to GStreamer - GStreamer: open source ...gmail.com Centricular Ltd GStreamer development, Windows Faster builds, all platforms Meson build system Centricular Ltd 40 years](https://reader034.vdocuments.net/reader034/viewer/2022050722/5acfea197f8b9ae2138d1516/html5/thumbnails/68.jpg)
Centricular Ltd
The biggest reason we use Meson
![Page 69: Introduction to GStreamer - GStreamer: open source ...gmail.com Centricular Ltd GStreamer development, Windows Faster builds, all platforms Meson build system Centricular Ltd 40 years](https://reader034.vdocuments.net/reader034/viewer/2022050722/5acfea197f8b9ae2138d1516/html5/thumbnails/69.jpg)
Centricular Ltd
Meson ♥ GStreamer
Listens, understands, adapts
Bugs have always been welcome!
![Page 70: Introduction to GStreamer - GStreamer: open source ...gmail.com Centricular Ltd GStreamer development, Windows Faster builds, all platforms Meson build system Centricular Ltd 40 years](https://reader034.vdocuments.net/reader034/viewer/2022050722/5acfea197f8b9ae2138d1516/html5/thumbnails/70.jpg)
Centricular Ltd
Meson
Why do we use it? ✓
Why should you use it?
![Page 71: Introduction to GStreamer - GStreamer: open source ...gmail.com Centricular Ltd GStreamer development, Windows Faster builds, all platforms Meson build system Centricular Ltd 40 years](https://reader034.vdocuments.net/reader034/viewer/2022050722/5acfea197f8b9ae2138d1516/html5/thumbnails/71.jpg)
Centricular Ltd
Meson ♥ Usability
Readable build file syntax
Python-inspired
![Page 72: Introduction to GStreamer - GStreamer: open source ...gmail.com Centricular Ltd GStreamer development, Windows Faster builds, all platforms Meson build system Centricular Ltd 40 years](https://reader034.vdocuments.net/reader034/viewer/2022050722/5acfea197f8b9ae2138d1516/html5/thumbnails/72.jpg)
Centricular Ltd
project('myapp', 'c', version : '1.0')
mylib = library('mylib', 'the-lib.c',install : true,soversion : 1)
executable('myapp', 'the-app.c', install : true,
link_with : mylib,c_args : ['-DVER=' + meson.project_version()])
![Page 73: Introduction to GStreamer - GStreamer: open source ...gmail.com Centricular Ltd GStreamer development, Windows Faster builds, all platforms Meson build system Centricular Ltd 40 years](https://reader034.vdocuments.net/reader034/viewer/2022050722/5acfea197f8b9ae2138d1516/html5/thumbnails/73.jpg)
Centricular Ltd
...
cdata = configuration_data()cc = meson.get_compiler('c')
if cc.has_function('poll') cdata.set('HAVE_POLL', 1)endif
cdata.set('HAVE_TIME_H', cc.has_header('time.h'))
configure_file(output : 'config.h', configuration_data : cdata)
...
![Page 74: Introduction to GStreamer - GStreamer: open source ...gmail.com Centricular Ltd GStreamer development, Windows Faster builds, all platforms Meson build system Centricular Ltd 40 years](https://reader034.vdocuments.net/reader034/viewer/2022050722/5acfea197f8b9ae2138d1516/html5/thumbnails/74.jpg)
Centricular Ltd
meson --cross-info=info.txt
[host_machine]system = 'windows'cpu_family = 'x86'cpu = 'x86'endian = 'little'
[binaries]c = 'i686-w64-mingw32-gcc'cpp = 'i686-w64-mingw32-cpp'ar = 'i686-w64-mingw32-ar'strip = 'i686-w64-mingw32-strip'pkgconfig = 'pkg-config'exe_wrapper = 'wine'
[properties]c_link_args = ['-DWINVER=0x0501', '-D_WIN32_WINNT=0x0501']has_function_stpcpy = false
![Page 75: Introduction to GStreamer - GStreamer: open source ...gmail.com Centricular Ltd GStreamer development, Windows Faster builds, all platforms Meson build system Centricular Ltd 40 years](https://reader034.vdocuments.net/reader034/viewer/2022050722/5acfea197f8b9ae2138d1516/html5/thumbnails/75.jpg)
Centricular Ltd
Meson ♥ Usability
From configuration to building in one step
In Autotools terms, automake + autoconf in one go
![Page 76: Introduction to GStreamer - GStreamer: open source ...gmail.com Centricular Ltd GStreamer development, Windows Faster builds, all platforms Meson build system Centricular Ltd 40 years](https://reader034.vdocuments.net/reader034/viewer/2022050722/5acfea197f8b9ae2138d1516/html5/thumbnails/76.jpg)
Centricular Ltd
Meson ♥ Usability
Not Turing-complete
No macros, no function definitions, no infinite loops
![Page 77: Introduction to GStreamer - GStreamer: open source ...gmail.com Centricular Ltd GStreamer development, Windows Faster builds, all platforms Meson build system Centricular Ltd 40 years](https://reader034.vdocuments.net/reader034/viewer/2022050722/5acfea197f8b9ae2138d1516/html5/thumbnails/77.jpg)
Centricular Ltd
Meson ♥ Usability
Explicit, Forgiving, Extensible
99% of things work OOB, 1% are easy to fit
![Page 78: Introduction to GStreamer - GStreamer: open source ...gmail.com Centricular Ltd GStreamer development, Windows Faster builds, all platforms Meson build system Centricular Ltd 40 years](https://reader034.vdocuments.net/reader034/viewer/2022050722/5acfea197f8b9ae2138d1516/html5/thumbnails/78.jpg)
Centricular Ltd
Meson ♥ Usability
Explicit, Forgiving, Extensible
Not a static platform!
![Page 79: Introduction to GStreamer - GStreamer: open source ...gmail.com Centricular Ltd GStreamer development, Windows Faster builds, all platforms Meson build system Centricular Ltd 40 years](https://reader034.vdocuments.net/reader034/viewer/2022050722/5acfea197f8b9ae2138d1516/html5/thumbnails/79.jpg)
Centricular Ltd
Meson
We think it's the future
Try it out!
![Page 80: Introduction to GStreamer - GStreamer: open source ...gmail.com Centricular Ltd GStreamer development, Windows Faster builds, all platforms Meson build system Centricular Ltd 40 years](https://reader034.vdocuments.net/reader034/viewer/2022050722/5acfea197f8b9ae2138d1516/html5/thumbnails/80.jpg)
Centricular Ltd
Thanks for listening!
![Page 81: Introduction to GStreamer - GStreamer: open source ...gmail.com Centricular Ltd GStreamer development, Windows Faster builds, all platforms Meson build system Centricular Ltd 40 years](https://reader034.vdocuments.net/reader034/viewer/2022050722/5acfea197f8b9ae2138d1516/html5/thumbnails/81.jpg)
Centricular Ltd
Questions?