mozilla/gecko-dev
Media playback
Audio and video playback in Firefox spans multiple subsystems: HTMLMediaElement, MSE / EME, decoders (in the RDD process), graphics integration, and WebRTC.
Layers
graph TD
Element[HTMLMediaElement] --> Decoder[ChannelMediaDecoder<br/>or MediaSourceDecoder]
Decoder --> Reader[MediaFormatReader]
Reader --> RDD[RDD process<br/>platform decoders]
RDD --> Frames[Decoded frames]
Frames --> Sink[VideoSink / AudioSink]
Sink --> Compositor[GPU compositor for video]
Sink --> Audio[Cubeb audio backend]Directories
dom/media/— main implementation. Contains MediaSource, EME, WebRTC platform glue, MSE, and the demuxer/decoder framework.media/audioipc/— audio IPC (Rust).media/libcubeb/— vendored cubeb (cross-platform audio).media/libavif/,media/libdav1d/— AVIF / AV1.media/libopus/,media/libvorbis/,media/libtheora/,media/libvpx/— codec libraries.media/openmax_dl/— DSP primitives.media/webrtc/— WebRTC (libwebrtc fork).
EME
Encrypted Media Extensions (Widevine / PlayReady) are dispatched through the GMP (Gecko Media Plugin) process, an OOP host for closed-source CDM binaries. See dom/media/gmp/.
Related
Built by Factory AutoWiki from public repository content. It is a generated preview for codebase exploration, not source-maintained documentation.