10696 Commits

Author SHA1 Message Date
bachinger
01d4adad6d Reset playback speed when live speed control becomes unused
Issue: #8664
#minor-release
PiperOrigin-RevId: 360877086
2021-04-09 16:06:56 +01:00
Oliver Woodman
d6eb61d6f8 Merge pull request #8546 from TadejZupancic:dev-v2
PiperOrigin-RevId: 360433358
2021-04-09 16:06:22 +01:00
kimvde
1a190ff90e Link to callback in Player getters' Javadoc
PiperOrigin-RevId: 360398175
2021-04-09 16:04:54 +01:00
andrewlewis
bcd0a91ed6 Fall back from DTS HD to DTS
#minor-release

PiperOrigin-RevId: 360384540
2021-04-09 14:10:21 +01:00
olly
8570248079 Fix scrubber not reappearing correctly in some cases
Issue: #8646
PiperOrigin-RevId: 360184586
2021-04-09 14:08:49 +01:00
andrewlewis
46e156afee Lint and test artifacts for Maven publication
Issue: #5246
PiperOrigin-RevId: 360132205
2021-04-09 14:05:10 +01:00
aquilescanta
e38b48a9e2 Use a debug signature config for demo apps' release variant
PiperOrigin-RevId: 359724874
2021-04-09 14:03:46 +01:00
ibaker
e4d5e07fd3 Make SsaDecoder robust against absent Format items
Suggested in a comment on PR Issue: #8615

PiperOrigin-RevId: 359522217
2021-04-09 14:01:23 +01:00
Ian Baker
4364b9150f Disable flaky test in ExoPlayerTest
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.
2021-02-25 16:29:37 +00:00
Marc Baechinger
ce48a28aec
Merge pull request #8634 from google/dev-v2-r2.13.2
r2.13.2
2021-02-25 13:15:45 +00:00
bachinger
c96f695af7 Bump version to 2.13.2
PiperOrigin-RevId: 359486817
2021-02-25 11:51:24 +00:00
kimvde
734bf4c0c5 Update extensions NDK version to latest LTS version
Latest LTS version is better than latest stable version because it will
be supported for longer.

#minor-release
Issue:#8581
PiperOrigin-RevId: 359467482
2021-02-25 09:39:00 +00:00
marcbaechinger
e21b99a671 Merge pull request #8615 from szaboa:dev-v2-8435-ssa-font-size
PiperOrigin-RevId: 359244236
2021-02-24 18:35:59 +00:00
kimvde
3f8f7ba97f Fix conditions to enable UI actions
- 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
2021-02-24 18:32:11 +00:00
andrewlewis
abf65e27f4 Fix publishing to bintray
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
2021-02-24 18:16:32 +00:00
andrewlewis
e3adac59b4 Add Maven publishing support
The release AAR and Android sources are included for each published artifact.

Issue: #5246
Issue: #8353

#minor-release

PiperOrigin-RevId: 358146555
2021-02-24 18:15:46 +00:00
kimvde
90c18e4410 Enable next button if window is live
This behavior is consistent with DefaultControlDispatcher#dispatchNext().

#minor-release

PiperOrigin-RevId: 357145076
2021-02-24 18:14:03 +00:00
bachinger
2635922bbb Add jacoco.exec files to .gitignore
#minor-release

PiperOrigin-RevId: 359041513
2021-02-24 18:08:47 +00:00
marcbaechinger
e890204757 Merge pull request #8539 from larryng:patch-1
PiperOrigin-RevId: 359000734
2021-02-24 18:07:55 +00:00
olly
46995b3c24 Remove unused mocking in CacheWriterTest
#minor-release

PiperOrigin-RevId: 358998449
2021-02-23 13:55:35 +00:00
olly
5e517f8953 Read to end-of-stream for HTTP contract tests
#minor-release

PiperOrigin-RevId: 358847933
2021-02-23 13:55:13 +00:00
olly
18a94aa717 SilenceSampleStream.readData: Handle flags-only buffers
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
2021-02-22 15:04:08 +00:00
andrewlewis
625c830b3d Fix seeking to a non-zero position in a preloaded ad item
`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
2021-02-22 15:02:51 +00:00
andrewlewis
326ec967af Fix ad tag loader period index
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
2021-02-22 15:01:02 +00:00
kimvde
c6ed561d57 Upgrade extensions NDK version
Issue:#8581
PiperOrigin-RevId: 357563419
2021-02-22 14:58:10 +00:00
olly
5be7d4da9e Don't clear audioSessionId when audio disabled
Issue: #8585
PiperOrigin-RevId: 357553237
2021-02-22 14:52:37 +00:00
tonihei
0ab9a219f7 Clarify/correct restrictions of AdsMediaSource.
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
2021-02-22 14:46:35 +00:00
kimvde
84d7433936 Revert logic to decide whether meta atom is full
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
2021-02-22 14:35:54 +00:00
kimvde
75cc5990b0 Add support for MP4/QuickTime non-full meta atoms
PiperOrigin-RevId: 357160215
2021-02-22 14:32:08 +00:00
Oliver Woodman
4b1e0fa9fc
Merge pull request #8582 from google/dev-v2-r2.13.1
r2.13.1
2021-02-13 00:56:14 +00:00
olly
5807d2e0be Fix RequiresApi annotation
#minor-release

PiperOrigin-RevId: 357273184
2021-02-12 22:55:02 +00:00
olly
26371ae40f Bump version to 2.13.1
PiperOrigin-RevId: 357219132
2021-02-12 20:01:59 +00:00
tonihei
01f57c3c0b Fix available end time calculation for multi-period DASH live streams
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
2021-02-12 17:19:37 +00:00
ibaker
295e8bacb3 Check if keepalive is enabled before releasing sessions in DDSM.release
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
2021-02-12 17:19:19 +00:00
ibaker
d48d59bda1 Propagate DRM config when creating ad media sources
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
2021-02-12 17:19:03 +00:00
andrewlewis
ed3d1c6283 Don't set playback parameters when using tunneling
Issue: #4803

PiperOrigin-RevId: 356923345
2021-02-12 17:18:34 +00:00
andrewlewis
d0dd33e5d3 Add a method to focus the 'skip ad' button, if shown
Issue: #8565

PiperOrigin-RevId: 356691251
2021-02-12 17:18:16 +00:00
ibaker
19ab087c61 Cache the last DrmSessionManager instance inside the default provider
Without this a new manager is instantiated for every item in a playlist,
meaning the impact of caching improvements to DefaultDrmSessionManager
are reduced (since the cache doesn't persist across playlist items).

With this change, playlists of items with identical DRM config will use
the same manager instance (and thus share existing sessions).

Issue: #8523
PiperOrigin-RevId: 356690852
2021-02-12 17:17:58 +00:00
andrewlewis
56feb96fc9 Handle loading the same ad more than once
Also allow the player's prepared ad media period durations array to exceed the
length of the loaded ad URIs array, as it's possible for the player to buffer
an ad media period fully at the point where it's known that an ad is coming up
but its URI is still unknown.

PiperOrigin-RevId: 356249284
2021-02-12 17:17:40 +00:00
tonihei
5211f06dc2 Don't apply speed adjustment if windowStartTime is unknown.
This may happen for HLS live streams without program date time
information.

Issue: #8560

PiperOrigin-RevId: 356227729
2021-02-12 17:17:11 +00:00
kimvde
a08514315f Transformer: remove SpeedProvider interface from Javadoc
#minor-release

PiperOrigin-RevId: 356221487
2021-02-12 17:15:58 +00:00
Oliver Woodman
b1000940ea
Merge pull request #8541 from google/dev-v2-r2.13.0
r2.13.0
2021-02-04 20:40:16 +00:00
kimvde
77798e4fef Avoid skipping the first decoder output buffers after speed change
#minor-release

PiperOrigin-RevId: 355652144
2021-02-04 18:16:51 +00:00
olly
7fb166ba06 Finalize release notes for 2.13.0
PiperOrigin-RevId: 355621265
2021-02-04 16:20:31 +00:00
kimvde
045048f6f5 Fall back to AVC/HEVC for Dolby Vision levels 10-13
Before, the level was set to null in this case.
MediaCodecUtil.getCodecProfileAndLevel() was therefore returning null
and the fallback to AVC/HEVC was not enabled in MediaCodecVideoRenderer.

Issue:#8530
PiperOrigin-RevId: 355574499
2021-02-04 16:19:46 +00:00
Oliver Woodman
74ade6fcda Merge branch 'release-v2' into dev-v2-r2.13.0 2021-02-04 00:43:20 +00:00
Oliver Woodman
bad6506c0f Merge branch 'release-v2' into dev-v2-r2.13.0 2021-02-04 00:40:10 +00:00
olly
95d9060a30 Suppress SwitchIntDef warning where it makes sense
In both cases it's deliberate that all excluded constants should use
the default branch. Furthermore, there are quite a lot of excluded
constants missing, so it's probably better to suppress the warning
than to include them all.

#minor-release

PiperOrigin-RevId: 355426749
2021-02-04 00:32:03 +00:00
olly
6bcc6791b6 Fix gradle conflict resolution for Cronet tests
This resolves the following constraint resolution issue when running our release script:

> Cannot find a version of 'org.chromium.net:cronet-api' that satisfies the version constraints:
    Dependency path 'com.google.android.exoplayer:extension-cronet:unspecified' --> 'com.google.android.gms:play-services-cronet:17.0.0' --> 'org.chromium.net:cronet-api:72.3626.96'
    Constraint path 'com.google.android.exoplayer:extension-cronet:unspecified' --> 'org.chromium.net:cronet-api:{strictly 72.3626.96}' because of the following reason: debugRuntimeClasspath uses version 72.3626.96
    Dependency path 'com.google.android.exoplayer:extension-cronet:unspecified' --> 'org.chromium.net:cronet-embedded:76.3809.111' --> 'org.chromium.net:cronet-common:76.3809.111' --> 'org.chromium.net:cronet-api:76.3809.111'

#minor-release

PiperOrigin-RevId: 355414968
2021-02-04 00:31:57 +00:00
kimvde
b879869a10 Add Transformer "Getting started" page
#minor-release

PiperOrigin-RevId: 355381610
2021-02-04 00:31:46 +00:00