Skip to content
CAI
Produce a survey ↗Verify a survey

google/ExoPlayer

This system is a comprehensive media playback and processing library for Android, designed to handle a wide variety of audio, video, and container formats. It provides core playback capabilities including streaming, offline downloads, and ad insertion, while also supporting advanced features like video post-processing, 360-degree video stabilization, and hardware-accelerated decoding for codecs such as AV1, VP9, and Opus. The codebase has been significantly refactored to migrate from the legacy ExoPlayer API to the modern AndroidX Media3 namespace, emphasizing modularity, testability, and robust session management.

48.9

Weak · 6 August 2026

301k

lines of production code

Java

with JavaScript

5

bus factor · 390 authors in all

2

measurements over time

CAI band scale
CAI trend line

How it got here

2014–2016 · ExoPlayer V2 cleanup and Media3 migration

This period focused on stripping out legacy ExoPlayer V2 components, including the old chunk-based architecture, deprecated utilities, and Eclipse build files, while simultaneously introducing native C++ extensions for VP9, Opus, and FLAC. The work also involved migrating the codebase to the AndroidX Media3 namespace and updating the Gradle build system, signaling a transition toward a more modular and modern API structure.

38 changes

2017–2018 · ExoPlayer 2 refactoring and modularization

This period focused on a comprehensive architectural refactoring of the ExoPlayer 2 codebase, introducing new interfaces and base classes for core components like the player, audio, video, and DRM systems. The team also modularized the library by splitting out UI, HLS, and DASH support into separate artifacts, while simultaneously laying the groundwork for the eventual migration to AndroidX Media3.

41 changes

2019–2020 · Media3 migration and test coverage

This period focused on preparing the codebase for the androidx.media3 migration by deprecating legacy packages and introducing new utility classes and interfaces. Significant effort was dedicated to expanding unit and instrumentation test coverage across core components, extensions, and utility modules. Additionally, new features such as AV1 decoding, WorkManager integration, and GL demo applications were added.

38 changes

2021–2023 · Media3 migration and feature expansion

This period focused on expanding ExoPlayer's capabilities with new modules for RTSP playback, video effects, and MP4 muxing, while simultaneously introducing the foundational classes for the Media3 migration. The work also included significant additions of test coverage across these new and existing components to ensure stability.

30 changes

CAI lens gauges

Survey your own repository

google/ExoPlayer was measured the same way every project in this corpus was: the same rubric, at a pinned commit, with the result published in full. Point the surveyor at a repository you know and see whether you agree with it.

Survey a repository

About this page

  • The description of this project is derived from its own commit history, not from its README.
  • The score is its highest published measurement, taken on 6 August 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
  • Measured at commit dd430f7053 — the exact code this score is about.
  • Scored under rubric rubric-2026.08.19. Score the same commit under that rubric and you get the same number.
CAI link cards