~/talk

Garbage collection free video pipelines with Kotlin and coroutines

Talkat droidcon EMEA 2020 · 2020-10-08..10-09· [android]
links:none on file
slides:none on file

Kotlin coroutines and small, allocation-free abstractions produce a live Android pipeline that captures Camera2 frames, rotates them with RenderScript rotation, converts encoder output from Annex‑B (start codes) to AVCC with a NAL inline mapper, packages into FLV tags and publishes over RTMP using librtmp via the NDK. A timestamp delegate enforces monotonically increasing timestamps (a bug where timestamps ran ~10x too fast crashed a partner transcoder). The GCroid streamer is deployed in a production app and successfully streams with near‑zero GC and predictable camera state via suspendable flows.

AI-written summary · about

  1. 0:00Introduction to mobile video streaming
  2. 1:58Understanding AAC audio format
  3. 3:00Deep dive into H.264 video format
  4. 9:41FLV container and RTMP basics
  5. 12:28Android video streaming pipeline
  6. 18:48Kotlin delegates and timestamps
  7. 23:02Inline functions for format conversion
  8. 27:42Augmenting bitstreams with SEI
  9. 31:34NDK and Java interop for RTMP
  10. 32:38Camera 2 API with coroutines
  11. 36:31Live demo and open source plans
  12. 37:15Q&A on streaming technologies
~/search
type to search 6,249 conferences, 138,987 speakers and 185,172 talks
~/help
cmdctrl k
search every conference, speaker and series
/
focus the filter search
h
home
c
conferences
s
speakers
e
series
t
light / dark — the status bar button does the same
?
this help
esc
close this, then clear every filter — or just the search, while you are typing in it

Ignored while you are typing. Pages without a filter rail have no search to focus.