TweaksConfig

data class TweaksConfig(var timeChangedInterval: Double = DEFAULT_TIME_CHANGED_EVENT_INTERVAL, var bandwidthEstimateWeightLimit: Int = DEFAULT_BANDWIDTH_ESTIMATE_WEIGHT_LIMIT, var languagePropertyNormalization: Boolean = true, var localDynamicDashWindowUpdateInterval: Double? = null, var useFiletypeExtractorFallbackForHls: Boolean = false, var useDrmSessionForClearPeriods: Boolean = false, var useDrmSessionForClearSources: Boolean = false, var shouldApplyTtmlRegionWorkaround: Boolean = true, var devicesThatRequireSurfaceWorkaround: List<DeviceDescription> = emptyList(), var enableImageMediaPlaylistThumbnailParsingForLive: Boolean = false, var enableExoPlayerDebugLogging: Boolean = false) : Parcelable

This configuration is used as an incubator for experimental features. Tweaks are not officially supported and are not guaranteed to be stable, i.e. their naming, functionality and API can change at any time within the tweaks or when being promoted to an official feature and moved into its final configuration namespace.

Constructors

Link copied to clipboard
constructor(timeChangedInterval: Double = DEFAULT_TIME_CHANGED_EVENT_INTERVAL, bandwidthEstimateWeightLimit: Int = DEFAULT_BANDWIDTH_ESTIMATE_WEIGHT_LIMIT, languagePropertyNormalization: Boolean = true, localDynamicDashWindowUpdateInterval: Double? = null, useFiletypeExtractorFallbackForHls: Boolean = false, useDrmSessionForClearPeriods: Boolean = false, useDrmSessionForClearSources: Boolean = false, shouldApplyTtmlRegionWorkaround: Boolean = true, devicesThatRequireSurfaceWorkaround: List<DeviceDescription> = emptyList(), enableImageMediaPlaylistThumbnailParsingForLive: Boolean = false, enableExoPlayerDebugLogging: Boolean = false)

Types

Link copied to clipboard
object Companion

Properties

Link copied to clipboard

Constantly aggregated and weighted bandwidth samples are summed up to this weight limit to calculate an bandwidth estimation. Remaining samples (i.e. that would lead to exceeding the limit) are dropped from memory as they are not relevant anymore.

Link copied to clipboard

Some devices have an incorrect implementation of MediaCodec.setOutputSurface. This leads to failure when the surface changes. To prevent failure, the codec will be released and re-instantiated in those scenarios.

Link copied to clipboard

Specifies whether ExoPlayer debug logs shall be printed to the logcat console for debugging purposes.

Image Media Playlist thumbnails are not officially supported for live sources as the parsing is not optimised for dynamically updating manifests. If enableImageMediaPlaylistThumbnailParsingForLive is set to true, variant playlists for all EXT-X-IMAGE-STREAM-INF tags are downloaded and parsed anyway.

Link copied to clipboard
var exoPlayerCache: Cache?

A cache instance that is used by the player in read-only mode. Ignored when playing back OfflineSourceConfigs.

Link copied to clipboard

Specifies if the language property on DASH Representations, HLS Renditions and SmoothStreaming QualityLevels is normalized. If enabled, language properties are normalized to IETF BCP 47 language tags. Examples: - "ENG" is normalized to "en" - "en_us" is normalized to "en-us" - "en-US-x-lvariant-POSIX" is normalized to "en-us-posix"

Link copied to clipboard

The interval in which dynamic DASH windows are updated locally. I.e. The rate by which the playback window is moved forward on the timeline.

Link copied to clipboard

Specifies whether default positioning values should be assumed when parsing TTML regions in case of unsupported TTML features. Default is true.

Link copied to clipboard

The frequency in seconds the TimeChanged will be fired.

Link copied to clipboard

Specifies whether a DRM session should be used for clear tracks of type video and audio. Using DRM sessions for clear content avoids the recreation of decoders when transitioning between clear and encrypted sections of content. Default is false.

Link copied to clipboard

Specifies whether a DRM session should be used for clear tracks of type video and audio in a clear source that follows after a DRM protected source. In addition, a DRM session will be used for clear periods in a DRM protected source. Using DRM sessions for clear content avoids the recreation of decoders when transitioning between clear and encrypted sections of content. Default is false.

Link copied to clipboard

Specifies if the player should always fall back to an extractor matching the file type, if no matching extractor was found. If the fallback is applied, this will ignore potential incompatibilities with streams and thus can result in unstable or failing playback.