media/libraries
ibaker 9533f5cd1c RtspMediaPeriod: Use a new ExtractorOutput for each SampleQueue
This removes concurrent access from `rtspLoaderWrappers`. Previously
there was a race between the playback thread clearing & re-adding
entries to this list in `retryWithRtpTcp()`, and the loading thread
accessing the entries in `InternalListener.track()` (implemented from
`ExtractorOutput`).

This change means each `ExtractorOutputImpl` uses exactly one
`SampleQueue` for its one `TrackOutput`. When the `RtspLoaderWrapper`
instances are replaced in `retryWithRtpTcp()`, any stale instances will
only be able to access their own (also stale) `SampleQueue` instances
(vs before, where the stale `ExtractorOutput` could accidentally access
'new' `SampleQueue` instances via the `rtspLoaderWrappers` field).

As well as fixing a race condition in the prod code, this also de-flakes
`RtspPlaybackTest`.

#minor-release

PiperOrigin-RevId: 559130479
2023-08-24 09:16:36 +01:00
..
cast Do not trim audio samples by changing their timestamp 2023-06-29 22:50:04 +00:00
common Replace Queue<Long> with a queue for long primitives 2023-08-24 09:14:44 +01:00
container Fix parsing of H.265 sequence parameter sets 2023-08-01 14:22:29 +01:00
database Do not trim audio samples by changing their timestamp 2023-06-29 22:50:04 +00:00
datasource Add nullness annotations to SimpleCache 2023-08-22 15:33:08 +01: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 Replace Queue<Long> with a queue for long primitives 2023-08-24 09:14:44 +01:00
exoplayer Replace Queue<Long> with a queue for long primitives 2023-08-24 09:14:44 +01:00
exoplayer_dash Add fields next object request (nor) and next range request (nrr) 2023-08-22 15:25:03 +01:00
exoplayer_hls Add fields next object request (nor) and next range request (nrr) 2023-08-22 15:25:03 +01:00
exoplayer_ima Some JavaDoc fixes in ImaServerSideAdInsertionMediaSource 2023-08-18 15:25:41 +01:00
exoplayer_rtsp RtspMediaPeriod: Use a new ExtractorOutput for each SampleQueue 2023-08-24 09:16:36 +01:00
exoplayer_smoothstreaming Add fields next object request (nor) and next range request (nrr) 2023-08-22 15:25:03 +01:00
exoplayer_workmanager Remove exoplayer2-only javadoc machinery from media3 2023-06-05 09:47:58 +00:00
extractor Update SsaParser logic to show it never returns duration=UNSET 2023-08-16 22:00:38 +01:00
muxer Only set hadKeyframe flag to true if we end up muxing the frame. 2023-08-10 12:00:51 +00:00
session Set notification foreground service behaviour starting with API 31 2023-08-18 15:09:59 +01:00
test_data Split dump file directories based on input file name. 2023-08-22 15:39:28 +01:00
test_exoplayer_playback Add android.namespace to all build.gradle files 2023-05-19 17:19:15 +01:00
test_session_common Show play button during playback suppression by default 2023-08-15 17:15:38 +01:00
test_session_current Split test_session_current instrumentation tests by file 2023-08-22 15:50:29 +01:00
test_utils Create Timestamp iterator 2023-08-22 15:27:42 +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 Add AudioGraph test verifying silence outputs correct amount of bytes. 2023-08-22 15:47:54 +01:00
ui Show play button during playback suppression by default 2023-08-15 17:15:38 +01:00
ui_leanback Remove exoplayer2-only javadoc machinery from media3 2023-06-05 09:47:58 +00:00