react-native-theoplayer 10.6.0 → 10.6.1

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.
Files changed (40) hide show
  1. package/CHANGELOG.md +11 -0
  2. package/android/src/main/java/com/theoplayer/ReactTHEOplayerContext.kt +15 -0
  3. package/android/src/main/java/com/theoplayer/latency/LatencyConfiguration.kt +7 -6
  4. package/android/src/main/java/com/theoplayer/source/SourceAdapter.kt +3 -0
  5. package/android/src/main/java/com/theoplayer/util/JsonExtensions.kt +10 -0
  6. package/ios/casting/THEOplayerRCTView+CastConfig.swift +5 -1
  7. package/lib/commonjs/api/source/SourceDescription.js.map +1 -1
  8. package/lib/commonjs/api/source/barrel.js +12 -1
  9. package/lib/commonjs/api/source/barrel.js.map +1 -1
  10. package/lib/commonjs/api/source/latency/SourceLatencyConfiguration.js +2 -0
  11. package/lib/commonjs/api/source/latency/SourceLatencyConfiguration.js.map +1 -0
  12. package/lib/commonjs/api/source/latency/barrel.js +17 -0
  13. package/lib/commonjs/api/source/latency/barrel.js.map +1 -0
  14. package/lib/commonjs/manifest.json +1 -1
  15. package/lib/module/api/source/SourceDescription.js.map +1 -1
  16. package/lib/module/api/source/barrel.js +1 -0
  17. package/lib/module/api/source/barrel.js.map +1 -1
  18. package/lib/module/api/source/latency/SourceLatencyConfiguration.js +2 -0
  19. package/lib/module/api/source/latency/SourceLatencyConfiguration.js.map +1 -0
  20. package/lib/module/api/source/latency/barrel.js +4 -0
  21. package/lib/module/api/source/latency/barrel.js.map +1 -0
  22. package/lib/module/manifest.json +1 -1
  23. package/lib/typescript/api/cast/CastConfiguration.d.ts +8 -0
  24. package/lib/typescript/api/cast/CastConfiguration.d.ts.map +1 -1
  25. package/lib/typescript/api/source/SourceDescription.d.ts +13 -0
  26. package/lib/typescript/api/source/SourceDescription.d.ts.map +1 -1
  27. package/lib/typescript/api/source/barrel.d.ts +1 -0
  28. package/lib/typescript/api/source/barrel.d.ts.map +1 -1
  29. package/lib/typescript/api/source/latency/SourceLatencyConfiguration.d.ts +62 -0
  30. package/lib/typescript/api/source/latency/SourceLatencyConfiguration.d.ts.map +1 -0
  31. package/lib/typescript/api/source/latency/barrel.d.ts +2 -0
  32. package/lib/typescript/api/source/latency/barrel.d.ts.map +1 -0
  33. package/package.json +1 -1
  34. package/react-native-theoplayer.podspec +7 -7
  35. package/src/api/cast/CastConfiguration.ts +9 -0
  36. package/src/api/source/SourceDescription.ts +14 -0
  37. package/src/api/source/barrel.ts +1 -0
  38. package/src/api/source/latency/SourceLatencyConfiguration.ts +67 -0
  39. package/src/api/source/latency/barrel.ts +1 -0
  40. package/src/manifest.json +1 -1
package/CHANGELOG.md CHANGED
@@ -5,6 +5,16 @@ 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.6.1] - 25-12-18
9
+
10
+ ### Fixed
11
+
12
+ - 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.
13
+
14
+ ### Added
15
+
16
+ - Added `useExperimentalPipeline` to `CastConfiguration` for iOS, that controls the usage of an experimental, alternative implementation of the chromecast pipeline with a different feature set.
17
+
8
18
  ## [10.6.0] - 25-12-02
9
19
 
10
20
  ### Added
@@ -16,6 +26,7 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.
16
26
  ### Added
17
27
 
18
28
  - Support for contentProtection query parameters on THEOlive sources.
29
+ - Added `LatencyConfiguration` to `SourceDescription` for Android and Web.
19
30
 
20
31
  ### Fixed
21
32
 
@@ -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
- setMinimumOffset(jsonLatency.optDouble(PROP_MINIMUM_OFFSET))
16
- setMaximumOffset(jsonLatency.optDouble(PROP_MAXIMUM_OFFSET))
17
- setTargetOffset(jsonLatency.optDouble(PROP_TARGET_OFFSET))
18
- setForceSeekOffset(jsonLatency.optDouble(PROP_FORCE_SEEK_OFFSET))
19
- setMinimumPlaybackRate(jsonLatency.optDouble(PROP_MINIMUM_PLAYBACK_RATE))
20
- setMaximumPlaybackRate(jsonLatency.optDouble(PROP_MAXIMUM_PLAYBACK_RATE))
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
  }
@@ -218,6 +218,9 @@ class SourceAdapter {
218
218
  jsonTypedSource.optJSONObject(PROP_HEADERS)?.let { headersJson ->
219
219
  tsBuilder.headers(BridgeUtils.fromJSONObjectToMap(headersJson))
220
220
  }
221
+ jsonTypedSource.optJSONObject(PROP_LATENCY_CONFIGURATION)?.let {
222
+ tsBuilder.latencyConfiguration(parseLatencyConfiguration(it))
223
+ }
221
224
  if (jsonTypedSource.has(PROP_LIVE_OFFSET)) {
222
225
  tsBuilder.liveOffset(jsonTypedSource.getDouble(PROP_LIVE_OFFSET))
223
226
  }
@@ -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 {
@@ -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;AAUA;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;AAyEA;AACA;AACA;AACA;AACA;AACA","ignoreList":[]}
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("./metadata/barrel");
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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","ignoreList":[]}
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,2 @@
1
+ "use strict";
2
+ //# sourceMappingURL=SourceLatencyConfiguration.js.map
@@ -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":[]}
@@ -1 +1 @@
1
- {"version":"10.6.0","buildDate":"2025-12-02T17:49:55.245Z"}
1
+ {"version":"10.6.1","buildDate":"2025-12-18T12:17:06.899Z"}
@@ -1 +1 @@
1
- {"version":3,"names":["SourceIntegrationId"],"sourceRoot":"../../../../src","sources":["api/source/SourceDescription.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAUA;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;;AAyEA;AACA;AACA;AACA;AACA;AACA","ignoreList":[]}
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,2 @@
1
+ "use strict";
2
+ //# sourceMappingURL=SourceLatencyConfiguration.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sourceRoot":"../../../../../src","sources":["api/source/latency/SourceLatencyConfiguration.ts"],"mappings":"","ignoreList":[]}
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+
3
+ export * from './SourceLatencyConfiguration';
4
+ //# sourceMappingURL=barrel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sourceRoot":"../../../../../src","sources":["api/source/latency/barrel.ts"],"mappings":";;AAAA,cAAc,8BAA8B","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":"10.6.0","buildDate":"2025-12-02T17:49:55.245Z"}
1
+ {"version":"10.6.1","buildDate":"2025-12-18T12:17:06.899Z"}
@@ -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;CACzB;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"}
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":"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"}
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,2 @@
1
+ export * from './SourceLatencyConfiguration';
2
+ //# sourceMappingURL=barrel.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"barrel.d.ts","sourceRoot":"","sources":["../../../../../src/api/source/latency/barrel.ts"],"names":[],"mappings":"AAAA,cAAc,8BAA8B,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-native-theoplayer",
3
- "version": "10.6.0",
3
+ "version": "10.6.1",
4
4
  "description": "A THEOplayer video component for react-native.",
5
5
  "main": "lib/commonjs/index",
6
6
  "module": "lib/module/index",
@@ -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.5"
46
+ s.dependency "THEOplayerSDK-core", "~> 10.6"
47
47
 
48
48
  # THEOlive Dependency
49
49
  puts "Adding THEOplayer-Integration-THEOlive"
50
- s.dependency "THEOplayer-Integration-THEOlive", "~> 10.5"
50
+ s.dependency "THEOplayer-Integration-THEOlive", "~> 10.6"
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.5"
55
+ s.dependency "THEOplayer-Integration-GoogleIMA", "~> 10.6"
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.5"
60
+ s.ios.dependency "THEOplayer-Integration-GoogleCast", "~> 10.6"
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.5"
65
+ s.dependency "THEOplayer-Integration-THEOads", "~> 10.6"
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.5"
70
+ s.dependency "THEOplayer-Integration-Millicast", "~> 10.6"
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.5"
76
+ s.dependency "THEOplayer-Connector-SideloadedSubtitle", "~> 10.6"
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
  *
@@ -4,5 +4,6 @@ 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';
@@ -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';
package/src/manifest.json CHANGED
@@ -1 +1 @@
1
- {"version":"10.6.0","buildDate":"2025-12-02T17:49:55.245Z"}
1
+ {"version":"10.6.1","buildDate":"2025-12-18T12:17:06.899Z"}