media/libraries
claincly bef3d518d2 Revise seeking in ExternalTextureManager (ETM)
After this CL, DVFP waits for flushing until all frames registered previously
arrives.

Previously, ETM records the difference between the number of registered frames,
and the number of frames arrivd on the SurfaceTexture, when flushing. (Note
that ETM is flushed the last in the chain, as flushing is done backwards from
FinalShaderProgramWrapper). ETM then waits until the number of frames arrive
after flush.

The normal flow is, MediaCodecVideoRenderer (MCVR) registers a new decoded
frame, in `processOutputBuffer()` to DVFP, MCVR call `codec.releaseOutputBuffer()`
to have MediaCodec render the frame, and then the frame arrives in DVFP's ETM.

However there might be a discrepancy. When registering the frame, ETM records
the frame on the calling thread, ~instantly. Later when the rendered frame
arrive, ETM records a frame is available on the task executor thread (or
commonly known as the GL thread). More specifically, when a frame arrives
in `onFrameAvailableListener`, ETM posts all subsequent processing to
the task executor. When seeking, the task executor is flushed as the first
step. It might be a frame that has already arrived on ETM, and the processing
of such frame has already been queued into the task executor; only to be
flushed as a result of flushing the task executor. If this happens, the frame
is considered to be never have arrived. This causes a freeze on the app,
because ETM'll wait until this frame arrives to declare flushing has completed.

PiperOrigin-RevId: 631524332
2024-05-07 13:15:46 -07:00
..
cast Forward presumed no-op seeks to handler methods in (Simple)BasePlayer 2024-04-15 02:38:29 -07:00
common Disable enhanced Java 8 desugaring 2024-05-07 09:26:36 -07:00
container Add Mp4OrientationData class 2024-03-11 06:45:15 -07:00
database Do not trim audio samples by changing their timestamp 2023-06-29 22:50:04 +00:00
datasource Add IntDef for priority values 2024-04-29 08:14:20 -07:00
datasource_cronet Fix SocketTimeoutException in CronetDataSource. 2024-04-23 07:21:20 -07:00
datasource_okhttp Use Guava's toByteArray & fromByteArray methods where possible 2024-03-08 03:27:29 -08:00
datasource_rtmp Remove exoplayer2-only javadoc machinery from media3 2023-06-05 09:47:58 +00:00
decoder Don't enforce SimpleDecoder skipping for samples before start time 2024-05-01 06:42:36 -07:00
decoder_av1 Replace or suppress deprecated usages 2024-01-26 10:06:18 -08:00
decoder_ffmpeg Replace or suppress deprecated usages 2024-01-26 10:06:18 -08:00
decoder_flac Rollback of 8e2869278c 2024-02-15 02:35:12 -08:00
decoder_midi MidiExtractor: mark only the first sample as key-frame 2023-11-21 07:39:46 -08:00
decoder_opus Rollback of 8e2869278c 2024-02-15 02:35:12 -08:00
decoder_vp9 Rollback of 8e2869278c 2024-02-15 02:35:12 -08:00
effect Revise seeking in ExternalTextureManager (ETM) 2024-05-07 13:15:46 -07:00
exoplayer Fix ENCODING_DTS_UHD_P2 Issue 2024-05-07 12:05:37 +00:00
exoplayer_dash Additional clean-up and formatting 2024-03-25 15:02:31 +00:00
exoplayer_hls Refresh HlsMediaPlaylist with delivery directives when possible 2024-04-29 07:24:35 -07:00
exoplayer_ima Postpone AdTagLoader listener deregistration to receive final error 2024-05-02 08:19:04 -07:00
exoplayer_rtsp Allow empty information attributes in RTSP Session Description 2024-02-20 02:47:40 -08:00
exoplayer_smoothstreaming Removing id from Label and ensuring label/labels consistency in Format.Builder. 2024-03-25 12:00:14 +00:00
exoplayer_workmanager Remove exoplayer2-only javadoc machinery from media3 2023-06-05 09:47:58 +00:00
extractor Parse initialization data from AV1 tracks 2024-05-01 08:23:43 -07:00
muxer Allocate correct size for keys and ilst boxes in Mp4Muxer 2024-05-03 02:47:14 -07:00
session Handle displayTitle and title in legacy conversions 2024-05-06 04:21:19 -07:00
test_data Allow any pcm encoding raw input pre-effects in AudioGraphInput. 2024-05-07 06:39:09 -07:00
test_exoplayer_playback Rollback of 8e2869278c 2024-02-15 02:35:12 -08:00
test_session_common Remove unnecessary SDK_INT checks 2024-02-13 10:26:19 +00:00
test_session_current Upgrade Gradle and AGP 2024-05-07 04:20:55 -07:00
test_utils Run ExoPlayerTest with preloading enabled and disabled 2024-05-06 09:58:09 -07:00
test_utils_robolectric Add Dumper.addIfNonDefault methods 2024-04-26 09:00:44 -07:00
transformer Revise seeking in ExternalTextureManager (ETM) 2024-05-07 13:15:46 -07:00
ui Remove references to LegacyPlayerView 2024-04-09 04:12:42 -07:00
ui_leanback Bump effect and leanback minSdk to 19 2024-01-10 07:22:00 -08:00
lint.xml Update recommended way to suppress @UnstableApi errors in lint.xml 2023-11-15 02:34:40 -08:00