media/libraries
tonihei c64d9fd6da Fix race condition in clipped sample streams
The streams return end-of-input if they read no samples, but know that
they are fully buffered to at least the clipped end time. This helps to
detect the end of stream even if there are no new buffers after the end
of the clip (e.g. for sparse metadata tracks).

The race condition occurs because the buffered position is evaluated
after reading the sample. So between reading "no sample" and checking
the buffered position, the source may have loaded arbitrary amounts
of data. This may lead to a situation where the source has not read
all samples, reads NOTHING_READ (because the queue is empty) and then
immediately returns end-of-stream (because the buffered position
jumped forward), causing all remaining samples in the stream to be
skipped. This can fixed by moving the buffered position check to
before reading the sample, so that it never exceeds the buffered
position at the time of reading "no sample".

#minor-release

PiperOrigin-RevId: 548646464
2023-07-20 10:10:00 +01:00
..
cast Do not trim audio samples by changing their timestamp 2023-06-29 22:50:04 +00:00
common Compositor: Use timestamps to release frames. 2023-07-20 10:04:55 +01:00
container Do not trim audio samples by changing their timestamp 2023-06-29 22:50:04 +00:00
database Do not trim audio samples by changing their timestamp 2023-06-29 22:50:04 +00:00
datasource Remove unnecessary final on DefaultHttpDataSource.Factory method 2023-06-29 23:09:14 +00:00
datasource_cronet Do not trim audio samples by changing their timestamp 2023-06-29 22:50:04 +00:00
datasource_okhttp Remove exoplayer2-only javadoc machinery from media3 2023-06-05 09:47:58 +00:00
datasource_rtmp Remove exoplayer2-only javadoc machinery from media3 2023-06-05 09:47:58 +00:00
decoder Do not trim audio samples by changing their timestamp 2023-06-29 22:50:04 +00:00
decoder_av1 Do not trim audio samples by changing their timestamp 2023-06-29 22:50:04 +00:00
decoder_ffmpeg Do not trim audio samples by changing their timestamp 2023-06-29 22:50:04 +00:00
decoder_flac Add more data to e2etest dumps 2023-07-13 15:33:33 +01:00
decoder_midi Do not trim audio samples by changing their timestamp 2023-06-29 22:50:04 +00:00
decoder_opus Do not trim audio samples by changing their timestamp 2023-06-29 22:50:04 +00:00
decoder_vp9 Do not trim audio samples by changing their timestamp 2023-06-29 22:50:04 +00:00
effect Compositor: Use timestamps to release frames. 2023-07-20 10:04:55 +01:00
exoplayer Fix race condition in clipped sample streams 2023-07-20 10:10:00 +01:00
exoplayer_dash Replace Dummy with Placeholder 2023-07-14 10:17:05 +01:00
exoplayer_hls Add fields streaming format(sf), stream type(st) and version(v) 2023-07-13 15:50:16 +01:00
exoplayer_ima Make MediaItems updateable 2023-07-13 15:26:30 +01:00
exoplayer_rtsp Make MediaItems updateable 2023-07-13 15:26:30 +01:00
exoplayer_smoothstreaming Add tests for DefaultSsChunkSource 2023-07-20 09:55:16 +01:00
exoplayer_workmanager Remove exoplayer2-only javadoc machinery from media3 2023-06-05 09:47:58 +00:00
extractor DefaultSubtitleParserFactory that creates supported SubtitleParsers 2023-07-20 10:07:16 +01:00
muxer Do not trim audio samples by changing their timestamp 2023-06-29 22:50:04 +00:00
session Avoid resetting suppression reason with play/pause on MediaController 2023-07-20 09:57:51 +01:00
test_data Fix TextOverlay's overlay width measuring strategy 2023-07-20 10:00:05 +01:00
test_exoplayer_playback Add android.namespace to all build.gradle files 2023-05-19 17:19:15 +01:00
test_session_common Add custom layout to the state of the MediaController 2023-07-13 15:47:50 +01:00
test_session_current Avoid resetting suppression reason with play/pause on MediaController 2023-07-20 09:57:51 +01:00
test_utils Test: Remove unused DecodeOneCacheFileFrame method. 2023-07-14 10:18:17 +01:00
test_utils_robolectric Set signal on renderer once it's allowed to render start of stream 2023-07-13 15:59:00 +01:00
transformer Compositor: Use timestamps to release frames. 2023-07-20 10:04:55 +01:00
ui Fix dependencies for UI module 2023-07-14 10:24:15 +01:00
ui_leanback Remove exoplayer2-only javadoc machinery from media3 2023-06-05 09:47:58 +00:00