
Common houses DataSource as an interface for reading data, but most of the concrete implementations are in ExoPlayer. This means that in practice, if an app wants to use a module that reads using DataSource (e.g. extractor), they may be forced to depend on ExoPlayer as well to get a concrete implementation (e.g. FileDataSource). This change moves the DataSource implementations into common to resolve this. PiperOrigin-RevId: 403222081
ExoPlayer library
The ExoPlayer library is split into multiple modules. See ExoPlayer's top level README for more information about the available library modules and how to use them.