~/talk

High Performance Audio

Talkat Google I/O 2013 · 2013-05-15..05-17· [android]
links:none on file
links:none on file
slides:none on file

Measured Android output latency falls from >100 ms (four 1,024-frame buffers → ~92 ms) down to sub-20 ms by changing buffer sizes, using an oscilloscope and LED/photodiode rig to timestamp audio vs light, and tracing with systrace. Fixes include using OpenSL ES callbacks, running audio on SCHED_FIFO within a cgroups 5% CPU budget, avoiding blocking calls (no sprintf/mutexes), single-reader single-writer ring buffers, matching native sample rate/buffer (44.1 vs 48 kHz, Nexus 4 native 48 kHz, 240-frame buffer) and thereby eliminating underruns and periodic 16-buffer glitches.

AI-written summary · about

  1. 0:00Introduction
  2. 1:19Glenn Kasten
  3. 3:06Introducing Rafe
  4. 4:08Project Butter
  5. 4:40Latency
  6. 5:55Measure Everything
  7. 7:07LED
  8. 8:39Unoptimized Audio Pipeline
  9. 9:10Why are the buffers so big
  10. 10:55Experiment
  11. 12:03Under Ends
  12. 14:14Data Collection
  13. 15:57Jitter
  14. 16:24Timing
  15. 17:53Nice Values
  16. 18:46Context Tracer
  17. 19:00The Smoking Gun
  18. 19:22Glenns Contacts
  19. 19:45Scheduling
  20. 20:08CPU Pi
  21. 20:32Timing Diagrams
  22. 20:48CFS
  23. 22:08SCHEDFIFO
  24. 22:51Dima
  25. 23:17Control Groups
  26. 23:34Fixed Priority
  27. 24:13Low Latency
  28. 24:40Jitter Reduction
  29. 25:08Audio Subsystem
  30. 25:36Fast Audio Path
  31. 26:12Fast Mixer
  32. 26:53Deep Buffer Path
  33. 27:40Latency Reduction
  34. 28:36Random Noise
  35. 29:17Buffer Size Sample Rate
  36. 30:13Audible Glitch
  37. 31:32Audio Playback
  38. 32:11High Priority
  39. 33:13systrace
  40. 33:53glitch
  41. 34:16UI thread
  42. 34:57Priority inversion
  43. 35:41Sprintf
  44. 36:06Nonblocking techniques
  45. 36:18Singlewriter ring buffers
  46. 36:40Using ring buffers
  47. 37:16Results
  48. 38:15Kick 7F
  49. 38:51Hardware partners
  50. 39:17Website
~/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.