media/libraries
christosts 58a977e0c0 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 ab7e84fb34)
2023-02-28 17:56:21 +00:00
..
cast Map PLAYER_STATE_LOADING to STATE_BUFFERING 2023-02-28 17:56:21 +00:00
common Document spatialization behavior constants. 2023-02-28 17:55:44 +00:00
database Add javadoc links to README files 2023-01-25 18:01:21 +00:00
datasource Merge pull request #10959 from balachandarlinks:handle-sql-exception-in-cached-content-index 2023-02-28 17:55:44 +00:00
datasource_cronet Add javadoc links to README files 2023-01-25 18:01:21 +00:00
datasource_okhttp Add javadoc links to README files 2023-01-25 18:01:21 +00:00
datasource_rtmp Add javadoc links to README files 2023-01-25 18:01:21 +00:00
decoder Add javadoc links to README files 2023-01-25 18:01:21 +00:00
decoder_av1 Add javadoc links to README files 2023-01-25 18:01:21 +00:00
decoder_ffmpeg Add javadoc links to README files 2023-01-25 18:01:21 +00:00
decoder_flac Add javadoc links to README files 2023-01-25 18:01:21 +00:00
decoder_opus Add javadoc links to README files 2023-01-25 18:01:21 +00:00
decoder_vp9 Add javadoc links to README files 2023-01-25 18:01:21 +00:00
effect Add javadoc links to README files 2023-01-25 18:01:21 +00:00
exoplayer Skip rendering multiple frames on the same vsync 2023-02-28 17:56:21 +00:00
exoplayer_dash Merge pull request #248 from lemondoglol:update-segment-size 2023-02-28 17:55:44 +00:00
exoplayer_hls Merge pull request #248 from lemondoglol:update-segment-size 2023-02-28 17:55:44 +00:00
exoplayer_ima Add ad event listeners in the Looper event of the ad manager callback 2023-02-28 17:55:45 +00:00
exoplayer_rtsp Catch IllegalArgumentExceptions in RTSP Response parsing 2023-02-28 17:56:16 +00:00
exoplayer_smoothstreaming Merge pull request #248 from lemondoglol:update-segment-size 2023-02-28 17:55:44 +00:00
exoplayer_workmanager Add javadoc links to README files 2023-01-25 18:01:21 +00:00
extractor Fix timestamp comparison for seeks in fMP4 2023-02-02 13:22:33 +00:00
session Fix error in documentation string 2023-02-28 17:56:21 +00:00
test_data Merge pull request #10793 from fraunhoferfokus:dash-thumbnail-support 2023-02-02 16:47:09 +00:00
test_exoplayer_playback Fix instrumentation tests not working via Gradle 2022-09-20 15:25:38 +00:00
test_session_common Do not assume a valid queue in 3rd party sessions 2023-02-02 13:22:38 +00:00
test_session_current Session: advertise legacy FLAG_HANDLES_QUEUE_COMMANDS 2023-02-02 16:47:10 +00:00
test_utils Forward seek command details to seekTo method in BasePlayer 2023-01-25 18:17:15 +00:00
test_utils_robolectric Remove debug timeout multiplier. 2023-01-25 18:17:14 +00:00
transformer Add javadoc links to README files 2023-01-25 18:01:21 +00:00
ui Tweak UI behavior when commands are missing. 2023-02-02 13:18:29 +00:00
ui_leanback Fix (another) LeanbackPlayerAdapter param name mismatch 2023-02-02 13:22:39 +00:00