- 09 Aug, 2021 4 commits
-
-
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 5 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 -
PiperOrigin-RevId: 388410558
olly committed -
Colin Barr committed
-
- 02 Aug, 2021 12 commits
-
-
Colin Barr committed
-
PiperOrigin-RevId: 388260014
olly committed -
Issue: #8850 Issue: #9153 #minor-release PiperOrigin-RevId: 388257563
olly committed -
- Use timestampOffsetUs == C.TIME_UNSET directly as the way of determining whether the adjuster has determined the offset, rather than relying on lastSampleTimestampUs checks for this. - Remove comment referring to lastSampleTimestampUs as holding the "adjusted PTS". Its value may not have originated from a PTS timestamp. It's also confusing to refer to it as "adjusted" given timestampOffsetUs has not been applied to it. - Fix PassthroughSectionPayloadReader to make sure it'll never output a sample with an unset timestamp. #minor-release PiperOrigin-RevId: 388226180
olly committed -
PiperOrigin-RevId: 388187294
olly committed -
Prior to this change, an initalized TimestampAdjuster that's then reset with DO_NOT_OFFSET would incorrectly continue to apply the offset. Also add a test case for this issue, and for some other simple use cases. #minor-release PiperOrigin-RevId: 388182645
olly committed -
PiperOrigin-RevId: 387794965
aquilescanta committed -
DefaultHttpDataSource and OkHttpDataSource can share the same error code assigning logic. Fixes CronetDataSource's handling of closed connection. PiperOrigin-RevId: 387791679
claincly committed -
PiperOrigin-RevId: 387786273
claincly committed -
PiperOrigin-RevId: 387777480
aquilescanta committed -
PiperOrigin-RevId: 387772641
aquilescanta committed -
And change one IO_UNSPECIFIED for a ERROR_CODE_FAILED_RUNTIME_CHECK. PiperOrigin-RevId: 387772253
aquilescanta committed
-