media/libraries
tianyifeng 737fdd8693 Deflake the DefaultPreloadManagerTest
From [ the last change in `DefaultPreloadManagerTest`](2b54b1ebbe), the preloadManager began to use a separate `preloadThread` in `release_returnZeroCount_sourcesAndRendererCapabilitiesListReleased`, which unveils a bug in `PreloadMediaSource`. When `PreloadMediaSource.releasePreloadMediaSource` is called, `preloadHandler` will post a `Runnable` on the preload looper to release the internal resources. Before this `Runnable` is executed, it is possible that the [`stopPreloading`](https://github.com/androidx/media/blob/main/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/source/preload/PreloadMediaSource.java#L442) method is executed just as the result of preloading has completed. This is expected to remove the posted `Runnable`s for further preloading, however, the posted `Runnable` for releasing will also be removed from the message queue.

Ideally we should use `postDelayed(runnable, token, delayMillis)` to post the runnables so that the token will be useful to identify which messages to remove in `removeCallbacksAndMessages(token)`, but that `postDelayed` method is only available from API 28. So in this change we are using a separate handler for releasing, and then the call of `preloadHandler.removeCallbacksAndMessages` won't impact the runnable for releasing.

#cherrypick

PiperOrigin-RevId: 696894483
(cherry picked from commit 0143884cd7)
2024-11-19 11:11:51 +00:00
..
cast Remove @DoNotInline annotations 2024-09-18 04:47:39 -07:00
common Merge pull request #1265 from DolbyLaboratories:dlb/ac4-level4/dev_new2 2024-11-19 11:04:53 +00:00
common_ktx Add jvmTarget and kotlin-android plugin to common_ktx module 2024-08-15 10:36:10 -07:00
container Re-define 'max size' of SEI queue to operate on unique timestamps 2024-11-19 11:04:52 +00:00
database Do not trim audio samples by changing their timestamp 2023-06-29 22:50:04 +00:00
datasource DataSourceContractTest: Tighten assertions around 'not found' URIs 2024-11-05 13:09:10 +00:00
datasource_cronet DataSourceContractTest: Tighten assertions around 'not found' URIs 2024-11-05 13:09:10 +00:00
datasource_okhttp DataSourceContractTest: Tighten assertions around 'not found' URIs 2024-11-05 13:09:10 +00:00
datasource_rtmp Remove exoplayer2-only javadoc machinery from media3 2023-06-05 09:47:58 +00:00
decoder MediaCodecVideoRenderer skips decoder inputs unused as reference 2024-07-09 03:43:06 -07:00
decoder_av1 Add missing DefaultRenderersFactoryTest for decoder extensions 2024-11-05 13:10:08 +00:00
decoder_ffmpeg Add 16 KB page support for decoder extensions on Android 15 2024-10-10 10:18:20 -07:00
decoder_flac Re-enable disabled tests in FlacExtractorSeekTest 2024-10-11 04:38:25 -07:00
decoder_iamf Add missing DefaultRenderersFactoryTest for decoder extensions 2024-11-05 13:10:08 +00:00
decoder_midi Add missing DefaultRenderersFactoryTest for decoder extensions 2024-11-05 13:10:08 +00:00
decoder_opus Refactor OpusDecoderTest to use OpusLibrary.isAvailable() 2024-10-31 14:41:24 +00:00
decoder_vp9 Add 16 KB page support for decoder extensions on Android 15 2024-10-10 10:18:20 -07:00
effect Make VideoGraph and VideoFrameProcessor listener methods optional 2024-10-17 02:38:03 -07:00
exoplayer Deflake the DefaultPreloadManagerTest 2024-11-19 11:11:51 +00:00
exoplayer_dash Release the Surface at the end of every playback test 2024-11-05 12:07:17 +00:00
exoplayer_hls Release the Surface at the end of every playback test 2024-11-05 12:07:17 +00:00
exoplayer_ima Account for missing preroll when converting adPodIndex to adGroupIndex 2024-10-04 08:11:04 -07:00
exoplayer_rtsp Merge pull request #1225 from Kekelic:support-for-parsing-rtsp-packets-with-header-extension 2024-11-05 13:10:08 +00:00
exoplayer_smoothstreaming Formatting and javadoc 2024-10-09 13:50:30 +01:00
exoplayer_workmanager Remove exoplayer2-only javadoc machinery from media3 2023-06-05 09:47:58 +00:00
extractor Don't assume MP4 keyframe metadata is correct for CEA re-ordering 2024-11-19 11:04:53 +00:00
muxer Fix color info conversion in vpccBox method 2024-11-19 11:04:52 +00:00
session Removed unused constructor 2024-11-05 12:13:17 +00:00
test_data Merge pull request #1265 from DolbyLaboratories:dlb/ac4-level4/dev_new2 2024-11-19 11:04:53 +00:00
test_exoplayer_playback Revert erroneous changes 2024-07-24 16:17:02 +01:00
test_session_common Add media button preferences 2024-10-17 09:54:36 -07:00
test_session_current Fix supportedCommands in MediaMetadata 2024-11-19 11:04:52 +00:00
test_utils DataSourceContractTest: Tighten assertions around 'not found' URIs 2024-11-05 13:09:10 +00:00
test_utils_robolectric Bump minSdk to 21 and remove resulting simple dead code 2024-07-12 08:11:01 -07:00
transformer Remove deprecated DefaultEncoderFactory constructors. 2024-10-17 01:53:23 -07:00
ui Align spelling of fullScreen to fullscreen 2024-11-05 12:13:16 +00: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