- 09 Apr, 2021 12 commits
-
-
MaskingMediaSource needs to resolve the prepare position set for a MaskingPeriod while the source was still unprepared to the first actual prepare position. It currently assumes that the period-window offset and the default position is zero. This assumption is correct when a PlaceholderTimeline is used, but it may not be true if the real timeline is already known (e.g. when re-preparing a live stream after a playback error). Fix this by using the known timeline at the time of the preparation. Also: - Update a test that should have caught this to use lazy re-preparation. - Change the demo app code to use the recommended way to restart playback after a BehindLiveWindowException. Issue: #8675 PiperOrigin-RevId: 361604191
tonihei committed -
PiperOrigin-RevId: 361106701
Ian Baker committed -
- Avoid having two onPositionDiscontinuity events (seek and transition) sent after a seek to another media item. - Avoid triggering an onPositionDiscontinuity event after a timeline change. #minor-release PiperOrigin-RevId: 361092914
kimvde committed -
PiperOrigin-RevId: 361029604
Ian Baker committed -
Issue: #8664 #minor-release PiperOrigin-RevId: 360877086
bachinger committed -
PiperOrigin-RevId: 360433358
Oliver Woodman committed -
PiperOrigin-RevId: 360398175
kimvde committed -
#minor-release PiperOrigin-RevId: 360384540
andrewlewis committed -
Issue: #8646 PiperOrigin-RevId: 360184586
olly committed -
Issue: #5246 PiperOrigin-RevId: 360132205
andrewlewis committed -
PiperOrigin-RevId: 359724874
aquilescanta committed -
Suggested in a comment on PR Issue: #8615 PiperOrigin-RevId: 359522217
ibaker committed
-
- 25 Feb, 2021 4 commits
-
-
targetLiveOffsetInMedia_unknownWindowStartTime_doesNotAdjustLiveOffset is flaky on the release branch. It's not flaky on the dev-v2 branch due to recent changes to FakeClock's behaviour which aren't yet present on release-v2.
Ian Baker committed -
r2.13.2
Marc Baechinger committed -
PiperOrigin-RevId: 359486817
bachinger committed -
Latest LTS version is better than latest stable version because it will be supported for longer. #minor-release Issue:#8581 PiperOrigin-RevId: 359467482
kimvde committed
-
- 24 Feb, 2021 7 commits
-
-
PiperOrigin-RevId: 359244236
marcbaechinger committed -
- Ensure consistency between (Styled)PlayerControlView, PlayerNotificationManager, TimelineQueueNavigator and DefaultControlDispatcher. - Handle the case where a live stream has ended when enabling previous and next actions (window.isLive() is true and window.isDynamic is false in that case) PiperOrigin-RevId: 359063793
kimvde committed -
The configuration to publish to Maven seems to be incompatible with the configuration for bintray, so only enable one at once. Once the GMaven publishing flow is completely set up we can remove the exoplayerPublishEnabled constant and the first branch entirely. Issue: #5246 PiperOrigin-RevId: 359056610
andrewlewis committed -
The release AAR and Android sources are included for each published artifact. Issue: #5246 Issue: #8353 #minor-release PiperOrigin-RevId: 358146555
andrewlewis committed -
This behavior is consistent with DefaultControlDispatcher#dispatchNext(). #minor-release PiperOrigin-RevId: 357145076
kimvde committed -
#minor-release PiperOrigin-RevId: 359041513
bachinger committed -
PiperOrigin-RevId: 359000734
marcbaechinger committed
-
- 23 Feb, 2021 2 commits
- 22 Feb, 2021 8 commits
-
-
The SampleStream.readData contract is that when reading a sample with a flags-only buffer, the buffer timestamp and flags should be set and the read position should not be advanced. #minor-release PiperOrigin-RevId: 357842130
olly committed -
`ImaAdsLoader` will preload the first ad of a subsequent media item, but the preloaded ad might not actually play because the user could seek to a non-zero position in that media item (which could trigger playback of a midroll, not the preroll). In this case, playback would get stuck because the midroll ad expected to play after the seek would never load, because the IMA SDK expected the preroll to play first. Fix this behavior by discarding the preloaded ad break. If there isn't a seek, the transition to the next media item is still seamless. #minor-release PiperOrigin-RevId: 357682510
andrewlewis committed -
Previously it was safe to query the first period in the timeline, but now we support using the ads loader in concatenations we need to use the current period index instead. PiperOrigin-RevId: 357578003
andrewlewis committed -
Issue:#8581 PiperOrigin-RevId: 357563419
kimvde committed -
Issue: #8585 PiperOrigin-RevId: 357553237
olly committed -
The source can be used in compositions (in fact, every source is automatically used in an internal composition when constructing the playlist), and there is not really a concept of top-level media source any more since the Player supports playlists. The actual restriction is that the content media source needs to have exactly one period to be able to create a SinglePeriodAdTimeline. #minor-release PiperOrigin-RevId: 357544191
tonihei committed -
The previous logic was changed under the assumption that the first box inside a meta box was not always an hdlr box, but this is not true. #minor-release PiperOrigin-RevId: 357200713
kimvde committed -
PiperOrigin-RevId: 357160215
kimvde committed
-
- 13 Feb, 2021 1 commit
-
-
r2.13.1
Oliver Woodman committed
-
- 12 Feb, 2021 6 commits
-
-
#minor-release PiperOrigin-RevId: 357273184
olly committed -
PiperOrigin-RevId: 357219132
olly committed -
The available end time was accidentally substracted by the start time of the last period. To avoid similar time reference confusion in the future, also renaming many variables and methods to clearly reflect the time reference point. And to avoid constant conversion, the processManifest method also attempts to converge to time relative to the start of the window as quickly as possible. Issue: #8537 PiperOrigin-RevId: 357001624
tonihei committed -
If keepalive is disabled the existing code over-eagerly releases DrmSession instances. This is arguably OK since a (Default)DrmSession should be released before its (Default)Manager is released (since the underlying MediaDrm instance might be released when the manager is released). And if all sessions are released before the manager is released then `sessions` is empty, so the loop is a no-op. Issue: #8576 PiperOrigin-RevId: 356955308
ibaker committed -
The `DrmConfiguration.sessionForClearTypes` property is often used to ensure a secure decoder is used for clear ads played in encrypted content. This is because some devices show black frames when switching decoders. Before this change the DRM config isn't propagated down when constructing the ad media source, meaning `DrmSessionManager.DRM_UNSUPPORTED` is always used, which will cause playback to switch from secure to clear decoder when transitioning to an ad break (ignoring the MediaItem `sessionForClearTypes` option. Issue: #8568 PiperOrigin-RevId: 356951124
ibaker committed -
Issue: #4803 PiperOrigin-RevId: 356923345
andrewlewis committed
-