mirror of
https://github.com/androidx/media.git
synced 2025-05-12 10:09:55 +08:00

Instead of using a long frameDurationUs with Math.floor, use a double frameDurationUs with Math.round, Before, playing an image with 30 fps over 1 second would result in the final timestamp not being aligned to the expected 1 second timestamp. Over long periods of time, this can lead to significant timestamp drift. Additionally, for TimestampWrapper and constrained multi-asset, where TimestampWrapper begins the 2nd effect on the 2nd asset's startTimeUs, this floor() behavior can lead to the first few frames of the 2nd asset using the first asset's effects, due to timestamps being mismatched. PiperOrigin-RevId: 516529240
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.