media/library/core/src
christosts 5f91e45f3c Skip rendering multiple frames on the same vsync
When rendering frames at a rate higher than the screen refresh rate,
e.g. playing at 8x, the player is releasing multiple frames at the same
release time (nanos) which are then dropped by the platform. The output
buffers are available later and as a result MediaCodec cannot keep up
decoding fast enough.

This change skips releasing multiple video frames on the same vsync
period and proactivelly drops the frame. The frame is counted as skipped
rather than dropped to differentiate with frames dropped due to slow
decoding.

PiperOrigin-RevId: 510964976
(cherry picked from commit cbb6878f9f)
2023-02-28 18:04:03 +00:00
..
androidTest Fix instrumentation tests not working via Gradle 2022-09-20 15:25:38 +00:00
main Skip rendering multiple frames on the same vsync 2023-02-28 18:04:03 +00:00
test AsynchronousMediaCodecAdapter: surface queueing errors sooner 2023-02-28 18:04:03 +00:00