mirror of
https://github.com/androidx/media.git
synced 2025-04-30 06:46:50 +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