- 02 Jun, 2021 8 commits
-
-
PiperOrigin-RevId: 377064882
aquilescanta committed -
PiperOrigin-RevId: 377048460
olly committed -
PiperOrigin-RevId: 377031562
bachinger committed -
PiperOrigin-RevId: 377026587
olly committed -
PiperOrigin-RevId: 377007386
bachinger committed -
PiperOrigin-RevId: 377006047
kimvde committed -
#minor-release PiperOrigin-RevId: 377001305
claincly committed -
Add the `needsReconfiguration` API on the `MediaCodecAdapter` interface so that `MediaCodecRenderer` can reconfigure the `MediaCodec` in case a `MediaCodecAdapter` needs to be reconfigured immediately after being obtained from the `MediaCodecAdapter.Factory`. PiperOrigin-RevId: 376944334
olly committed
-
- 01 Jun, 2021 2 commits
-
-
PiperOrigin-RevId: 376932836
bachinger committed -
A renderer is disabled (without being reset) in two situations: * When transitioning into a period that starts with a discontinuity * When stopping the player with setForegroundMode(true) Before this change the behaviour of `MediaCodecRenderer` when disabled (but not reset) depended on whether the content being decoded had an associated `DrmSession`: * For content without an associated DRM session the MediaCodec instance was kept alive. * For content with an associated DRM session, the MediaCodec instance was released. This was to prevent the DRM session from staying alive and continuing to make license refresh network requests while the player was stopped in 'foreground mode'. This change removes the second bullet, and keeps MediaCodec instances alive in both the secure and insecure case. This will result in the DRM machinery making occasional license refresh network requests (at a frequency defined by the license policy) while the player is stopped and in 'foreground mode'. This network usage is considered to be a 'limited resource' as described by the `ExoPlayer#setForegroundMode` javadoc. This means that switches between secure content (or between secure and clear content when `MediaItem.drmConfiguration.sessionForClearTypes` indicates a secure decoder should be used for clear content) should keep the same video decoder, thus avoiding the 'black flash' that occurs on some devices when switching the surface away from a secure decoder. Issue: #8842 #minor-release PiperOrigin-RevId: 376825501
ibaker committed
-
- 27 May, 2021 24 commits
-
-
This change introduces a third 'state' for `DefaultDrmSessionManager`: It's been fully released (prepareCount == 0) but at least one of its sessions is still active. In this state new acquisitions are rejected (`(pre)acquireSession()` calls will fail) but the machinery to support the existing sessions (ExoMediaDrm and MediaDrmHandler) is kept until they're all released. This change will allow us to remove the TODO in MediaCodecRenderer that resolves Issue: #8842. PiperOrigin-RevId: 376193952
ibaker committed -
In a follow-up change I will add an additional test to ensure these events continue to be correctly handled when DefaultDrmSessionManager has prepareCount==0 but a non-null ExoMediaDrm instance. PiperOrigin-RevId: 376190225
ibaker committed -
Issue: #8776 PiperOrigin-RevId: 376186877
olly committed -
This helps to remove old ad groups (e.g. those that fell out of the live window) to keep the data size of AdPlaybackState small. Also added this case to some existing unit tests to ensure it's covered. PiperOrigin-RevId: 376170653
tonihei committed -
This allows to decouple the data structure from the access. In a future change, this allows to completely remove old ad groups (e.g. for live streams where the number of groups would otherwise grow forever). Also move the time into the group itself for better encapsulation. PiperOrigin-RevId: 376170408
tonihei committed -
This includes setResumeSavedSession(false) and setEnableReconnectionService(false). PiperOrigin-RevId: 376162880
aquilescanta committed -
Many of the setters are ignored unless others are set - this change: * Lists these conditions exhaustively. * Uses more concise language to avoid overshadowing the main details of what the setter sets. * Tweaks the language from 'is ignored' to 'shouldn't be called', to open up the future possibility of throwing an error if these are called without the 'required' setter also being present (see Issue: #8957). #minor-release PiperOrigin-RevId: 376162385
ibaker committed -
PiperOrigin-RevId: 376155192
olly committed -
ParserException's constructor methods are deprecated. #minor-release PiperOrigin-RevId: 376150191
claincly committed -
The docs on setLicenseUri say it's optional, and it has been since https://github.com/google/ExoPlayer/commit/379cd8a04f0bf44a9422a08440223581b2657d74 (which should have changed this javadoc too) #minor-release PiperOrigin-RevId: 376139158
ibaker committed -
ParserException's constructor methods are deprecated. #minor-release PiperOrigin-RevId: 376127494
claincly committed -
PiperOrigin-RevId: 376126959
aquilescanta committed -
Authentication sequence in RTSP: - Server replies "Unauthorized" to our DESCRIBE request, and includes the necessary information (i.e. realm, digest nonce, etc) in WWW-Authenticate header - After `RtspClient` receives the response, we - Parse the WWW-Authenticate header, stores the auth info. The info is saved for all further RTSP requests (that all need to carry authorization headers) - send the second DESCRIBE request with the Authorization header. #minor-release PiperOrigin-RevId: 376116302claincly committed -
PiperOrigin-RevId: 376005620
aquilescanta committed -
PiperOrigin-RevId: 375992816
aquilescanta committed -
PiperOrigin-RevId: 375992627
aquilescanta committed -
PiperOrigin-RevId: 375979170
bachinger committed -
PiperOrigin-RevId: 375919564
olly committed -
Issue: #8985 #minor-release PiperOrigin-RevId: 375913914
olly committed -
The method openSocket in RtspMessageChannel does not actually open a socket. The 'open' term refers more to opening the message channel. #minor-release PiperOrigin-RevId: 375908999
claincly committed -
The callbacks received RTSP messages and RTSP sending errors are now invoked directly from RtspMessageChannel's internal threads. It's up to the handler implementation to decide which thread to handle the messages. #minor-release PiperOrigin-RevId: 375908282
claincly committed -
Previously, RTSP interleaved binary data is posted onto the playback thread for handling, the playback thread then adds the received data to a queue. A loader thread will later dequeue the data and process it. In this CL, the binary data is sent through a separate listener, on RtspMessageChannel's RTSP receiving thread. #minor-release PiperOrigin-RevId: 375907609
claincly committed -
Some RTSP servers will offer multiple WWW-Authenticate options. We wanted to be able to pick them up. #minor-release PiperOrigin-RevId: 375907276
claincly committed -
Currently acquireSession() fails with an NPE from checkNotNull(exoMediaDrm). A follow-up change will result in exoMediaDrm sometimes being non-null while prepareCount==0 (and in this case we still want acquireSession() to fail). preacquireSession() doesn't currently fail in a way the caller can observe - the same NPE is thrown, but asynchronously and it doesn't propagate out of the background thread. Throwing directly seems preferable since it's a clear bug to be trying to preacquire sessions from an unprepared/released manager. PiperOrigin-RevId: 375906450
ibaker committed
-
- 26 May, 2021 6 commits
-
-
PiperOrigin-RevId: 375883879
gyumin committed -
PiperOrigin-RevId: 375830765
klhyun committed -
PiperOrigin-RevId: 375719035
aquilescanta committed -
PiperOrigin-RevId: 375705247
aquilescanta committed -
PiperOrigin-RevId: 375686596
aquilescanta committed -
#minor-release PiperOrigin-RevId: 375674759
samrobinson committed
-