presentations/pes-march-2024/pes-march-2024.md

3.4 KiB

title author theme classoption
A Day in the Life of a Media Plumber
Sanchayan Maity
default
aspectratio=169

Who

  • Who am I?
    • Embedded Systems background
    • Prefer C, Haskell and Rust
    • Organize and speak at Rust and Haskell meet-ups in Bangalore
  • Work?
    • Software Engineer @ asymptotic
    • Open source consulting firm based out of Bangalore and Toronto
    • Work on low level systems software centred around multimedia
    • GStreamer, PipeWire, PulseAudio
    • Language Polyglots

Open source contributions

GStreamer

  • Multiplatform Pipeline based multimedia framework
  • Bindings for various languages
  • Allows building complex media processing workflows
  • Some applications
    • PiTiVi (Video Editor)
    • amaroK, Banshee, Clementine (audio players)
    • Empathy (VOIP and video conferencing)
    • GstLAL (gravitational wave data analysis)
    • Rygel (DLNA streaming server and renderer)
    • Totem (movie player for the GNOME desktop)

Simple pipeline

gst-launch-1.0 videotestsrc ! autovideosink
gst-launch-1.0 audiotestsrc ! autoaudiosink

Media pipeline1

Simple Player{width=80%}

Internals2

RGB{width=60%}

Alpha compositing3

  • How does it look?

Demo

  • Using Cairo45

Rounded corners

Rounded Corners{width=60%}

gst-launch-1.0 filesrc location=bunny.mp4 ! decodebin ! videoconvert !
roundedcorners border-radius-px=100 ! videoconvert ! gtksink

Getting started

Questions