State of the GStreamer Project Jan Schmidt Centricular Ltd - - PowerPoint PPT Presentation

state of the gstreamer project jan schmidt
SMART_READER_LITE
LIVE PREVIEW

State of the GStreamer Project Jan Schmidt Centricular Ltd - - PowerPoint PPT Presentation

State of the GStreamer Project Jan Schmidt Centricular Ltd jan@centricular.com Who am I? GStreamer developer since 2003 Director & Engineer with Centricular Ltd Introduction I work here for Introduction Which is here Introduction


slide-1
SLIDE 1

State of the GStreamer Project Jan Schmidt

Centricular Ltd jan@centricular.com

slide-2
SLIDE 2

Who am I?

GStreamer developer since 2003 Director & Engineer with Centricular Ltd

slide-3
SLIDE 3

Introduction

I work here for

slide-4
SLIDE 4

Introduction

Which is here

slide-5
SLIDE 5

Introduction

some chickens, cats, fruit trees...

With some of these

slide-6
SLIDE 6

GStreamer

  • Pipeline-based multimedia framework
  • Basic building blocks – elements, connected

through pads

  • filesrc location=test.mp3 ! decodebin ! pulsesink
slide-7
SLIDE 7

Overview

  • Open Source
  • Cross-platform

– Linux, embedded Linux, Windows, OSX, iOS,

Android, …

– x86, ARM, PowerPC, SPARC, …

  • Stable GObject based C API/ABI
  • Bindings for many languages

– Python, C++, JavaScript, .NET, …

slide-8
SLIDE 8

Overview

  • Not a media player or playback library
  • Not a codec and protocol library
  • Not a transcoding tool
  • Not a streaming server
  • But can be (and is) used to implement all that
slide-9
SLIDE 9

Overview

  • Goals

– Flexible and extensible design – Easy to integrate with other software

(in both directions)

  • Large, active developer and user community
  • Ecosystem of companies providing services

around GStreamer and companies building their

  • wn products and services on top of GStreamer
slide-10
SLIDE 10

GStreamer Applications

  • Media players
  • Audio/video editors, music composers
  • VOIP/video communication
  • Web browsers
  • Transcoders
  • Streaming servers and clients
  • … and many more
slide-11
SLIDE 11

A Brief History

0.0.1 – 10th Jun 1999 0.1.0 – 11th Jan 2001 0.2.0 – 7th Jun 2001 0.3.0 – 12th Dec 2001 0.4.0 – 5th Jul 2002 0.6.0 – 1st Feb 2003

  • GNOME 2 integration

0.8.0 – 16th Mar 2004 0.10.0 – 5th Dec 2005

  • Stable API guarantees

1.0.0 – 24 Sep 2012

  • First API/ABI break since 2005

1.2.0 – 24 Sep 2013 1.4.0 – 19 Jul 2014

Currently 1.5 – 2 million lines of code

slide-12
SLIDE 12

GStreamer 1.0

  • Released in 2012
  • First ABI/API break since 0.10 in 2005
  • New versioning scheme
  • Large changes to internals
  • Relatively small porting effort for apps
slide-13
SLIDE 13

Measuring Project Health

  • Number of commits/month
slide-14
SLIDE 14

Measuring Project Health

  • Lines of code/month
slide-15
SLIDE 15

Measuring Project Health

  • Number of authors/month
slide-16
SLIDE 16

Measuring Project Health

  • Commit size (lines/commit)
slide-17
SLIDE 17

Conclusions

  • Bugzilla stats would be interesting
  • Things have slowed down since 1.0
  • Less work, easier work, or just works?
slide-18
SLIDE 18

Recent Developments

  • OpenWebRTC

– Open Source WebRTC implementation from

Ericsson Labs

  • OpenGL integration

– Integrated support for GPU processing operations

  • Improving hardware resource usage

– Better support for on-chip function units – Hardware decoders and encoders

slide-19
SLIDE 19

Demo

slide-20
SLIDE 20

Recent Developments

  • TVs – LG and Samsung

– LG took over WebOS from HP – Samsung hiring

  • HLS/DASH improvements

– Adaptive bitrate switching – Trick modes

  • RTSP retransmission

– Improves performance under packet loss

slide-21
SLIDE 21

Pitivi

  • Ongoing development to make Pitivi work well
  • http://fundraiser.pitivi.org/

– Raised 22,510 € to fund development so far

  • Driving some great development upstream

– GstAggregator – gst-validate – gst-editing-services

slide-22
SLIDE 22

Meanwhile, on the mailing list

  • “Hi! Over the last few months I've been working
  • n a project for the European Space Agency

that is scheduled to be launched next year for use on the International Space Station, providing astronauts with a mobile procedure viewer in the form of a slightly modified Nexus 5 smartphone."

  • Scheduled to go up in Q1/2015, I believe
slide-23
SLIDE 23

More...

  • Network clock improvements

– More stable & accurate – Ongoing

slide-24
SLIDE 24

3D Movies

  • Stereoscopic 3D video support

– In progress

CC-by-nc-sa https://www.flickr.com/photos/louiswu/15394664278/in/set-72157648810821396/

slide-25
SLIDE 25

Demo

slide-26
SLIDE 26

More...

  • New Device Probing API

– Easier discovery of camera and audio devices – Demo

  • Higher level APIs

– GstPlayer API

slide-27
SLIDE 27

Better Debugging

  • Quality Assurance and tools

– Continuous Integration – New tracing subsystem – gst-debug-viewer – gst-validate & GstHarness

  • gst-devtools repository
slide-28
SLIDE 28

Work in Progress

  • Bug-fixing/Maintenance
  • New codecs/formats
  • KLV
  • DVB/MPEG-TS improvements
  • Improving Wayland support
  • V4l2 encoder/decoder support
  • Better live mixing
slide-29
SLIDE 29

Getting Involved

  • IRC - #gstreamer on freenode
  • Mailing Lists – gstreamer-devel on

http://lists.freedesktop.org/

  • Bugzilla – http://bugzilla.gnome.org &

http://gstreamer.freedesktop.org/bugs

slide-30
SLIDE 30

Questions? Questions?