Interface BaseSource

Represents the common properties of a media resource.

interface BaseSource {
    abr?: SourceAbrConfiguration;
    crossOrigin?: CrossOriginSetting;
    dash?: DashPlaybackConfiguration;
    hls?: HlsPlaybackConfiguration;
    hlsDateRange?: boolean;
    ignoreEmbeddedTextTrackTypes?: TextTrackType[];
    integration?: SourceIntegrationId;
    latencyConfiguration?: SourceLatencyConfiguration;
    lcevc?: boolean;
    liveOffset?: number;
    lowLatency?: boolean;
    seamlessSwitchStrategy?: SeamlessSwitchStrategy;
    timeServer?: string;
    useCredentials?: boolean;
    useManagedMediaSource?: boolean;
    useNativePlayback?: boolean;
}

Hierarchy (view full)

Properties

The source's ABR configuration.


- Available since v3.1.0.
- Overrides PlayerConfiguration.abr.
- Used for DASH and LL-HLS streams.

crossOrigin?: CrossOriginSetting

The cross-origin setting of the source.

''


- Available since v2.9.0.

The configuration for controlling playback of an MPEG-DASH stream.


- Available since v2.79.0.
- Ignored for non-DASH streams.

The configuration for controlling playback of an HLS stream.


- Available since v2.82.0.
- Ignored for non-HLS streams.

hlsDateRange?: boolean

Whether the player should parse and expose date ranges from HLS manifests.

false


- Available since v2.61.0.

ignoreEmbeddedTextTrackTypes?: TextTrackType[]

A list of embedded TextTrackTypes to ignore when parsing media segments.


- Available since v5.9.0
- Only 'cea608' and 'emsg' can currently be ignored.
- Only for DASH and HLS playback.

integration?: SourceIntegrationId

The integration ID of the source.


- This can be used to signal that a source is specific to an integration.

latencyConfiguration?: SourceLatencyConfiguration

The source's latency configuration.


- Available since v7.4.0.
- Ignored for VOD playback.

lcevc?: boolean

Whether this source should be played using the LCEVC sdk.


- Requires the LCEVC feature to be enabled.
- Requires the V-Nova LCEVC SDK to be loaded on the page.
- Only available for DASH and HLS streams.

liveOffset?: number

The offset in seconds used to determine the live point. This live point is the end of the manifest minus the provided offset.


- Available since v2.35.0.
- Will be overridden by SourceLatencyConfiguration.targetOffset if it is specified.

Three times the segment's target duration.

lowLatency?: boolean

Whether the source should be played in the low-latency-mode of the player.

false


- This setting must be true when using Low-Latency CMAF with ABR.
- Available since v2.62.0.

seamlessSwitchStrategy?: SeamlessSwitchStrategy

Whether to seamlessly switch between discontinuities or periods.

The player supports two strategies for handling a switch between two discontinuities in an HLS stream or two periods in an MPEG-DASH stream:
- Seamless: Once the player is done buffering the current discontinuity/period, it immediately starts buffering the next discontinuity/period. This requires that the current discontinuity/period and the next discontinuity/period have compatible codecs and content protection, or that the platform supports buffering different codecs in a single player. Because the next discontinuity/period is preloaded ahead of time, this makes the actual switch between discontinuities/periods (almost) completely seamless.
- Hard: The player waits until playback reaches the end of the current discontinuity/period before buffering and playing the next discontinuity/period. Because the buffering is not done ahead of time, this may result in a noticeable stall at the start of the next discontinuity/period. However, this strategy does not require any special platform support, so it works on any platform or device.

By default, the player will automatically choose between a seamless or a hard discontinuity/period switch based on the codecs and content protection of the two discontinuities/periods, and the support information reported by the platform. However, if you notice that the player makes an incorrect decision on certain streams or platforms, you can use this option to override its behavior as a stopgap solution. (You should still report this problem to THEOplayer support, so we can improve the player's default behavior and you can remove this override.)

'auto'

timeServer?: string

The URL of a time server used by the player to synchronise the time in DASH sources.


- Available since v2.47.0.
- The time server should return time in ISO-8601 format.
- Overrides the time server provided the DASH manifest's <UTCTiming>.
- Only this source will use the time server. Alternatively, for all source use SourceConfiguration.timeServer.

useCredentials?: boolean

Whether the player is allowed to use credentials for cross-origin requests.


- Credentials are cookies, authorization headers or TLS client certificates.

false

useManagedMediaSource?: boolean

(Experimental) Whether to use ManagedMediaSource if available.

false


- Available since v6.2.0.
- At the moment, this requires iOS 17.1 beta 2 or higher, with the "Managed Media Source API" feature flag turned on in the Advanced settings of Safari.
- Ignored if BaseSource.useNativePlayback is true.

useNativePlayback?: boolean

Whether this source should be played using native playback.

false


- Available since v2.68.0.
- Ignored for DASH streams.
- Only supported on browsers that can play HLS streams natively, will error otherwise.