media/libraries
ibaker d111976125 Change SubtitleParser interface to support incremental output
This change introduces two new types of method to `SubtitleParser`:
1. `parse()` methods that take a `Consumer<CuesWithTiming>` and return `void`
2. `parseToLegacySubtitle` method that returns `Subtitle`

(1) ensures that in the new 'parse before SampleQueue' world we can
write cues to the `SampleQueue` as soon as they're ready - this is
especially important when parsing monolithic text files, e.g. for a
whole movie.

(2) ensures that during the transition, the legacy 'parse after
SampleQueue' behaviour doesn't see any regressions in 'time to first
cue being shown'. Previously we had a single implementation to convert
from `List<CuesWithTiming>` to `Subtitle`, but this relies on the
complete list of cues being available, which can take a long time for
large files in some formats (with ExoPlayer's current parsing logic).
By allowing implementations to customise the way they create a
`Subtitle`, we can directly re-use the existing logic, so that the
'time to first cue being shown' should stay the same.

This change migrates all **usages** to the new methods, but doesn't
migrate any **implementations**. I will migrate the implementations in
follow-up CLs before deleting the old list-returning `parse()` methods.

PiperOrigin-RevId: 565057945
2023-09-13 08:33:29 -07:00
..
cast Do not trim audio samples by changing their timestamp 2023-06-29 22:50:04 +00:00
common Change SubtitleParser interface to support incremental output 2023-09-13 08:33:29 -07:00
container Remove duplication of various TestUtil methods 2023-08-31 08:23:33 -07: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 Compositor: Move input source javadoc to class-level. 2023-09-13 08:30:15 -07:00
exoplayer Change SubtitleParser interface to support incremental output 2023-09-13 08:33:29 -07:00
exoplayer_dash Add functionality to transmit CMCD data using query parameters 2023-08-31 02:11:12 -07:00
exoplayer_hls Add functionality to transmit CMCD data using query parameters 2023-08-31 02:11:12 -07:00
exoplayer_ima Add StreamEventListener for IMA SSAI source 2023-08-31 11:29:29 -07:00
exoplayer_rtsp Added condition to RtspMediaPeriod.isLoading to check RtspState 2023-08-30 06:29:53 -07:00
exoplayer_smoothstreaming Add functionality to transmit CMCD data using query parameters 2023-08-31 02:11:12 -07:00
exoplayer_workmanager Remove exoplayer2-only javadoc machinery from media3 2023-06-05 09:47:58 +00:00
extractor Change SubtitleParser interface to support incremental output 2023-09-13 08:33:29 -07:00
muxer Make sure the mdat box is not extended by more than 1 GB at a time. 2023-09-08 04:07:13 -07:00
session Use media button broadcast receiver above Android 31 2023-09-05 14:24:06 -07:00
test_data Add general-purpose overflow-resistant divide+multiply util method 2023-09-12 10:22:57 -07: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 Session tests: Log when no controllers are connected 2023-09-12 09:52:21 -07:00
test_utils Enable offload scheduling by default for audio-only offload playback 2023-09-13 06:46:50 -07:00
test_utils_robolectric Enable offload scheduling by default for audio-only offload playback 2023-09-13 06:46:50 -07:00
transformer Rollback of e2882c051b 2023-09-12 12:40:57 -07:00
ui Deprecate multi-window time bar mode 2023-09-08 04:46:43 -07:00
ui_leanback Prevent forwarding of zero video size to Leanback 2023-08-30 12:20:51 -07:00