media/libraries
christosts ab7e84fb34 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
2023-02-27 18:07:13 +00:00
..
cast Map PLAYER_STATE_LOADING to STATE_BUFFERING 2023-02-27 17:59:16 +00:00
common Effects: Update javadoc to link to method. 2023-02-17 11:44:05 +00:00
database Add javadoc links to README files 2022-12-12 11:19:23 +00:00
datasource Merge pull request #10959 from balachandarlinks:handle-sql-exception-in-cached-content-index 2023-02-14 14:24:36 +00:00
datasource_cronet Add javadoc links to README files 2022-12-12 11:19:23 +00:00
datasource_okhttp Add javadoc links to README files 2022-12-12 11:19:23 +00:00
datasource_rtmp Add javadoc links to README files 2022-12-12 11:19:23 +00:00
decoder Add javadoc links to README files 2022-12-12 11:19:23 +00:00
decoder_av1 Add javadoc links to README files 2022-12-12 11:19:23 +00:00
decoder_ffmpeg Add javadoc links to README files 2022-12-12 11:19:23 +00:00
decoder_flac Add javadoc links to README files 2022-12-12 11:19:23 +00:00
decoder_opus Add javadoc links to README files 2022-12-12 11:19:23 +00:00
decoder_vp9 Add javadoc links to README files 2022-12-12 11:19:23 +00:00
effect Effect: Rename to DefaultShaderProgram. 2023-02-27 18:03:38 +00:00
exoplayer Skip rendering multiple frames on the same vsync 2023-02-27 18:07:13 +00:00
exoplayer_dash Merge pull request #248 from lemondoglol:update-segment-size 2023-02-08 14:08:36 +00:00
exoplayer_hls Update SampleQueue.sourceId to be a long rather than an int. 2023-02-14 14:23:40 +00:00
exoplayer_ima Add ad event listeners in the Looper event of the ad manager callback 2023-02-13 12:26:04 +00:00
exoplayer_rtsp Catch IllegalArgumentExceptions in RTSP Response parsing 2023-02-13 14:18:53 +00:00
exoplayer_smoothstreaming Merge pull request #248 from lemondoglol:update-segment-size 2023-02-08 14:08:36 +00:00
exoplayer_workmanager Add javadoc links to README files 2022-12-12 11:19:23 +00:00
extractor Encapsulate Opus frames in Ogg during audio offload 2023-02-08 14:12:06 +00:00
session Fix error in documentation string 2023-02-17 11:55:35 +00:00
test_data Change DumpableBox to dump recursively 2023-02-27 17:56:22 +00:00
test_exoplayer_playback Fix instrumentation tests not working via Gradle 2022-09-30 18:03:11 +00:00
test_session_common Do not assume a valid queue in 3rd party sessions 2023-02-01 10:34:25 +00:00
test_session_current Session: advertise legacy FLAG_HANDLES_QUEUE_COMMANDS 2023-02-02 15:38:04 +00:00
test_utils fix nits and enhance DefaultVideoFrameProcessorImageFrameOutputTest 2023-02-27 18:01:00 +00:00
test_utils_robolectric Rollback of 7e63997459 2022-12-21 15:13:24 +00:00
transformer HDR: Remove comment explaining force sdr behavior with assetloaders. 2023-02-27 18:05:16 +00:00
ui Tweak UI behavior when commands are missing. 2023-02-01 10:22:15 +00:00
ui_leanback Fix (another) LeanbackPlayerAdapter param name mismatch 2023-02-01 10:41:50 +00:00