react-native-theoplayer 10.6.0 → 10.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +17 -0
- package/android/src/main/java/com/theoplayer/ReactTHEOplayerContext.kt +15 -0
- package/android/src/main/java/com/theoplayer/latency/LatencyConfiguration.kt +7 -6
- package/android/src/main/java/com/theoplayer/source/SourceAdapter.kt +23 -1
- package/android/src/main/java/com/theoplayer/util/JsonExtensions.kt +10 -0
- package/ios/casting/THEOplayerRCTView+CastConfig.swift +5 -1
- package/ios/theolive/THEOplayerRCTSourceDescriptionBuilder+Theolive.swift +15 -1
- package/lib/commonjs/api/source/SourceDescription.js.map +1 -1
- package/lib/commonjs/api/source/barrel.js +12 -1
- package/lib/commonjs/api/source/barrel.js.map +1 -1
- package/lib/commonjs/api/source/latency/SourceLatencyConfiguration.js +2 -0
- package/lib/commonjs/api/source/latency/SourceLatencyConfiguration.js.map +1 -0
- package/lib/commonjs/api/source/latency/barrel.js +17 -0
- package/lib/commonjs/api/source/latency/barrel.js.map +1 -0
- package/lib/commonjs/api/theolive/TheoLiveEndpoint.js +4 -0
- package/lib/commonjs/api/theolive/WebrtcOptions.js +2 -0
- package/lib/commonjs/api/theolive/WebrtcOptions.js.map +1 -0
- package/lib/commonjs/manifest.json +1 -1
- package/lib/module/api/source/SourceDescription.js.map +1 -1
- package/lib/module/api/source/barrel.js +1 -0
- package/lib/module/api/source/barrel.js.map +1 -1
- package/lib/module/api/source/latency/SourceLatencyConfiguration.js +2 -0
- package/lib/module/api/source/latency/SourceLatencyConfiguration.js.map +1 -0
- package/lib/module/api/source/latency/barrel.js +4 -0
- package/lib/module/api/source/latency/barrel.js.map +1 -0
- package/lib/module/api/theolive/TheoLiveEndpoint.js +2 -0
- package/lib/module/api/theolive/WebrtcOptions.js +2 -0
- package/lib/module/api/theolive/WebrtcOptions.js.map +1 -0
- package/lib/module/manifest.json +1 -1
- package/lib/typescript/api/cast/CastConfiguration.d.ts +8 -0
- package/lib/typescript/api/cast/CastConfiguration.d.ts.map +1 -1
- package/lib/typescript/api/source/SourceDescription.d.ts +13 -0
- package/lib/typescript/api/source/SourceDescription.d.ts.map +1 -1
- package/lib/typescript/api/source/barrel.d.ts +1 -0
- package/lib/typescript/api/source/barrel.d.ts.map +1 -1
- package/lib/typescript/api/source/latency/SourceLatencyConfiguration.d.ts +62 -0
- package/lib/typescript/api/source/latency/SourceLatencyConfiguration.d.ts.map +1 -0
- package/lib/typescript/api/source/latency/barrel.d.ts +2 -0
- package/lib/typescript/api/source/latency/barrel.d.ts.map +1 -0
- package/lib/typescript/api/theolive/TheoLiveEndpoint.d.ts +2 -0
- package/lib/typescript/api/theolive/TheoLiveEndpoint.d.ts.map +1 -1
- package/lib/typescript/api/theolive/TheoLiveSource.d.ts +5 -0
- package/lib/typescript/api/theolive/TheoLiveSource.d.ts.map +1 -1
- package/lib/typescript/api/theolive/WebrtcOptions.d.ts +27 -0
- package/lib/typescript/api/theolive/WebrtcOptions.d.ts.map +1 -0
- package/package.json +1 -1
- package/react-native-theoplayer.podspec +7 -7
- package/src/api/cast/CastConfiguration.ts +9 -0
- package/src/api/source/SourceDescription.ts +14 -0
- package/src/api/source/barrel.ts +1 -0
- package/src/api/source/latency/SourceLatencyConfiguration.ts +67 -0
- package/src/api/source/latency/barrel.ts +1 -0
- package/src/api/theolive/TheoLiveEndpoint.ts +3 -0
- package/src/api/theolive/TheoLiveSource.ts +6 -0
- package/src/api/theolive/WebrtcOptions.ts +28 -0
- package/src/manifest.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -5,6 +5,22 @@ All notable changes to this project will be documented in this file.
|
|
|
5
5
|
The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.1.0/)
|
|
6
6
|
and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html).
|
|
7
7
|
|
|
8
|
+
## [10.7.0] - 25-12-19
|
|
9
|
+
|
|
10
|
+
### Added
|
|
11
|
+
|
|
12
|
+
- Added a webrtc configuration property `webrtc` in `TheoLiveSource`, to enable configuring the playout delay for Millicast streams consumed through OptiView Live.
|
|
13
|
+
|
|
14
|
+
## [10.6.1] - 25-12-18
|
|
15
|
+
|
|
16
|
+
### Fixed
|
|
17
|
+
|
|
18
|
+
- Fixed an issue on AndroidTV and FireTV devices, where pressing the center D-pad button during play-out of an ad configured with a click-through URL would cause the player to pause, without the ability to resume playback.
|
|
19
|
+
|
|
20
|
+
### Added
|
|
21
|
+
|
|
22
|
+
- Added `useExperimentalPipeline` to `CastConfiguration` for iOS, that controls the usage of an experimental, alternative implementation of the chromecast pipeline with a different feature set.
|
|
23
|
+
|
|
8
24
|
## [10.6.0] - 25-12-02
|
|
9
25
|
|
|
10
26
|
### Added
|
|
@@ -16,6 +32,7 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.
|
|
|
16
32
|
### Added
|
|
17
33
|
|
|
18
34
|
- Support for contentProtection query parameters on THEOlive sources.
|
|
35
|
+
- Added `LatencyConfiguration` to `SourceDescription` for Android and Web.
|
|
19
36
|
|
|
20
37
|
### Fixed
|
|
21
38
|
|
|
@@ -25,6 +25,8 @@ import com.theoplayer.android.api.ads.theoads.TheoAdsIntegrationFactory
|
|
|
25
25
|
import com.theoplayer.android.api.cast.CastIntegration
|
|
26
26
|
import com.theoplayer.android.api.cast.CastIntegrationFactory
|
|
27
27
|
import com.theoplayer.android.api.event.EventListener
|
|
28
|
+
import com.theoplayer.android.api.event.ads.AdClickedEvent
|
|
29
|
+
import com.theoplayer.android.api.event.ads.AdsEventTypes
|
|
28
30
|
import com.theoplayer.android.api.event.player.*
|
|
29
31
|
import com.theoplayer.android.api.millicast.MillicastIntegration
|
|
30
32
|
import com.theoplayer.android.api.millicast.MillicastIntegrationFactory
|
|
@@ -56,6 +58,7 @@ private const val ALLOWED_PLAY_PAUSE_ACTIONS = (
|
|
|
56
58
|
PlaybackStateCompat.ACTION_PLAY or
|
|
57
59
|
PlaybackStateCompat.ACTION_PAUSE)
|
|
58
60
|
|
|
61
|
+
@Suppress("SimplifyBooleanWithConstants", "KotlinConstantConditions")
|
|
59
62
|
class ReactTHEOplayerContext private constructor(
|
|
60
63
|
private val reactContext: ThemedReactContext,
|
|
61
64
|
private val configAdapter: PlayerConfigAdapter
|
|
@@ -418,6 +421,12 @@ class ReactTHEOplayerContext private constructor(
|
|
|
418
421
|
}
|
|
419
422
|
}
|
|
420
423
|
|
|
424
|
+
private val onTVAdClicked = EventListener<AdClickedEvent> {
|
|
425
|
+
// On TV devices, when an ad is clicked, we want do not want to pause the player. The player
|
|
426
|
+
// would get stuck in paused state as there is no way to resume playback from a remote control.
|
|
427
|
+
player.play()
|
|
428
|
+
}
|
|
429
|
+
|
|
421
430
|
private fun addListeners() {
|
|
422
431
|
player.apply {
|
|
423
432
|
addEventListener(PlayerEventTypes.SOURCECHANGE, onSourceChange)
|
|
@@ -427,6 +436,9 @@ class ReactTHEOplayerContext private constructor(
|
|
|
427
436
|
addEventListener(PlayerEventTypes.ENDED, onEnded)
|
|
428
437
|
addEventListener(PlayerEventTypes.VOLUMECHANGE, onVolumeChange)
|
|
429
438
|
}
|
|
439
|
+
if (isTV) {
|
|
440
|
+
player.ads.addEventListener(AdsEventTypes.AD_CLICKED, onTVAdClicked)
|
|
441
|
+
}
|
|
430
442
|
}
|
|
431
443
|
|
|
432
444
|
private fun removeListeners() {
|
|
@@ -438,6 +450,9 @@ class ReactTHEOplayerContext private constructor(
|
|
|
438
450
|
removeEventListener(PlayerEventTypes.ENDED, onEnded)
|
|
439
451
|
removeEventListener(PlayerEventTypes.VOLUMECHANGE, onVolumeChange)
|
|
440
452
|
}
|
|
453
|
+
if (isTV) {
|
|
454
|
+
player.ads.removeEventListener(AdsEventTypes.AD_CLICKED, onTVAdClicked)
|
|
455
|
+
}
|
|
441
456
|
}
|
|
442
457
|
|
|
443
458
|
/**
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
package com.theoplayer.latency
|
|
2
2
|
|
|
3
3
|
import com.theoplayer.android.api.latency.LatencyConfiguration
|
|
4
|
+
import com.theoplayer.util.optDoubleOrNull
|
|
4
5
|
import org.json.JSONObject
|
|
5
6
|
|
|
6
7
|
private const val PROP_MINIMUM_OFFSET = "minimumOffset"
|
|
@@ -12,11 +13,11 @@ private const val PROP_MAXIMUM_PLAYBACK_RATE = "maximumPlaybackRate"
|
|
|
12
13
|
|
|
13
14
|
fun parseLatencyConfiguration(jsonLatency: JSONObject): LatencyConfiguration {
|
|
14
15
|
return LatencyConfiguration.Builder().apply {
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
16
|
+
jsonLatency.optDoubleOrNull(PROP_MINIMUM_OFFSET)?.let { setMinimumOffset(it) }
|
|
17
|
+
jsonLatency.optDoubleOrNull(PROP_MAXIMUM_OFFSET)?.let { setMaximumOffset(it) }
|
|
18
|
+
jsonLatency.optDoubleOrNull(PROP_TARGET_OFFSET)?.let { setTargetOffset(it) }
|
|
19
|
+
jsonLatency.optDoubleOrNull(PROP_FORCE_SEEK_OFFSET)?.let { setForceSeekOffset(it) }
|
|
20
|
+
jsonLatency.optDoubleOrNull(PROP_MINIMUM_PLAYBACK_RATE)?.let { setMinimumPlaybackRate(it) }
|
|
21
|
+
jsonLatency.optDoubleOrNull(PROP_MAXIMUM_PLAYBACK_RATE)?.let { setMaximumPlaybackRate(it) }
|
|
21
22
|
}.build()
|
|
22
23
|
}
|
|
@@ -24,7 +24,9 @@ import com.theoplayer.android.api.cmcd.CMCDTransmissionMode
|
|
|
24
24
|
import com.theoplayer.android.api.error.ErrorCode
|
|
25
25
|
import com.theoplayer.android.api.source.AdIntegration
|
|
26
26
|
import com.theoplayer.android.api.source.dash.DashPlaybackConfiguration
|
|
27
|
+
import com.theoplayer.android.api.theolive.PlayoutDelay
|
|
27
28
|
import com.theoplayer.android.api.theolive.TheoLiveSource
|
|
29
|
+
import com.theoplayer.android.api.theolive.WebRTCOptions
|
|
28
30
|
import com.theoplayer.cmcd.CmcdTransmissionMode
|
|
29
31
|
import com.theoplayer.drm.ContentProtectionAdapter
|
|
30
32
|
import com.theoplayer.latency.parseLatencyConfiguration
|
|
@@ -72,6 +74,10 @@ private const val PROP_SSE_ENDPOINT = "sseEndpoint"
|
|
|
72
74
|
private const val PROP_STREAM_ACTIVITY_MONITOR_ID = "streamActivityMonitorId"
|
|
73
75
|
private const val PROP_LATENCY_CONFIGURATION = "latencyConfiguration"
|
|
74
76
|
private const val PROP_PROFILE = "profile"
|
|
77
|
+
private const val PROP_WEBRTC: String = "webrtc"
|
|
78
|
+
private const val PROP_PLAYOUT_DELAY: String = "playoutDelayMs"
|
|
79
|
+
private const val PROP_PLAYOUT_DELAY_MIN: String = "minimum"
|
|
80
|
+
private const val PROP_PLAYOUT_DELAY_MAX: String = "maximum"
|
|
75
81
|
|
|
76
82
|
private const val ERROR_IMA_NOT_ENABLED = "Google IMA support not enabled."
|
|
77
83
|
private const val ERROR_THEOADS_NOT_ENABLED = "THEOads support not enabled."
|
|
@@ -183,10 +189,23 @@ class SourceAdapter {
|
|
|
183
189
|
drm=jsonTypedSource.optJSONObject(PROP_CONTENT_PROTECTION)?.let {
|
|
184
190
|
ContentProtectionAdapter.drmConfigurationFromJson(it)
|
|
185
191
|
},
|
|
186
|
-
profile=jsonTypedSource.optString(PROP_PROFILE)
|
|
192
|
+
profile=jsonTypedSource.optString(PROP_PROFILE),
|
|
193
|
+
webrtc=parseWebRTCOptions(jsonTypedSource)
|
|
187
194
|
)
|
|
188
195
|
}
|
|
189
196
|
|
|
197
|
+
@Throws(THEOplayerException::class)
|
|
198
|
+
private fun parseWebRTCOptions(jsonWebrtcOptions: JSONObject): WebRTCOptions? {
|
|
199
|
+
val webrtc = jsonWebrtcOptions.optJSONObject(PROP_WEBRTC)
|
|
200
|
+
val playoutDelay = webrtc?.optJSONObject(PROP_PLAYOUT_DELAY)
|
|
201
|
+
val playoutDelayMin = playoutDelay?.optInt(PROP_PLAYOUT_DELAY_MIN)
|
|
202
|
+
val playoutDelayMax = playoutDelay?.optInt(PROP_PLAYOUT_DELAY_MAX)
|
|
203
|
+
|
|
204
|
+
if (playoutDelayMin == null || playoutDelayMax == null) return null
|
|
205
|
+
|
|
206
|
+
return WebRTCOptions(playoutDelayMs = PlayoutDelay(playoutDelayMin, playoutDelayMax))
|
|
207
|
+
}
|
|
208
|
+
|
|
190
209
|
@Throws(THEOplayerException::class)
|
|
191
210
|
private fun parseTypedSource(jsonTypedSource: JSONObject, cmcdTransmissionMode: CMCDTransmissionMode? = null): TypedSource {
|
|
192
211
|
// Property `integration` will be replaced with `type`.
|
|
@@ -218,6 +237,9 @@ class SourceAdapter {
|
|
|
218
237
|
jsonTypedSource.optJSONObject(PROP_HEADERS)?.let { headersJson ->
|
|
219
238
|
tsBuilder.headers(BridgeUtils.fromJSONObjectToMap(headersJson))
|
|
220
239
|
}
|
|
240
|
+
jsonTypedSource.optJSONObject(PROP_LATENCY_CONFIGURATION)?.let {
|
|
241
|
+
tsBuilder.latencyConfiguration(parseLatencyConfiguration(it))
|
|
242
|
+
}
|
|
221
243
|
if (jsonTypedSource.has(PROP_LIVE_OFFSET)) {
|
|
222
244
|
tsBuilder.liveOffset(jsonTypedSource.getDouble(PROP_LIVE_OFFSET))
|
|
223
245
|
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
package com.theoplayer.util
|
|
2
|
+
|
|
3
|
+
import org.json.JSONObject
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Returns the double value mapped by [name], or `null` if no such mapping exists.
|
|
7
|
+
*/
|
|
8
|
+
fun JSONObject.optDoubleOrNull(name: String): Double? {
|
|
9
|
+
return if (has(name)) getDouble(name) else null
|
|
10
|
+
}
|
|
@@ -5,6 +5,7 @@ import THEOplayerSDK
|
|
|
5
5
|
|
|
6
6
|
struct CastConfig {
|
|
7
7
|
var castStrategyString: String = "manual"
|
|
8
|
+
var useExperimentalPipeline: Bool = false
|
|
8
9
|
}
|
|
9
10
|
|
|
10
11
|
extension THEOplayerRCTView {
|
|
@@ -14,12 +15,15 @@ extension THEOplayerRCTView {
|
|
|
14
15
|
if let castStrategy = castConfig["strategy"] as? String {
|
|
15
16
|
self.castConfig.castStrategyString = castStrategy
|
|
16
17
|
}
|
|
18
|
+
if let experimental = castConfig["useExperimentalPipeline"] as? Bool {
|
|
19
|
+
self.castConfig.useExperimentalPipeline = experimental
|
|
20
|
+
}
|
|
17
21
|
}
|
|
18
22
|
}
|
|
19
23
|
|
|
20
24
|
#if os(iOS)
|
|
21
25
|
func playerCastConfiguration() -> CastConfiguration? {
|
|
22
|
-
return CastConfiguration(strategy: self.castStrategy())
|
|
26
|
+
return CastConfiguration(strategy: self.castStrategy(), enableExperimentalPipeline: self.castConfig.useExperimentalPipeline)
|
|
23
27
|
}
|
|
24
28
|
|
|
25
29
|
func isCasting() -> Bool {
|
|
@@ -9,9 +9,22 @@ import THEOplayerTHEOliveIntegration
|
|
|
9
9
|
#endif
|
|
10
10
|
|
|
11
11
|
let SD_PROP_PROFILE: String = "profile"
|
|
12
|
+
let SD_PROP_WEBRTC: String = "webrtc"
|
|
13
|
+
let SD_PROP_PLAYOUT_DELAY: String = "playoutDelayMs"
|
|
14
|
+
let SD_PROP_PLAYOUT_DELAY_MIN: String = "minimum"
|
|
15
|
+
let SD_PROP_PLAYOUT_DELAY_MAX: String = "maximum"
|
|
12
16
|
|
|
13
17
|
extension THEOplayerRCTSourceDescriptionBuilder {
|
|
14
18
|
|
|
19
|
+
private static func buildWebrtcOptions(_ theoliveData: [String: Any]) -> WebrtcOptions? {
|
|
20
|
+
let webrtc = theoliveData[SD_PROP_WEBRTC] as? NSDictionary
|
|
21
|
+
let playoutDelay = webrtc?[SD_PROP_PLAYOUT_DELAY] as? NSDictionary
|
|
22
|
+
let playoutDelayMin = playoutDelay?[SD_PROP_PLAYOUT_DELAY_MIN] as? Int
|
|
23
|
+
let playoutDelayMax = playoutDelay?[SD_PROP_PLAYOUT_DELAY_MAX] as? Int
|
|
24
|
+
guard let playoutDelayMin, let playoutDelayMax else { return nil }
|
|
25
|
+
return WebrtcOptions(playoutDelayMs: PlayoutDelay(minimum: playoutDelayMin, maximum: playoutDelayMax))
|
|
26
|
+
}
|
|
27
|
+
|
|
15
28
|
/**
|
|
16
29
|
Builds a THEOplayer SourceDescription that can be passed as a source for the THEOplayer.
|
|
17
30
|
- returns: a THEOlive TypedSource.
|
|
@@ -20,7 +33,8 @@ extension THEOplayerRCTSourceDescriptionBuilder {
|
|
|
20
33
|
#if canImport(THEOplayerTHEOliveIntegration)
|
|
21
34
|
if let src = theoliveData[SD_PROP_SRC] as? String {
|
|
22
35
|
let profile = theoliveData[SD_PROP_PROFILE] as? String;
|
|
23
|
-
|
|
36
|
+
let webrtc = buildWebrtcOptions(theoliveData)
|
|
37
|
+
return TheoLiveSource(channelId: src, drm: contentProtection, profile: profile, webrtc: webrtc)
|
|
24
38
|
}
|
|
25
39
|
#endif
|
|
26
40
|
return nil
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["SourceIntegrationId","exports"],"sourceRoot":"../../../../src","sources":["api/source/SourceDescription.ts"],"mappings":";;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;
|
|
1
|
+
{"version":3,"names":["SourceIntegrationId","exports"],"sourceRoot":"../../../../src","sources":["api/source/SourceDescription.ts"],"mappings":";;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAWA;AACA;AACA;AACA;AACA;AACA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAPA,IAQYA,mBAAmB,GAAAC,OAAA,CAAAD,mBAAA,0BAAnBA,mBAAmB;EAAnBA,mBAAmB;EAAA,OAAnBA,mBAAmB;AAAA;AAI/B;AACA;AACA;AACA;AACA;AACA;AAyDA;AACA;AACA;AACA;AACA;AACA;AAmDA;AACA;AACA;AACA;AACA;AACA;AACA;AA2FA;AACA;AACA;AACA;AACA;AACA;AAsFA;AACA;AACA;AACA;AACA;AACA","ignoreList":[]}
|
|
@@ -69,7 +69,7 @@ Object.keys(_barrel6).forEach(function (key) {
|
|
|
69
69
|
}
|
|
70
70
|
});
|
|
71
71
|
});
|
|
72
|
-
var _barrel7 = require("./
|
|
72
|
+
var _barrel7 = require("./latency/barrel");
|
|
73
73
|
Object.keys(_barrel7).forEach(function (key) {
|
|
74
74
|
if (key === "default" || key === "__esModule") return;
|
|
75
75
|
if (key in exports && exports[key] === _barrel7[key]) return;
|
|
@@ -80,6 +80,17 @@ Object.keys(_barrel7).forEach(function (key) {
|
|
|
80
80
|
}
|
|
81
81
|
});
|
|
82
82
|
});
|
|
83
|
+
var _barrel8 = require("./metadata/barrel");
|
|
84
|
+
Object.keys(_barrel8).forEach(function (key) {
|
|
85
|
+
if (key === "default" || key === "__esModule") return;
|
|
86
|
+
if (key in exports && exports[key] === _barrel8[key]) return;
|
|
87
|
+
Object.defineProperty(exports, key, {
|
|
88
|
+
enumerable: true,
|
|
89
|
+
get: function () {
|
|
90
|
+
return _barrel8[key];
|
|
91
|
+
}
|
|
92
|
+
});
|
|
93
|
+
});
|
|
83
94
|
var _SourceDescription = require("./SourceDescription");
|
|
84
95
|
Object.keys(_SourceDescription).forEach(function (key) {
|
|
85
96
|
if (key === "default" || key === "__esModule") return;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_barrel","require","Object","keys","forEach","key","exports","defineProperty","enumerable","get","_barrel2","_barrel3","_barrel4","_barrel5","_barrel6","_barrel7","_SourceDescription"],"sourceRoot":"../../../../src","sources":["api/source/barrel.ts"],"mappings":"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
|
|
1
|
+
{"version":3,"names":["_barrel","require","Object","keys","forEach","key","exports","defineProperty","enumerable","get","_barrel2","_barrel3","_barrel4","_barrel5","_barrel6","_barrel7","_barrel8","_SourceDescription"],"sourceRoot":"../../../../src","sources":["api/source/barrel.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":[],"sourceRoot":"../../../../../src","sources":["api/source/latency/SourceLatencyConfiguration.ts"],"mappings":"","ignoreList":[]}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
var _SourceLatencyConfiguration = require("./SourceLatencyConfiguration");
|
|
7
|
+
Object.keys(_SourceLatencyConfiguration).forEach(function (key) {
|
|
8
|
+
if (key === "default" || key === "__esModule") return;
|
|
9
|
+
if (key in exports && exports[key] === _SourceLatencyConfiguration[key]) return;
|
|
10
|
+
Object.defineProperty(exports, key, {
|
|
11
|
+
enumerable: true,
|
|
12
|
+
get: function () {
|
|
13
|
+
return _SourceLatencyConfiguration[key];
|
|
14
|
+
}
|
|
15
|
+
});
|
|
16
|
+
});
|
|
17
|
+
//# sourceMappingURL=barrel.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_SourceLatencyConfiguration","require","Object","keys","forEach","key","exports","defineProperty","enumerable","get"],"sourceRoot":"../../../../../src","sources":["api/source/latency/barrel.ts"],"mappings":";;;;;AAAA,IAAAA,2BAAA,GAAAC,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAH,2BAAA,EAAAI,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAL,2BAAA,CAAAK,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAT,2BAAA,CAAAK,GAAA;IAAA;EAAA;AAAA","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":[],"sourceRoot":"../../../../src","sources":["api/theolive/WebrtcOptions.ts"],"mappings":"","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":"10.
|
|
1
|
+
{"version":"10.7.0","buildDate":"2025-12-19T10:48:13.465Z"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["SourceIntegrationId"],"sourceRoot":"../../../../src","sources":["api/source/SourceDescription.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;
|
|
1
|
+
{"version":3,"names":["SourceIntegrationId"],"sourceRoot":"../../../../src","sources":["api/source/SourceDescription.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAWA;AACA;AACA;AACA;AACA;AACA;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAYA,mBAAmB,0BAAnBA,mBAAmB;EAAnBA,mBAAmB;EAAA,OAAnBA,mBAAmB;AAAA;;AAI/B;AACA;AACA;AACA;AACA;AACA;;AAyDA;AACA;AACA;AACA;AACA;AACA;;AAmDA;AACA;AACA;AACA;AACA;AACA;AACA;;AA2FA;AACA;AACA;AACA;AACA;AACA;;AAsFA;AACA;AACA;AACA;AACA;AACA","ignoreList":[]}
|
|
@@ -6,6 +6,7 @@ export * from './cmcd/barrel';
|
|
|
6
6
|
export * from './drm/barrel';
|
|
7
7
|
export * from './dash/barrel';
|
|
8
8
|
export * from './hls/barrel';
|
|
9
|
+
export * from './latency/barrel';
|
|
9
10
|
export * from './metadata/barrel';
|
|
10
11
|
export * from './SourceDescription';
|
|
11
12
|
//# sourceMappingURL=barrel.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":[],"sourceRoot":"../../../../src","sources":["api/source/barrel.ts"],"mappings":";;AAAA,cAAc,cAAc;AAC5B,cAAc,oBAAoB;AAClC,cAAc,eAAe;AAC7B,cAAc,cAAc;AAC5B,cAAc,eAAe;AAC7B,cAAc,cAAc;AAC5B,cAAc,mBAAmB;AACjC,cAAc,qBAAqB","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":[],"sourceRoot":"../../../../src","sources":["api/source/barrel.ts"],"mappings":";;AAAA,cAAc,cAAc;AAC5B,cAAc,oBAAoB;AAClC,cAAc,eAAe;AAC7B,cAAc,cAAc;AAC5B,cAAc,eAAe;AAC7B,cAAc,cAAc;AAC5B,cAAc,kBAAkB;AAChC,cAAc,mBAAmB;AACjC,cAAc,qBAAqB","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":[],"sourceRoot":"../../../../../src","sources":["api/source/latency/SourceLatencyConfiguration.ts"],"mappings":"","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":[],"sourceRoot":"../../../../../src","sources":["api/source/latency/barrel.ts"],"mappings":";;AAAA,cAAc,8BAA8B","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":[],"sourceRoot":"../../../../src","sources":["api/theolive/WebrtcOptions.ts"],"mappings":"","ignoreList":[]}
|
package/lib/module/manifest.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":"10.
|
|
1
|
+
{"version":"10.7.0","buildDate":"2025-12-19T10:48:13.465Z"}
|
|
@@ -17,6 +17,14 @@ export interface CastConfiguration {
|
|
|
17
17
|
* @defaultValue `'manual'`
|
|
18
18
|
*/
|
|
19
19
|
strategy?: JoinStrategy;
|
|
20
|
+
/**
|
|
21
|
+
* A flag to enable experimental pipeline with latest features for Chromecast.
|
|
22
|
+
*
|
|
23
|
+
* @defaultValue `false`
|
|
24
|
+
*
|
|
25
|
+
* @platform ios
|
|
26
|
+
*/
|
|
27
|
+
useExperimentalPipeline?: boolean;
|
|
20
28
|
}
|
|
21
29
|
/**
|
|
22
30
|
* The join strategy, represented by a value from the following list:
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CastConfiguration.d.ts","sourceRoot":"","sources":["../../../../src/api/cast/CastConfiguration.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,MAAM,WAAW,iBAAiB;IAChC;;;;OAIG;IACH,UAAU,CAAC,EAAE,uBAAuB,CAAC;IAErC;;;;OAIG;IACH,QAAQ,CAAC,EAAE,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"CastConfiguration.d.ts","sourceRoot":"","sources":["../../../../src/api/cast/CastConfiguration.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,MAAM,WAAW,iBAAiB;IAChC;;;;OAIG;IACH,UAAU,CAAC,EAAE,uBAAuB,CAAC;IAErC;;;;OAIG;IACH,QAAQ,CAAC,EAAE,YAAY,CAAC;IAExB;;;;;;OAMG;IACH,uBAAuB,CAAC,EAAE,OAAO,CAAC;CACnC;AAED;;;;;;;;GAQG;AACH,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,QAAQ,GAAG,UAAU,CAAC;AAE1D;;;;;GAKG;AACH,MAAM,WAAW,uBAAuB;IACtC;;;;OAIG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB"}
|
|
@@ -15,6 +15,7 @@ import type { MetadataDescription } from './metadata/MetadataDescription';
|
|
|
15
15
|
import type { ServerSideAdInsertionConfiguration } from './ads/ssai/ServerSideAdInsertionConfiguration';
|
|
16
16
|
import type { AnalyticsDescription } from './analytics/AnalyticsDescription';
|
|
17
17
|
import { CmcdConfiguration } from './cmcd/CmcdConfiguration';
|
|
18
|
+
import { SourceLatencyConfiguration } from './latency/SourceLatencyConfiguration';
|
|
18
19
|
/**
|
|
19
20
|
* A type alias for a {@link TypedSource} media resource.
|
|
20
21
|
*
|
|
@@ -280,6 +281,9 @@ export interface BaseSource {
|
|
|
280
281
|
*
|
|
281
282
|
* @platform web,android
|
|
282
283
|
*
|
|
284
|
+
* @remarks
|
|
285
|
+
* <br/> - Will be overridden by {@link SourceLatencyConfiguration.targetOffset} if it is specified.
|
|
286
|
+
*
|
|
283
287
|
* @defaultValue Three times the segment's target duration.
|
|
284
288
|
*/
|
|
285
289
|
liveOffset?: number;
|
|
@@ -307,6 +311,15 @@ export interface BaseSource {
|
|
|
307
311
|
* <br/> - This setting must be `true` when using Low-Latency CMAF with ABR.
|
|
308
312
|
*/
|
|
309
313
|
lowLatency?: boolean;
|
|
314
|
+
/**
|
|
315
|
+
* The source's latency configuration.
|
|
316
|
+
*
|
|
317
|
+
* @platform web,android
|
|
318
|
+
*
|
|
319
|
+
* @remarks
|
|
320
|
+
* <br/> - Ignored for VOD playback.
|
|
321
|
+
*/
|
|
322
|
+
latencyConfiguration?: SourceLatencyConfiguration;
|
|
310
323
|
/**
|
|
311
324
|
* The configuration for controlling playback of an MPEG-DASH stream.
|
|
312
325
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SourceDescription.d.ts","sourceRoot":"","sources":["../../../../src/api/source/SourceDescription.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,kCAAkC,CAAC;AAClF,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,gCAAgC,CAAC;AAC/E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC/C,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AAC1E,OAAO,KAAK,EAAE,kCAAkC,EAAE,MAAM,+CAA+C,CAAC;AACxG,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,kCAAkC,CAAC;AAC7E,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"SourceDescription.d.ts","sourceRoot":"","sources":["../../../../src/api/source/SourceDescription.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,6 +4,7 @@ export * from './cmcd/barrel';
|
|
|
4
4
|
export * from './drm/barrel';
|
|
5
5
|
export * from './dash/barrel';
|
|
6
6
|
export * from './hls/barrel';
|
|
7
|
+
export * from './latency/barrel';
|
|
7
8
|
export * from './metadata/barrel';
|
|
8
9
|
export * from './SourceDescription';
|
|
9
10
|
//# sourceMappingURL=barrel.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"barrel.d.ts","sourceRoot":"","sources":["../../../../src/api/source/barrel.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,oBAAoB,CAAC;AACnC,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC"}
|
|
1
|
+
{"version":3,"file":"barrel.d.ts","sourceRoot":"","sources":["../../../../src/api/source/barrel.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,oBAAoB,CAAC;AACnC,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC"}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The latency configuration for managing the live offset of the player.
|
|
3
|
+
*
|
|
4
|
+
* @remarks
|
|
5
|
+
* <br/> - The player might change the latency configuration based on playback events like stalls.
|
|
6
|
+
*
|
|
7
|
+
* @category Source
|
|
8
|
+
* @public
|
|
9
|
+
*/
|
|
10
|
+
export interface SourceLatencyConfiguration {
|
|
11
|
+
/**
|
|
12
|
+
* The start of the target live window.
|
|
13
|
+
* If the live offset becomes smaller than this value, the player will slow down in order to increase the latency.
|
|
14
|
+
*
|
|
15
|
+
* @defaultValue 0.66 times the {@link targetOffset}.
|
|
16
|
+
*/
|
|
17
|
+
minimumOffset?: number;
|
|
18
|
+
/**
|
|
19
|
+
* The end of the target live window.
|
|
20
|
+
* If the live offset becomes higher than this value, the player will speed up in order to decrease the latency.
|
|
21
|
+
*
|
|
22
|
+
* @defaultValue 1.5 times the {@link targetOffset}.
|
|
23
|
+
*/
|
|
24
|
+
maximumOffset?: number;
|
|
25
|
+
/**
|
|
26
|
+
* The live offset that the player will aim for. When correcting the offset by tuning the playbackRate,
|
|
27
|
+
* the player will stop correcting when it reaches this value.
|
|
28
|
+
*
|
|
29
|
+
* @remarks
|
|
30
|
+
* <br/> - This will override the {@link BaseSource.liveOffset} value.
|
|
31
|
+
*/
|
|
32
|
+
targetOffset: number;
|
|
33
|
+
/**
|
|
34
|
+
* The live offset at which the player will automatically trigger a live seek.
|
|
35
|
+
*
|
|
36
|
+
* @defaultValue 3 times the {@link targetOffset}.
|
|
37
|
+
*/
|
|
38
|
+
forceSeekOffset?: number;
|
|
39
|
+
/**
|
|
40
|
+
* Indicates the minimum playbackRate used to slow down the player.
|
|
41
|
+
*
|
|
42
|
+
* @defaultValue `0.92`
|
|
43
|
+
*/
|
|
44
|
+
minimumPlaybackRate?: number;
|
|
45
|
+
/**
|
|
46
|
+
* Indicates the maximum playbackRate used to speed up the player.
|
|
47
|
+
*
|
|
48
|
+
* @defaultValue `1.08`
|
|
49
|
+
*/
|
|
50
|
+
maximumPlaybackRate?: number;
|
|
51
|
+
/**
|
|
52
|
+
* The amount of seconds that target latency can be temporarily increased to counteract unstable
|
|
53
|
+
* network conditions.
|
|
54
|
+
*
|
|
55
|
+
* @platform web
|
|
56
|
+
*
|
|
57
|
+
* @remarks
|
|
58
|
+
* <br/> - This only works for HESP and THEOlive streams.
|
|
59
|
+
*/
|
|
60
|
+
leniency?: number;
|
|
61
|
+
}
|
|
62
|
+
//# sourceMappingURL=SourceLatencyConfiguration.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SourceLatencyConfiguration.d.ts","sourceRoot":"","sources":["../../../../../src/api/source/latency/SourceLatencyConfiguration.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,MAAM,WAAW,0BAA0B;IACvC;;;;;OAKG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB;;;;;OAKG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB;;;;;;OAMG;IACH,YAAY,EAAE,MAAM,CAAC;IAErB;;;;OAIG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IAEzB;;;;OAIG;IACH,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAE7B;;;;OAIG;IACH,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAE7B;;;;;;;;OAQG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;CACrB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"barrel.d.ts","sourceRoot":"","sources":["../../../../../src/api/source/latency/barrel.ts"],"names":[],"mappings":"AAAA,cAAc,8BAA8B,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TheoLiveEndpoint.d.ts","sourceRoot":"","sources":["../../../../src/api/theolive/TheoLiveEndpoint.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,uBAAuB;IACtC,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"TheoLiveEndpoint.d.ts","sourceRoot":"","sources":["../../../../src/api/theolive/TheoLiveEndpoint.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhD,MAAM,WAAW,uBAAuB;IACtC,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,aAAa,CAAA;CACvB;AAED;;;;;;GAMG;AACH,MAAM,WAAW,gBAAgB;IAC/B,YAAY,CAAC,EAAE,uBAAuB,CAAC;IACvC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,iBAAiB,CAAC,EAAE,wBAAwB,CAAC;CAC9C;AAED;;GAEG;AACH,MAAM,WAAW,wBAAwB;IACvC,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE;QACT,UAAU,EAAE,MAAM,CAAC;KACpB,CAAC;IACF,SAAS,CAAC,EAAE;QACV,UAAU,EAAE,MAAM,CAAC;KACpB,CAAC;IACF,QAAQ,CAAC,EAAE;QACT,UAAU,EAAE,MAAM,CAAC;QACnB,cAAc,EAAE,MAAM,CAAC;KACxB,CAAC;CACH"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { SourceIntegrationId, TypedSource } from 'react-native-theoplayer';
|
|
2
|
+
import { WebrtcOptions } from './WebrtcOptions';
|
|
2
3
|
/**
|
|
3
4
|
* Represents a source for the THEOlive integration.
|
|
4
5
|
*
|
|
@@ -18,5 +19,9 @@ export interface TheoLiveSource extends TypedSource {
|
|
|
18
19
|
* The profile identifier is included as a query parameter in the discovery request to obtain a response specific to that profile.
|
|
19
20
|
*/
|
|
20
21
|
profile?: string;
|
|
22
|
+
/**
|
|
23
|
+
* WebRTC configuration for a THEOlive Millicast source.
|
|
24
|
+
*/
|
|
25
|
+
webrtc?: WebrtcOptions;
|
|
21
26
|
}
|
|
22
27
|
//# sourceMappingURL=TheoLiveSource.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TheoLiveSource.d.ts","sourceRoot":"","sources":["../../../../src/api/theolive/TheoLiveSource.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"TheoLiveSource.d.ts","sourceRoot":"","sources":["../../../../src/api/theolive/TheoLiveSource.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAC3E,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhD;;;;;GAKG;AACH,MAAM,WAAW,cAAe,SAAQ,WAAW;IAC/C;;OAEG;IACH,WAAW,EAAE,mBAAmB,CAAC,SAAS,CAAC;IAE3C;;OAEG;IACH,IAAI,EAAE,UAAU,CAAC;IAEjB;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;OAEG;IACH,MAAM,CAAC,EAAE,aAAa,CAAC;CAC1B"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Webrtc playout delay configuration.
|
|
3
|
+
*
|
|
4
|
+
* This is used to configure the playout delay for a Millicast Source. This hints Webrtc
|
|
5
|
+
* to increase the jitter buffer size.
|
|
6
|
+
*
|
|
7
|
+
* @category THEOlive
|
|
8
|
+
* @remark This is a hint, and factors like network jitter and audio/video sync latency affect the actual delay applied.
|
|
9
|
+
* @public
|
|
10
|
+
*/
|
|
11
|
+
export interface WebrtcPlayoutDelay {
|
|
12
|
+
minimum: number;
|
|
13
|
+
maximum: number;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* WebRTC configuration for a THEOlive Millicast source.
|
|
17
|
+
*
|
|
18
|
+
* @category THEOlive
|
|
19
|
+
* @public
|
|
20
|
+
*/
|
|
21
|
+
export interface WebrtcOptions {
|
|
22
|
+
/**
|
|
23
|
+
* Webrtc playout delay configuration for the Webrtc media.
|
|
24
|
+
*/
|
|
25
|
+
playoutDelayMs?: WebrtcPlayoutDelay;
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=WebrtcOptions.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WebrtcOptions.d.ts","sourceRoot":"","sources":["../../../../src/api/theolive/WebrtcOptions.ts"],"names":[],"mappings":"AACA;;;;;;;;;GASG;AACH,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;;;;GAKG;AACH,MAAM,WAAW,aAAa;IAC5B;;OAEG;IACH,cAAc,CAAC,EAAE,kBAAkB,CAAC;CACrC"}
|
package/package.json
CHANGED
|
@@ -43,37 +43,37 @@ Pod::Spec.new do |s|
|
|
|
43
43
|
|
|
44
44
|
# THEOplayer Dependency
|
|
45
45
|
puts "Adding THEOplayerSDK-core"
|
|
46
|
-
s.dependency "THEOplayerSDK-core", "~> 10.
|
|
46
|
+
s.dependency "THEOplayerSDK-core", "~> 10.7"
|
|
47
47
|
|
|
48
48
|
# THEOlive Dependency
|
|
49
49
|
puts "Adding THEOplayer-Integration-THEOlive"
|
|
50
|
-
s.dependency "THEOplayer-Integration-THEOlive", "~> 10.
|
|
50
|
+
s.dependency "THEOplayer-Integration-THEOlive", "~> 10.7"
|
|
51
51
|
|
|
52
52
|
# Feature based integration dependencies
|
|
53
53
|
if theofeatures.include?("GOOGLE_IMA")
|
|
54
54
|
puts "Adding THEOplayer-Integration-GoogleIMA"
|
|
55
|
-
s.dependency "THEOplayer-Integration-GoogleIMA", "~> 10.
|
|
55
|
+
s.dependency "THEOplayer-Integration-GoogleIMA", "~> 10.7"
|
|
56
56
|
end
|
|
57
57
|
|
|
58
58
|
if theofeatures.include?("CHROMECAST")
|
|
59
59
|
puts "Adding THEOplayer-Integration-GoogleCast"
|
|
60
|
-
s.ios.dependency "THEOplayer-Integration-GoogleCast", "~> 10.
|
|
60
|
+
s.ios.dependency "THEOplayer-Integration-GoogleCast", "~> 10.7"
|
|
61
61
|
end
|
|
62
62
|
|
|
63
63
|
if theofeatures.include?("THEO_ADS")
|
|
64
64
|
puts "Adding THEOplayer-Integration-THEOads"
|
|
65
|
-
s.dependency "THEOplayer-Integration-THEOads", "~> 10.
|
|
65
|
+
s.dependency "THEOplayer-Integration-THEOads", "~> 10.7"
|
|
66
66
|
end
|
|
67
67
|
|
|
68
68
|
if theofeatures.include?("MILLICAST")
|
|
69
69
|
puts "Adding THEOplayer-Integration-Millicast"
|
|
70
|
-
s.dependency "THEOplayer-Integration-Millicast", "~> 10.
|
|
70
|
+
s.dependency "THEOplayer-Integration-Millicast", "~> 10.7"
|
|
71
71
|
end
|
|
72
72
|
|
|
73
73
|
# Feature based connector dependencies
|
|
74
74
|
if theofeatures.include?("SIDELOADED_TEXTTRACKS")
|
|
75
75
|
puts "Adding THEOplayer-Connector-SideloadedSubtitle"
|
|
76
|
-
s.dependency "THEOplayer-Connector-SideloadedSubtitle", "~> 10.
|
|
76
|
+
s.dependency "THEOplayer-Connector-SideloadedSubtitle", "~> 10.7"
|
|
77
77
|
end
|
|
78
78
|
|
|
79
79
|
end
|
|
@@ -18,6 +18,15 @@ export interface CastConfiguration {
|
|
|
18
18
|
* @defaultValue `'manual'`
|
|
19
19
|
*/
|
|
20
20
|
strategy?: JoinStrategy;
|
|
21
|
+
|
|
22
|
+
/**
|
|
23
|
+
* A flag to enable experimental pipeline with latest features for Chromecast.
|
|
24
|
+
*
|
|
25
|
+
* @defaultValue `false`
|
|
26
|
+
*
|
|
27
|
+
* @platform ios
|
|
28
|
+
*/
|
|
29
|
+
useExperimentalPipeline?: boolean;
|
|
21
30
|
}
|
|
22
31
|
|
|
23
32
|
/**
|
|
@@ -15,6 +15,7 @@ import type { MetadataDescription } from './metadata/MetadataDescription';
|
|
|
15
15
|
import type { ServerSideAdInsertionConfiguration } from './ads/ssai/ServerSideAdInsertionConfiguration';
|
|
16
16
|
import type { AnalyticsDescription } from './analytics/AnalyticsDescription';
|
|
17
17
|
import { CmcdConfiguration } from './cmcd/CmcdConfiguration';
|
|
18
|
+
import { SourceLatencyConfiguration } from './latency/SourceLatencyConfiguration';
|
|
18
19
|
|
|
19
20
|
/**
|
|
20
21
|
* A type alias for a {@link TypedSource} media resource.
|
|
@@ -306,6 +307,9 @@ export interface BaseSource {
|
|
|
306
307
|
*
|
|
307
308
|
* @platform web,android
|
|
308
309
|
*
|
|
310
|
+
* @remarks
|
|
311
|
+
* <br/> - Will be overridden by {@link SourceLatencyConfiguration.targetOffset} if it is specified.
|
|
312
|
+
*
|
|
309
313
|
* @defaultValue Three times the segment's target duration.
|
|
310
314
|
*/
|
|
311
315
|
liveOffset?: number;
|
|
@@ -337,6 +341,16 @@ export interface BaseSource {
|
|
|
337
341
|
*/
|
|
338
342
|
lowLatency?: boolean;
|
|
339
343
|
|
|
344
|
+
/**
|
|
345
|
+
* The source's latency configuration.
|
|
346
|
+
*
|
|
347
|
+
* @platform web,android
|
|
348
|
+
*
|
|
349
|
+
* @remarks
|
|
350
|
+
* <br/> - Ignored for VOD playback.
|
|
351
|
+
*/
|
|
352
|
+
latencyConfiguration?: SourceLatencyConfiguration;
|
|
353
|
+
|
|
340
354
|
/**
|
|
341
355
|
* The configuration for controlling playback of an MPEG-DASH stream.
|
|
342
356
|
*
|
package/src/api/source/barrel.ts
CHANGED
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The latency configuration for managing the live offset of the player.
|
|
3
|
+
*
|
|
4
|
+
* @remarks
|
|
5
|
+
* <br/> - The player might change the latency configuration based on playback events like stalls.
|
|
6
|
+
*
|
|
7
|
+
* @category Source
|
|
8
|
+
* @public
|
|
9
|
+
*/
|
|
10
|
+
export interface SourceLatencyConfiguration {
|
|
11
|
+
/**
|
|
12
|
+
* The start of the target live window.
|
|
13
|
+
* If the live offset becomes smaller than this value, the player will slow down in order to increase the latency.
|
|
14
|
+
*
|
|
15
|
+
* @defaultValue 0.66 times the {@link targetOffset}.
|
|
16
|
+
*/
|
|
17
|
+
minimumOffset?: number;
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* The end of the target live window.
|
|
21
|
+
* If the live offset becomes higher than this value, the player will speed up in order to decrease the latency.
|
|
22
|
+
*
|
|
23
|
+
* @defaultValue 1.5 times the {@link targetOffset}.
|
|
24
|
+
*/
|
|
25
|
+
maximumOffset?: number;
|
|
26
|
+
|
|
27
|
+
/**
|
|
28
|
+
* The live offset that the player will aim for. When correcting the offset by tuning the playbackRate,
|
|
29
|
+
* the player will stop correcting when it reaches this value.
|
|
30
|
+
*
|
|
31
|
+
* @remarks
|
|
32
|
+
* <br/> - This will override the {@link BaseSource.liveOffset} value.
|
|
33
|
+
*/
|
|
34
|
+
targetOffset: number;
|
|
35
|
+
|
|
36
|
+
/**
|
|
37
|
+
* The live offset at which the player will automatically trigger a live seek.
|
|
38
|
+
*
|
|
39
|
+
* @defaultValue 3 times the {@link targetOffset}.
|
|
40
|
+
*/
|
|
41
|
+
forceSeekOffset?: number;
|
|
42
|
+
|
|
43
|
+
/**
|
|
44
|
+
* Indicates the minimum playbackRate used to slow down the player.
|
|
45
|
+
*
|
|
46
|
+
* @defaultValue `0.92`
|
|
47
|
+
*/
|
|
48
|
+
minimumPlaybackRate?: number;
|
|
49
|
+
|
|
50
|
+
/**
|
|
51
|
+
* Indicates the maximum playbackRate used to speed up the player.
|
|
52
|
+
*
|
|
53
|
+
* @defaultValue `1.08`
|
|
54
|
+
*/
|
|
55
|
+
maximumPlaybackRate?: number;
|
|
56
|
+
|
|
57
|
+
/**
|
|
58
|
+
* The amount of seconds that target latency can be temporarily increased to counteract unstable
|
|
59
|
+
* network conditions.
|
|
60
|
+
*
|
|
61
|
+
* @platform web
|
|
62
|
+
*
|
|
63
|
+
* @remarks
|
|
64
|
+
* <br/> - This only works for HESP and THEOlive streams.
|
|
65
|
+
*/
|
|
66
|
+
leniency?: number;
|
|
67
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './SourceLatencyConfiguration';
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { SourceIntegrationId, TypedSource } from 'react-native-theoplayer';
|
|
2
|
+
import { WebrtcOptions } from './WebrtcOptions';
|
|
2
3
|
|
|
3
4
|
/**
|
|
4
5
|
* Represents a source for the THEOlive integration.
|
|
@@ -21,4 +22,9 @@ export interface TheoLiveSource extends TypedSource {
|
|
|
21
22
|
* The profile identifier is included as a query parameter in the discovery request to obtain a response specific to that profile.
|
|
22
23
|
*/
|
|
23
24
|
profile?: string;
|
|
25
|
+
|
|
26
|
+
/**
|
|
27
|
+
* WebRTC configuration for a THEOlive Millicast source.
|
|
28
|
+
*/
|
|
29
|
+
webrtc?: WebrtcOptions;
|
|
24
30
|
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
|
|
2
|
+
/**
|
|
3
|
+
* Webrtc playout delay configuration.
|
|
4
|
+
*
|
|
5
|
+
* This is used to configure the playout delay for a Millicast Source. This hints Webrtc
|
|
6
|
+
* to increase the jitter buffer size.
|
|
7
|
+
*
|
|
8
|
+
* @category THEOlive
|
|
9
|
+
* @remark This is a hint, and factors like network jitter and audio/video sync latency affect the actual delay applied.
|
|
10
|
+
* @public
|
|
11
|
+
*/
|
|
12
|
+
export interface WebrtcPlayoutDelay {
|
|
13
|
+
minimum: number;
|
|
14
|
+
maximum: number;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* WebRTC configuration for a THEOlive Millicast source.
|
|
19
|
+
*
|
|
20
|
+
* @category THEOlive
|
|
21
|
+
* @public
|
|
22
|
+
*/
|
|
23
|
+
export interface WebrtcOptions {
|
|
24
|
+
/**
|
|
25
|
+
* Webrtc playout delay configuration for the Webrtc media.
|
|
26
|
+
*/
|
|
27
|
+
playoutDelayMs?: WebrtcPlayoutDelay;
|
|
28
|
+
}
|
package/src/manifest.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":"10.
|
|
1
|
+
{"version":"10.7.0","buildDate":"2025-12-19T10:48:13.465Z"}
|