
There are two main changes that need to be made: 1. Whenever we determine the next ad to play, we need to select a server-side inserted ad even if it has been played already (because it's part of the stream). 2. When the Timeline is updated in the player, we need to avoid changes that would unnecessarily reset the renderers. Whenever a Timeline change replaces content with a server-side inserted ad at the same position we can just keep the existing MediaPeriod and also if the duration of the current MediaPeriod is reduced but it is followed by a MediaPeriod in the same SSAI stream, we can don't need to reset the renderers as we keep playing the same stream. PiperOrigin-RevId: 373745031
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.