Presentation for PESU Electronic City campus
This commit is contained in:
parent
60e65f42b7
commit
3c32cbc596
9 changed files with 117 additions and 0 deletions
11
pes-march-2024/Makefile
Normal file
11
pes-march-2024/Makefile
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
all:
|
||||||
|
make slide slideshow
|
||||||
|
|
||||||
|
slide:
|
||||||
|
pandoc -t beamer pes-march-2024.md -f markdown-implicit_figures -V colorlinks=true -V linkcolor=blue -V urlcolor=red -o pes-march-2024.pdf
|
||||||
|
|
||||||
|
slideshow:
|
||||||
|
pandoc -t beamer pes-march-2024.md -f markdown-implicit_figures -V colorlinks=true -V linkcolor=blue -V urlcolor=red -i -o pes-march-2024-slideshow.pdf
|
||||||
|
|
||||||
|
view:
|
||||||
|
zathura --mode=presentation pes-march-2024.pdf &
|
BIN
pes-march-2024/RGB-image-consisting-of-three-layers.png
Normal file
BIN
pes-march-2024/RGB-image-consisting-of-three-layers.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 13 KiB |
BIN
pes-march-2024/bunny.mp4
Normal file
BIN
pes-march-2024/bunny.mp4
Normal file
Binary file not shown.
BIN
pes-march-2024/pes-march-2024-slideshow.pdf
Normal file
BIN
pes-march-2024/pes-march-2024-slideshow.pdf
Normal file
Binary file not shown.
104
pes-march-2024/pes-march-2024.md
Normal file
104
pes-march-2024/pes-march-2024.md
Normal file
|
@ -0,0 +1,104 @@
|
||||||
|
---
|
||||||
|
title:
|
||||||
|
- A Day in the Life of a Media Plumber
|
||||||
|
author:
|
||||||
|
- Sanchayan Maity
|
||||||
|
theme:
|
||||||
|
- default
|
||||||
|
classoption:
|
||||||
|
- 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](https://asymptotic.io/)
|
||||||
|
* 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](https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests?scope=all&state=all&author_username=SanchayanMaity)
|
||||||
|
- [gst-plugins-rs](https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests?scope=all&state=all&author_username=SanchayanMaity)
|
||||||
|
- [PipeWire](https://gitlab.freedesktop.org/pipewire/pipewire/-/merge_requests?scope=all&state=all&author_username=SanchayanMaity)
|
||||||
|
- [PulseAudio](https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests?scope=all&state=all&author_username=SanchayanMaity)
|
||||||
|
- [Linux](https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/log/?qt=author&q=Sanchayan+Maity)
|
||||||
|
- [u-boot](https://source.denx.de/u-boot/u-boot/-/commits/master?search=Sanchayan%20Maity)
|
||||||
|
|
||||||
|
# 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
|
||||||
|
|
||||||
|
```bash
|
||||||
|
gst-launch-1.0 videotestsrc ! autovideosink
|
||||||
|
gst-launch-1.0 audiotestsrc ! autoaudiosink
|
||||||
|
```
|
||||||
|
|
||||||
|
# Media pipeline[^1]
|
||||||
|
|
||||||
|
![*_Simple Player_*](simple-player.png){width=80%}
|
||||||
|
|
||||||
|
[^1]: [Dynamic Pipelines](https://gstreamer.freedesktop.org/documentation/tutorials/basic/dynamic-pipelines.html?gi-language=c)
|
||||||
|
|
||||||
|
|
||||||
|
# Internals[^2]
|
||||||
|
|
||||||
|
![*_RGB_*](RGB-image-consisting-of-three-layers.png){width=60%}
|
||||||
|
|
||||||
|
[^2]: [Raw Video Media Types](https://gstreamer.freedesktop.org/documentation/additional/design/mediatype-video-raw.html?gi-language=c)
|
||||||
|
|
||||||
|
|
||||||
|
# Alpha compositing[^3]
|
||||||
|
|
||||||
|
- How does it look?
|
||||||
|
|
||||||
|
[^3]: [Alpha Compositing - Bartosz Ciechanowski](https://ciechanow.ski/alpha-compositing/)
|
||||||
|
|
||||||
|
|
||||||
|
# Demo
|
||||||
|
|
||||||
|
- Using Cairo[^4][^5]
|
||||||
|
|
||||||
|
[^4]: [GStreamer Cairo example](https://gitlab.freedesktop.org/gstreamer/gstreamer/-/blob/main/subprojects/gst-plugins-good/tests/examples/cairo/cairo_overlay.c?ref_type=heads)
|
||||||
|
[^5]: [GStreamer Cairo example project](https://git.sanchayanmaity.net/sanchayanmaity/cairo-overlay-example)
|
||||||
|
|
||||||
|
# Rounded corners
|
||||||
|
|
||||||
|
![*_Rounded Corners_*](roundedcorners.jpg){width=60%}
|
||||||
|
|
||||||
|
```bash
|
||||||
|
gst-launch-1.0 filesrc location=bunny.mp4 ! decodebin ! videoconvert !
|
||||||
|
roundedcorners border-radius-px=100 ! videoconvert ! gtksink
|
||||||
|
```
|
||||||
|
|
||||||
|
# Getting started
|
||||||
|
|
||||||
|
- [GStreamer Basic Tutorial](https://gstreamer.freedesktop.org/documentation/tutorials/basic/index.html?gi-language=c)
|
||||||
|
- [GStreamer Application Development](https://gstreamer.freedesktop.org/documentation/application-development/index.html?gi-language=c)
|
||||||
|
|
||||||
|
# Questions
|
||||||
|
|
||||||
|
- Reach out on
|
||||||
|
* Email: sanchayan@sanchayanmaity.net
|
||||||
|
* Mastodon: https://sanchayanmaity.com/@sanchayan
|
||||||
|
* Telegram: https://t.me/SanchayanMaity
|
||||||
|
* Blog: sanchayanmaity.net
|
BIN
pes-march-2024/pes-march-2024.pdf
Normal file
BIN
pes-march-2024/pes-march-2024.pdf
Normal file
Binary file not shown.
BIN
pes-march-2024/roundedcorners.jpg
Normal file
BIN
pes-march-2024/roundedcorners.jpg
Normal file
Binary file not shown.
After Width: | Height: | Size: 120 KiB |
2
pes-march-2024/roundedcorners.sh
Executable file
2
pes-march-2024/roundedcorners.sh
Executable file
|
@ -0,0 +1,2 @@
|
||||||
|
#!/bin/sh
|
||||||
|
GST_PLUGIN_PATH=~/GitSources/gst-plugins-rs/target/debug gst-launch-1.0 filesrc location=bunny.mp4 ! decodebin ! videoconvert ! video/x-raw,width=1280,height=720 ! roundedcorners border-radius-px="$1" ! videoconvert ! gtksink
|
BIN
pes-march-2024/simple-player.png
Normal file
BIN
pes-march-2024/simple-player.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 52 KiB |
Loading…
Reference in a new issue