media/libraries
tonihei 96dd0ae583 Add consistency check to sending and receiving position updates
The periodic updates are only meant to happen while we are in the
same period or ad. This was already guaranteed except for two cases:
1. The Player in a session has updated its state without yet calling
   its listeners
2. The session scheduled a PlayerInfo update that hasn't been sent yet

... and in both cases, the following happened:
 - The change updated the mediaItemIndex to an index that didn't exist
   in a previous Timeline known to the Controller
 - One of the period position updates happened to be sent at exactly
   this time

This problem can be avoided by only scheduling the update if we are
still in the same period/ad and haven't scheduled a normal PlayerInfo
update already.

Since new MediaControllers may still connect to old sessons with this
bug, we need an equivalent change on the controller side to ignore such
buggy updates.

PiperOrigin-RevId: 532089328
2023-05-16 09:48:50 +01:00
..
cast Add Builder for DeviceInfo 2023-04-24 11:33:13 +01:00
common media3: Capitalize "MIME" for MIME types. 2023-05-11 10:05:01 +00:00
container Add container module 2023-05-15 10:37:30 +01:00
database Fix javadoc links in media README files 2023-03-30 17:26:40 +00:00
datasource Remove two deprecated SimpleCache constructors 2023-05-16 09:41:12 +01:00
datasource_cronet Update dependencies to latest versions 2023-04-26 15:49:57 +01:00
datasource_okhttp Fix javadoc links in media README files 2023-03-30 17:26:40 +00:00
datasource_rtmp Fix javadoc links in media README files 2023-03-30 17:26:40 +00:00
decoder Update dependencies to latest versions 2023-04-26 15:49:57 +01:00
decoder_av1 Remove Javadoc TODO from README of decoder extensions 2023-04-05 15:48:58 +01:00
decoder_ffmpeg Remove Javadoc TODO from README of decoder extensions 2023-04-05 15:48:58 +01:00
decoder_flac Update dependencies to latest versions 2023-04-26 15:49:57 +01:00
decoder_opus Update dependencies to latest versions 2023-04-26 15:49:57 +01:00
decoder_vp9 Update dependencies to latest versions 2023-04-26 15:49:57 +01:00
effect Fix lost shader input capacity after end-of-stream 2023-05-16 09:47:45 +01:00
exoplayer Delete deprecated zero-arg DefaultBandwidthMeter constructor 2023-05-16 09:46:43 +01:00
exoplayer_dash Ensure DrmSessionManager.setPlayer() is called before prepare() 2023-04-24 11:40:19 +01:00
exoplayer_hls media3: Capitalize "MIME" for MIME types. 2023-05-11 10:05:01 +00:00
exoplayer_ima Downgrade IMA SDK to 3.29.0 2023-05-05 16:53:06 +00:00
exoplayer_rtsp Handle seek after playback ends 2023-04-17 17:14:21 +01:00
exoplayer_smoothstreaming Ensure DrmSessionManager.setPlayer() is called before prepare() 2023-04-24 11:40:19 +01:00
exoplayer_workmanager Update dependencies to latest versions 2023-04-26 15:49:57 +01:00
extractor media3: Capitalize "MIME" for MIME types. 2023-05-11 10:05:01 +00:00
muxer Add test file with metadata track 2023-05-15 10:36:17 +01:00
session Add consistency check to sending and receiving position updates 2023-05-16 09:48:50 +01:00
test_data Add test file with metadata track 2023-05-15 10:36:17 +01:00
test_exoplayer_playback Update dependencies to latest versions 2023-04-26 15:49:57 +01:00
test_session_common Add MediaSession.setSessionActivity(PendingIntent) 2023-05-11 09:52:04 +00:00
test_session_current Add consistency check to sending and receiving position updates 2023-05-16 09:48:50 +01:00
test_utils Test: Relax constraints on selected Sony devices. 2023-05-12 10:12:37 +01:00
test_utils_robolectric End-to-end Robolectric playback test for audio capabilities 2023-05-12 10:06:47 +01:00
transformer Refactor SequenceAssetLoader release 2023-05-16 09:43:36 +01:00
ui Rollback of 509830f38f 2023-05-15 10:41:58 +01:00
ui_leanback Use Util method for common UI play/pause button logic. 2023-04-26 15:52:50 +01:00