media/libraries
bachinger 05e23996fa Split ad playback state and recalculate window and period duriations
This change enables the ImaServerSideAdInsertionMediaSource for multi-period content. The global ad playback state is split into pieces for each period and the window and period durations are calculated accordingly in the ServerSideAdInsertionTimeline.

For multi-period live content (DASH), the ad playback state is not set with this change. This is deferred to a follow up CL. Splitting is very tricky. For each timeline update the windowStartTimeUs may vary for some milliseconds relative to the start of the period.positionInWindowUs. This requires to either introduce some fuzzy logic or to choose a different approach than for multi-period VOD. Because mistakes within the playback states of subsequent moving live windows produces crashes, it seems sensible to defer this for now and keep this change in a separate future CL (unblock further work, easy to rollback).

In this state, live DASH stream are working and the ad overlay is placed over the player correctly bu the SDK. However, ads are not reported by the position discontinuity event. Similarly, the player.isPlayingAd() does never returns true when a ad period is playing.

PiperOrigin-RevId: 422539770
2022-01-25 18:48:11 +00:00
..
cast Include mediaId when marshalling a MediaItem to JSON 2022-01-11 13:29:06 +00:00
common Transformer GL: Clarify variables and comments. 2022-01-25 18:17:15 +00:00
database Update to androidx.media3 2021-10-27 09:12:46 +01:00
datasource Change DefaultHttpDataSourceTest to an instrumentation test 2022-01-05 10:00:46 +00:00
datasource_cronet Update dependency versions 2021-11-19 14:42:25 +00:00
datasource_okhttp Update to androidx.media3 2021-10-27 09:12:46 +01:00
datasource_rtmp Make package in test manifest consistent 2021-11-08 15:18:26 +00:00
decoder Make package in test manifest consistent 2021-11-08 15:18:26 +00:00
decoder_av1 Rename StyledPlayerView to PlayerView 2022-01-25 18:10:42 +00:00
decoder_ffmpeg Add a builder to DefaultAudioSink 2021-12-07 17:37:45 +00:00
decoder_flac Add a builder to DefaultAudioSink 2021-12-07 17:37:45 +00:00
decoder_opus Fix 1 ErrorProneStyle finding: 2022-01-05 12:15:12 +00:00
decoder_vp9 Rename StyledPlayerView to PlayerView 2022-01-25 18:10:42 +00:00
exoplayer Split ad playback state and recalculate window and period duriations 2022-01-25 18:48:11 +00:00
exoplayer_dash Inherit parent properties for manifests with dvb profile only 2022-01-25 18:23:20 +00:00
exoplayer_hls Disable live speed adjustment where it has no benefit 2022-01-25 18:04:02 +00:00
exoplayer_ima Add an anchor tag for the IMA compat URL in ImaAdsLoader javadoc 2022-01-25 18:31:42 +00:00
exoplayer_rtsp Use RTSP server for RTSP auth realm. 2022-01-11 13:32:41 +00:00
exoplayer_smoothstreaming Remove setTag from (Ss|Hls|Dash)MediaSource.Factory 2022-01-11 13:44:06 +00:00
exoplayer_workmanager Update to androidx.media3 2021-10-27 09:12:46 +01:00
extractor Parse CryptoInfo from simpleTag and set it into DrmInitData. 2022-01-05 12:15:27 +00:00
session Fix missing notification of session service release 2022-01-25 18:39:54 +00:00
test_data Transformer GL: Add pixel tests for transformation. 2022-01-25 18:43:11 +00:00
test_exoplayer_playback Migrate usages of deprecated MediaSourceFactory methods 2022-01-05 10:40:02 +00:00
test_session_common Fix flaky MediaBrowserListenerTest 2022-01-25 18:34:25 +00:00
test_session_current Fix flaky MediaBrowserListenerTest 2022-01-25 18:34:25 +00:00
test_utils Remove Transformer-specific things from MediaCodecAdapter. 2022-01-25 18:05:31 +00:00
test_utils_robolectric Migrate usages of Window-based Player methods 2021-11-09 10:07:30 +00:00
transformer Use encoder output format for configuring the Encoder. 2022-01-25 18:46:46 +00:00
ui Rename StyledPlayerView to PlayerView 2022-01-25 18:10:42 +00:00
ui_leanback Fixes for some minor misc issues 2021-11-19 14:44:25 +00:00