Frame cache compensates for the fluctuation in frame processing times. Imagine a frame takes 10ms to process, and the interval between two frames is 33ms. The third frame took 40ms to process. If we don't have frame cache: - Process frame 1, ready after 10ms, starts playback, now t=0 ms - Start processing frame 2, ready at t=10ms, - Release frame 2 at t=33ms - We start processing the third frame at t=33ms - The third frame is due presentation at t=66ms - But frame 3 is available at t=73ms, late If we have a frame cache of say 3 frams, - Process frame 1, ready after 10ms, starts playback, now t=0 ms - Start processing frame 2, ready at t=10ms - Start processing frame 3, ready at t=50ms - Release frame 2 at t=33ms - Start frame 4, ready at t=60ms - Frame 3 is due presentation at t=66ms - Frame 3 isn't late PiperOrigin-RevId: 501869948
| Name |
Last commit
|
Last Update |
|---|---|---|
| .. | ||
| cast | Loading commit data... | |
| common | Loading commit data... | |
| database | Loading commit data... | |
| datasource | Loading commit data... | |
| datasource_cronet | Loading commit data... | |
| datasource_okhttp | Loading commit data... | |
| datasource_rtmp | Loading commit data... | |
| decoder | Loading commit data... | |
| decoder_av1 | Loading commit data... | |
| decoder_ffmpeg | Loading commit data... | |
| decoder_flac | Loading commit data... | |
| decoder_opus | Loading commit data... | |
| decoder_vp9 | Loading commit data... | |
| effect | Loading commit data... | |
| exoplayer | Loading commit data... | |
| exoplayer_dash | Loading commit data... | |
| exoplayer_hls | Loading commit data... | |
| exoplayer_ima | Loading commit data... | |
| exoplayer_rtsp | Loading commit data... | |
| exoplayer_smoothstreaming | Loading commit data... | |
| exoplayer_workmanager | Loading commit data... | |
| extractor | Loading commit data... | |
| session | Loading commit data... | |
| test_data | Loading commit data... | |
| test_exoplayer_playback | Loading commit data... | |
| test_session_common | Loading commit data... | |
| test_session_current | Loading commit data... | |
| test_utils | Loading commit data... | |
| test_utils_robolectric | Loading commit data... | |
| transformer | Loading commit data... | |
| ui | Loading commit data... | |
| ui_leanback | Loading commit data... |