flowchart TB
subgraph App
UI[UI]
Video[Video Player]
end
subgraph Frameworks
WMS[WMS]
DM[DisplayManager]
SC[SurfaceControl]
CH[Choreographer]
end
subgraph Media
MC[MediaCodec or Codec2]
EX[Extractor]
end
subgraph Graphics
BQ[BufferQueue]
SF[SurfaceFlinger]
RE[RenderEngine GLES SkiaGL Vulkan]
end
subgraph HAL
HWC[HWC]
GR[Gralloc]
end
subgraph Kernel
DRM[DRM KMS]
GPU[GPU Driver]
end
subgraph HW
Panel[Panel]
end
UI --> SC
Video --> MC
EX --> MC
MC --> BQ
SC --> SF
BQ --> SF
SF --> RE
RE --> HWC
SF --> HWC
GR --> BQ
HWC --> DRM
GPU --> DRM
DRM --> Panel
CH -. Vsync control .-> UI
DM -. display config .-> SF
WMS -. window management .-> SC