media/library
bachinger 7ba79cfa42 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:23:00 +00:00
..
all Add database module 2021-10-26 14:19:43 +01:00
common Transformer GL: Clarify variables and comments. 2022-01-14 15:34:09 +00:00
core Split ad playback state and recalculate window and period duriations 2022-01-25 18:23:00 +00:00
dash Inherit parent properties for manifests with dvb profile only 2022-01-17 14:06:06 +00:00
database Add database module 2021-10-26 14:19:43 +01:00
datasource Change DefaultHttpDataSourceTest to an instrumentation test 2021-12-14 10:30:35 +00:00
decoder Make package in test manifest consistent 2021-10-29 11:35:26 +01:00
extractor Parse CryptoInfo from simpleTag and set it into DrmInitData. 2022-01-04 17:17:29 +00:00
hls Disable live speed adjustment where it has no benefit 2022-01-14 14:54:49 +00:00
rtsp Use RTSP server for RTSP auth realm. 2022-01-07 16:46:25 +00:00
smoothstreaming Remove setTag from (Ss|Hls|Dash)MediaSource.Factory 2022-01-10 13:00:58 +00:00
transformer Use encoder output format for configuring the Encoder. 2022-01-25 18:14:41 +00:00
ui Remove 'styled' from styledPlayerControlView field name 2022-01-10 12:57:27 +00:00
README.md Tweak and add READMEs + remove refs to V1 2017-08-17 22:59:34 +01:00

ExoPlayer library

The ExoPlayer library is split into multiple modules. See ExoPlayer's top level README for more information about the available library modules and how to use them.