- 11 Aug, 2021 3 commits
-
-
The release note was put under 2.14.2 but the feature is released in 2.15.0. #minor-release PiperOrigin-RevId: 390093836
christosts committed -
- Remove ExoPlayer.Builder - Copy SimpleExoPlayer.Builder to ExoPlayer - Deprecate SimpleExoPlayer.Builder PiperOrigin-RevId: 389890299
kimvde committed -
PiperOrigin-RevId: 389879570
olly committed
-
- 10 Aug, 2021 6 commits
-
-
These will all be needed in common to break dependencies between decoder extension modules and the core module. PiperOrigin-RevId: 389871983
olly committed -
#minor-release PiperOrigin-RevId: 389871495
christosts committed -
#minor-release PiperOrigin-RevId: 389862401
christosts committed -
PiperOrigin-RevId: 389844289
olly committed -
PiperOrigin-RevId: 389840014
olly committed -
Timeline is already abstract, so it can only be constructed from a subclass anyway. PiperOrigin-RevId: 389827960
ibaker committed
-
- 09 Aug, 2021 9 commits
-
-
PiperOrigin-RevId: 389681733
olly committed -
PiperOrigin-RevId: 389661768
olly committed -
PiperOrigin-RevId: 389640670
olly committed -
PiperOrigin-RevId: 389622428
olly committed -
This isn't needed now we've updated to Robolectric 4.6 Follow-up to https://github.com/google/ExoPlayer/commit/0df0df9aeece386b7421afde160e9009457512ab PiperOrigin-RevId: 389616471
ibaker committed -
The result is plumbed back to `MediaCodecRenderer` via a new `DrmSession#requiresSecureDecoder` method. This allows us to use the `MediaDrm#requiresSecureDecoder` method added in Android 12: https://developer.android.com/reference/android/media/MediaDrm#requiresSecureDecoder(java.lang.String) This change also removes `FrameworkMediaCrypto#forceAllowInsecureDecoderComponents`, replacing it with equivalent logic in `FrameworkMediaDrm#requiresSecureDecoder`. PiperOrigin-RevId: 389616038
ibaker committed -
Adding a CHANGE_FRAME_RATE_STRATEGY_ALWAYS strategy is omitted from this commit, since adding it is more complicated than just plumbing it through and leaving everything else unchanged. Specifically, VideoFrameReleaseTimeHelper would need updating to behave differently when such a strategy is enabled. It currently calls setFrameRate in cases such as pausing, seeking and re-buffering, on the assumption that changes to the underlying display refresh rate will only be made if they can be done seamlessly. For a mode in which this will not be the case, it makes more sense to stick to the content frame-rate when these events occur. It may also make sense to only use explicit content frame-rate values, and not those inferred from individual frame timestamps. Finally, for adaptive content containing a mix of frame-rates, it makes sense to use the maximal frame-rate across all variants, and to avoid calling setFrameRate on switches from one variant to another. Applications that know the frame-rate of their content can set ExoPlayer's strategy to CHANGE_FRAME_RATE_STRATEGY_OFF and then use setFrameRate directly on the output surface. Note that this is likely to be a better option for apps than anything we could implement in ExoPlayer, because the application layer most likely knows the frame-rate of the content earlier than ExoPlayer does (e.g., to perform the disruptive mode switch at the same time as an activity transition). Adding CHANGE_FRAME_RATE_STRATEGY_ALWAYS will be deferred until there's clear demand for it. In the meantime, we'll recommend the alternative approach above. PiperOrigin-RevId: 389610965
olly committed -
PiperOrigin-RevId: 389579365
olly committed -
Many GH users find it hard to print out RTSP messages if they use ExoPlayer as an external dependency. PiperOrigin-RevId: 389197812
claincly committed
-
- 06 Aug, 2021 8 commits
-
-
#minor-release PiperOrigin-RevId: 389174519
christosts committed -
PiperOrigin-RevId: 389170562
olly committed -
This CL moves SubtitleDecoder and all its dependencies to common in order to enable using it in extractor module while implementing SubtitleExtractor. PiperOrigin-RevId: 388979021
apodob committed -
This CL introduces two classes: * CueEncoder - encodes list of Cue object into byte array. * CueDecoder - decodes byte array into list of Cue objects. This two classes are necessary in order to push Cues through SampleQueue. This classes are meant to be used by subtitle Extractor. PiperOrigin-RevId: 388932088
apodob committed -
PiperOrigin-RevId: 388929850
olly committed -
PiperOrigin-RevId: 388911857
kimvde committed -
PiperOrigin-RevId: 388907645
andrewlewis committed -
These API levels have both been finalized. We're also calling methods from these API levels directly, which may not exist if a device is running a non-finalized R or S release. PiperOrigin-RevId: 388903410
olly committed
-
- 05 Aug, 2021 5 commits
-
-
PiperOrigin-RevId: 388893920
olly committed -
Issue: #9252 #minor-release PiperOrigin-RevId: 388889406
andrewlewis committed -
Issue: #9254 #minor-release We used to allow only alphanumerical characters in session id. The spec also allows "$", "-", "_", ".", "+" (RFC2326 Sections 3.4 and 15.1). PiperOrigin-RevId: 388873742
claincly committed -
PiperOrigin-RevId: 388860854
gyumin committed -
PiperOrigin-RevId: 388835913
sungsoo committed
-
- 04 Aug, 2021 6 commits
-
-
This change removes ERROR_CODE_IO_NETWORK_UNAVAILABLE, ERROR_CODE_IO_NETWORK_CONNECTION_CLOSED, and ERROR_CODE_IO_DNS_FAILED in favor of keeping only ERROR_CODE_IO_NETWORK_CONNECTION_FAILED. PiperOrigin-RevId: 388715972
aquilescanta committed -
PiperOrigin-RevId: 388713101
Christos Tsilopoulos committed -
- Fix use of getTimestampOffsetUs in TsExtractor where getFirstSampleTimestampUs should have been used. - Don't reset TimestampAdjuster if it's in no-offset mode. - Improve comment clarity #minor-release PiperOrigin-RevId: 388682711
olly committed -
For audio-only playlists, when formats are communicated to the app with AnalyticsListener.onDownstreamFormatChanged(), the passed MediaLoadData do not indicate this is an audio track and therefore the PlaybackStatsListener cannot derive audio format-related information. This change sets the main SampleStreamWrappers track type to AUDIO, if the master playlist contains only audio variants. Issue: #9175 #minor-release PiperOrigin-RevId: 388676060
christosts committed -
The AnalyticsCollector releases listeners lazily so that listener callbacks triggered on the application looper after SimpleExoPlayer.release() are still handled. The change in ListenerSet to post the onEvents callback on the front of the application looper changed (correctly) how onEvents are propagated, however this made the AnalyticsCollector deliver onEvents with out-of-order EventTimes. This change fixes AnalyticsCollector to trigger onPlayerReleased() and the matching onEvents() event in the correct order. #minor-release PiperOrigin-RevId: 388668739
christosts committed -
This change aligns all the names for classes that are 'holders of static methods' to be `ApiNN`. Classes that hold state are named meaningfully based on that state. PiperOrigin-RevId: 388641064
ibaker committed
-
- 03 Aug, 2021 3 commits
-
-
Issue: #9239 #minor-release PiperOrigin-RevId: 388437614
andrewlewis committed -
PiperOrigin-RevId: 388437245
olly committed -
This CL addresses the github issue [#8946](https://github.com/google/ExoPlayer/issues/8964). That issue requests support for `font-size` CSS property in WebVTT subtitle format. This CL: * Adds support for `font-size` property by extending capabilities of WebVTT `CssParser`. Implementation of `font-size` property value parsing is based on the one in `TtmlDecoder`. * Adds unit test along with test file containing WebVTT subtitles with all currently supported `font-size` units. #minor-release PiperOrigin-RevId: 388423859
apodob committed
-