react-native-theoplayer 11.2.1 → 11.3.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.
Files changed (78) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/android/build.gradle +2 -2
  3. package/android/src/main/java/com/theoplayer/PlayerConfigAdapter.kt +30 -0
  4. package/android/src/main/java/com/theoplayer/abr/ABRConfigurationAdapter.kt +21 -0
  5. package/android/src/main/java/com/theoplayer/source/SourceAdapter.kt +38 -1
  6. package/android/src/main/java/com/theoplayer/track/TrackListAdapter.kt +2 -0
  7. package/ios/THEOplayerRCTSourceDescriptionBuilder.swift +31 -6
  8. package/ios/THEOplayerRCTTrackMetadataAggregator.swift +3 -0
  9. package/ios/THEOplayerRCTView.swift +3 -0
  10. package/ios/cmcd/THEOplayerRCTView+CmcdConfig.swift +36 -0
  11. package/lib/commonjs/api/barrel.js +36 -25
  12. package/lib/commonjs/api/barrel.js.map +1 -1
  13. package/lib/commonjs/api/cmcd/CmcdConfiguration.js +67 -0
  14. package/lib/commonjs/api/cmcd/CmcdConfiguration.js.map +1 -0
  15. package/lib/commonjs/api/cmcd/barrel.js.map +1 -0
  16. package/lib/commonjs/api/source/barrel.js +5 -16
  17. package/lib/commonjs/api/source/barrel.js.map +1 -1
  18. package/lib/commonjs/api/track/TextTrack.js.map +1 -1
  19. package/lib/commonjs/internal/adapter/THEOplayerWebAdapter.js +13 -4
  20. package/lib/commonjs/internal/adapter/THEOplayerWebAdapter.js.map +1 -1
  21. package/lib/commonjs/internal/adapter/web/TrackUtils.js +2 -0
  22. package/lib/commonjs/internal/adapter/web/TrackUtils.js.map +1 -1
  23. package/lib/commonjs/manifest.json +1 -1
  24. package/lib/module/api/barrel.js +1 -0
  25. package/lib/module/api/barrel.js.map +1 -1
  26. package/lib/module/api/cmcd/CmcdConfiguration.js +67 -0
  27. package/lib/module/api/cmcd/CmcdConfiguration.js.map +1 -0
  28. package/lib/module/api/cmcd/barrel.js.map +1 -0
  29. package/lib/module/api/source/barrel.js +0 -1
  30. package/lib/module/api/source/barrel.js.map +1 -1
  31. package/lib/module/api/track/TextTrack.js.map +1 -1
  32. package/lib/module/internal/adapter/THEOplayerWebAdapter.js +13 -4
  33. package/lib/module/internal/adapter/THEOplayerWebAdapter.js.map +1 -1
  34. package/lib/module/internal/adapter/web/TrackUtils.js +2 -0
  35. package/lib/module/internal/adapter/web/TrackUtils.js.map +1 -1
  36. package/lib/module/manifest.json +1 -1
  37. package/lib/typescript/api/abr/ABRConfiguration.d.ts +2 -2
  38. package/lib/typescript/api/barrel.d.ts +1 -0
  39. package/lib/typescript/api/barrel.d.ts.map +1 -1
  40. package/lib/typescript/api/cmcd/CmcdConfiguration.d.ts +166 -0
  41. package/lib/typescript/api/cmcd/CmcdConfiguration.d.ts.map +1 -0
  42. package/lib/typescript/api/cmcd/barrel.d.ts.map +1 -0
  43. package/lib/typescript/api/config/PlayerConfiguration.d.ts +10 -0
  44. package/lib/typescript/api/config/PlayerConfiguration.d.ts.map +1 -1
  45. package/lib/typescript/api/source/SourceDescription.d.ts +2 -2
  46. package/lib/typescript/api/source/SourceDescription.d.ts.map +1 -1
  47. package/lib/typescript/api/source/barrel.d.ts +0 -1
  48. package/lib/typescript/api/source/barrel.d.ts.map +1 -1
  49. package/lib/typescript/api/track/TextTrack.d.ts +4 -0
  50. package/lib/typescript/api/track/TextTrack.d.ts.map +1 -1
  51. package/lib/typescript/internal/adapter/THEOplayerWebAdapter.d.ts.map +1 -1
  52. package/lib/typescript/internal/adapter/web/TrackUtils.d.ts.map +1 -1
  53. package/package.json +1 -1
  54. package/react-native-theoplayer.podspec +1 -1
  55. package/src/api/abr/ABRConfiguration.ts +2 -2
  56. package/src/api/barrel.ts +1 -0
  57. package/src/api/cmcd/CmcdConfiguration.ts +175 -0
  58. package/src/api/config/PlayerConfiguration.ts +11 -0
  59. package/src/api/source/SourceDescription.ts +2 -2
  60. package/src/api/source/barrel.ts +0 -1
  61. package/src/api/track/TextTrack.ts +5 -0
  62. package/src/internal/adapter/THEOplayerWebAdapter.ts +9 -4
  63. package/src/internal/adapter/web/TrackUtils.ts +2 -1
  64. package/src/manifest.json +1 -1
  65. package/lib/commonjs/api/source/cmcd/CmcdConfiguration.js +0 -27
  66. package/lib/commonjs/api/source/cmcd/CmcdConfiguration.js.map +0 -1
  67. package/lib/commonjs/api/source/cmcd/barrel.js.map +0 -1
  68. package/lib/module/api/source/cmcd/CmcdConfiguration.js +0 -24
  69. package/lib/module/api/source/cmcd/CmcdConfiguration.js.map +0 -1
  70. package/lib/module/api/source/cmcd/barrel.js.map +0 -1
  71. package/lib/typescript/api/source/cmcd/CmcdConfiguration.d.ts +0 -83
  72. package/lib/typescript/api/source/cmcd/CmcdConfiguration.d.ts.map +0 -1
  73. package/lib/typescript/api/source/cmcd/barrel.d.ts.map +0 -1
  74. package/src/api/source/cmcd/CmcdConfiguration.ts +0 -88
  75. /package/lib/commonjs/api/{source/cmcd → cmcd}/barrel.js +0 -0
  76. /package/lib/module/api/{source/cmcd → cmcd}/barrel.js +0 -0
  77. /package/lib/typescript/api/{source/cmcd → cmcd}/barrel.d.ts +0 -0
  78. /package/src/api/{source/cmcd → cmcd}/barrel.ts +0 -0
package/CHANGELOG.md CHANGED
@@ -5,6 +5,20 @@ 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
+ ## [Unreleased]
9
+
10
+ ## [11.3.0] - 26-06-18
11
+
12
+ ### Added
13
+
14
+ - Added Android support for `ABRConfiguration.preferredMaximumResolution`, mirroring the existing iOS behaviour. Set to `(0,0)` to remove the cap.
15
+ - Added basic support for CMCD event mode reporting of DRM and ad events.
16
+ - Added bridging of the `hlsDateRange` property from `PlayerConfiguration` to Android's `THEOplayerConfig`.
17
+
18
+ ### Fixed
19
+
20
+ - Fixed an issue on Android where `GoogleImaConfiguration.sessionId` was not properly passed.
21
+
8
22
  ## [11.2.1] - 26-06-09
9
23
 
10
24
  ### Fixed
@@ -126,8 +126,8 @@ repositories {
126
126
  mavenLocal()
127
127
  }
128
128
 
129
- // The minimum supported THEOplayer version is 11.4.0
130
- def theoVersion = safeExtGet('THEOplayer_sdk', '[11.4.0, 12.0.0)')
129
+ // The minimum supported THEOplayer version is 11.5.0
130
+ def theoVersion = safeExtGet('THEOplayer_sdk', '[11.5.0, 12.0.0)')
131
131
  def theoMediaSessionVersion = safeExtGet('THEOplayer_mediasession', '[11.0.0, 12.0.0)')
132
132
  def theoAdsWrapperVersion = "11.0.0"
133
133
  def coroutinesVersion = safeExtGet('coroutinesVersion', '1.10.2')
@@ -8,6 +8,8 @@ import com.theoplayer.android.api.THEOplayerConfig
8
8
  import com.theoplayer.android.api.THEOplayerGlobal
9
9
  import com.theoplayer.android.api.cast.CastStrategy
10
10
  import com.theoplayer.android.api.cast.CastConfiguration
11
+ import com.theoplayer.android.api.cmcd.CMCDConfiguration
12
+ import com.theoplayer.android.api.cmcd.CMCDEndpointConfiguration
11
13
  import com.theoplayer.android.api.pip.PipConfiguration
12
14
  import com.theoplayer.android.api.player.NetworkConfiguration
13
15
  import com.theoplayer.android.api.theolive.THEOLiveConfig
@@ -42,9 +44,15 @@ private const val PROP_THEOLIVE_CONFIG = "theoLive"
42
44
  private const val PROP_THEOLIVE_EXTERNAL_SESSION_ID = "externalSessionId"
43
45
  private const val PROP_THEOLIVE_ANALYTICS_DISABLED = "analyticsDisabled"
44
46
  private const val PROP_THEOLIVE_DISCOVERY_URL = "discoveryUrl"
47
+ private const val PROP_HLS_DATERANGE = "hlsDateRange"
45
48
  private const val PROP_MULTIMEDIA_TUNNELING_ENABLED = "tunnelingEnabled"
46
49
  private const val PROP_DEBUG_LOGS_ENABLED = "debugLogsEnabled"
47
50
  private const val PROP_SYSTEM_CAPTION_STYLE = "useSystemCaptionStyle"
51
+ private const val PROP_CMCD = "cmcd"
52
+ private const val PROP_CMCD_EXTERNAL_SESSION_ID = "externalSessionId"
53
+ private const val PROP_CMCD_USER_ID = "userId"
54
+ private const val PROP_CMCD_EVENT_ENDPOINTS = "eventEndpoints"
55
+ private const val PROP_CMCD_ENDPOINT_URL = "url"
48
56
 
49
57
 
50
58
  class PlayerConfigAdapter(private val configProps: ReadableMap?) {
@@ -82,12 +90,18 @@ class PlayerConfigAdapter(private val configProps: ReadableMap?) {
82
90
  pip(PipConfiguration.Builder().build())
83
91
  // Opt-out for auto-integrations for now
84
92
  autoIntegrations(false)
93
+ if (hasKey(PROP_HLS_DATERANGE)) {
94
+ hlsDateRange(getBoolean(PROP_HLS_DATERANGE))
95
+ }
85
96
  if (hasKey(PROP_MULTIMEDIA_TUNNELING_ENABLED)) {
86
97
  tunnelingEnabled(getBoolean(PROP_MULTIMEDIA_TUNNELING_ENABLED))
87
98
  }
88
99
  if (hasKey(PROP_SYSTEM_CAPTION_STYLE)) {
89
100
  useSystemCaptionStyle(getBoolean(PROP_SYSTEM_CAPTION_STYLE))
90
101
  }
102
+ if (hasKey(PROP_CMCD)) {
103
+ cmcd(cmcdConfig())
104
+ }
91
105
  }
92
106
  }.build()
93
107
  }
@@ -241,6 +255,22 @@ class PlayerConfigAdapter(private val configProps: ReadableMap?) {
241
255
  return MediaSessionConfigAdapter.fromProps(configProps?.getMap(PROP_MEDIA_CONTROL))
242
256
  }
243
257
 
258
+ private fun cmcdConfig(): CMCDConfiguration {
259
+ val config = configProps?.getMap(PROP_CMCD)
260
+ val endpoints = config?.getArray(PROP_CMCD_EVENT_ENDPOINTS)?.let { arr ->
261
+ (0 until arr.size()).mapNotNull { i ->
262
+ arr.getMap(i)?.getString(PROP_CMCD_ENDPOINT_URL)?.let { url ->
263
+ CMCDEndpointConfiguration(url = url)
264
+ }
265
+ }
266
+ }
267
+ return CMCDConfiguration(
268
+ externalSessionId = config?.getString(PROP_CMCD_EXTERNAL_SESSION_ID),
269
+ userId = config?.getString(PROP_CMCD_USER_ID),
270
+ eventEndpoints = endpoints
271
+ )
272
+ }
273
+
244
274
  private fun theoLiveConfig (): THEOLiveConfig {
245
275
  val config = configProps?.getMap(PROP_THEOLIVE_CONFIG)
246
276
  return THEOLiveConfig.Builder(
@@ -1,5 +1,6 @@
1
1
  package com.theoplayer.abr
2
2
 
3
+ import android.util.Size
3
4
  import com.facebook.react.bridge.ReadableMap
4
5
  import com.theoplayer.android.api.abr.AbrStrategyConfiguration
5
6
  import com.theoplayer.android.api.abr.AbrStrategyMetadata
@@ -12,6 +13,9 @@ object ABRConfigurationAdapter {
12
13
  private const val PROP_METADATA = "metadata"
13
14
  private const val PROP_TYPE = "type"
14
15
  private const val PROP_BITRATE = "bitrate"
16
+ private const val PROP_PREFERRED_MAXIMUM_RESOLUTION = "preferredMaximumResolution"
17
+ private const val PROP_WIDTH = "width"
18
+ private const val PROP_HEIGHT = "height"
15
19
 
16
20
  fun applyABRConfigurationFromProps(player: Player?, abrProps: ReadableMap?) {
17
21
  if (abrProps == null || player == null) {
@@ -20,6 +24,11 @@ object ABRConfigurationAdapter {
20
24
  if (abrProps.hasKey(PROP_TARGET_BUFFER)) {
21
25
  player.abr.targetBuffer = abrProps.getInt(PROP_TARGET_BUFFER)
22
26
  }
27
+ // (0,0) is the documented sentinel for "no cap" and maps to a null Size on the native SDK.
28
+ val preferredMaximumResolutionProps = abrProps.getMap(PROP_PREFERRED_MAXIMUM_RESOLUTION)
29
+ if (preferredMaximumResolutionProps != null) {
30
+ player.abr.preferredMaximumResolution = preferredMaximumResolutionFromProps(preferredMaximumResolutionProps)
31
+ }
23
32
  // Strategy can be either a string or an object
24
33
  try {
25
34
  val abrStrategyPropsString = abrProps.getString(PROP_STRATEGY)
@@ -50,6 +59,18 @@ object ABRConfigurationAdapter {
50
59
  }
51
60
  }
52
61
 
62
+ private fun preferredMaximumResolutionFromProps(props: ReadableMap?): Size? {
63
+ if (props == null || !props.hasKey(PROP_WIDTH) || !props.hasKey(PROP_HEIGHT)) {
64
+ return null
65
+ }
66
+ val width = props.getDouble(PROP_WIDTH).toInt()
67
+ val height = props.getDouble(PROP_HEIGHT).toInt()
68
+ if (width <= 0 || height <= 0) {
69
+ return null
70
+ }
71
+ return Size(width, height)
72
+ }
73
+
53
74
  private fun abrMetadataFromProps(props: ReadableMap?): AbrStrategyMetadata? {
54
75
  if (props == null) {
55
76
  return null
@@ -20,6 +20,8 @@ import com.theoplayer.android.api.player.track.texttrack.TextTrackKind
20
20
  import com.theoplayer.android.api.source.metadata.ChromecastMetadataImage
21
21
  import com.theoplayer.BuildConfig
22
22
  import com.theoplayer.android.api.ads.theoads.TheoAdsLayoutOverride
23
+ import com.theoplayer.android.api.cmcd.CMCDEndpointConfiguration
24
+ import com.theoplayer.android.api.cmcd.CMCDSourceConfiguration
23
25
  import com.theoplayer.android.api.cmcd.CMCDTransmissionMode
24
26
  import com.theoplayer.android.api.error.ErrorCode
25
27
  import com.theoplayer.android.api.source.AdIntegration
@@ -94,6 +96,11 @@ private const val TYPE_MILLICAST = "millicast"
94
96
 
95
97
  private const val PROP_CMCD = "cmcd"
96
98
  private const val CMCD_TRANSMISSION_MODE = "transmissionMode"
99
+ private const val CMCD_SESSION_ID = "sessionID"
100
+ private const val CMCD_EXTERNAL_SESSION_ID = "externalSessionId"
101
+ private const val CMCD_USER_ID = "userId"
102
+ private const val CMCD_EVENT_ENDPOINTS = "eventEndpoints"
103
+ private const val CMCD_ENDPOINT_URL = "url"
97
104
 
98
105
  class SourceAdapter {
99
106
  private val gson = Gson()
@@ -175,6 +182,11 @@ class SourceAdapter {
175
182
  if (metadataDescription != null) {
176
183
  builder.metadata(metadataDescription)
177
184
  }
185
+ if (jsonSourceObject.has(PROP_CMCD)) {
186
+ parseCmcdSourceConfiguration(jsonSourceObject.getJSONObject(PROP_CMCD))?.let {
187
+ builder.cmcd(it)
188
+ }
189
+ }
178
190
  return builder.build()
179
191
  } catch (e: JSONException) {
180
192
  e.printStackTrace()
@@ -464,7 +476,10 @@ class SourceAdapter {
464
476
  return BridgeUtils.fromJSONObjectToBridge(JSONObject(gson.toJson(typedSource)))
465
477
  }
466
478
 
467
- private fun parseCmcdTransmissionMode(cmcdConfiguration : JSONObject) : CMCDTransmissionMode {
479
+ private fun parseCmcdTransmissionMode(cmcdConfiguration : JSONObject) : CMCDTransmissionMode? {
480
+ if (!cmcdConfiguration.has(CMCD_TRANSMISSION_MODE)) {
481
+ return null
482
+ }
468
483
  try {
469
484
  val transmissionMode = cmcdConfiguration.optInt(CMCD_TRANSMISSION_MODE)
470
485
  if (transmissionMode == CmcdTransmissionMode.QUERY_ARGUMENT.ordinal) {
@@ -476,4 +491,26 @@ class SourceAdapter {
476
491
  return CMCDTransmissionMode.HTTP_HEADER
477
492
  }
478
493
  }
494
+
495
+ private fun parseCmcdSourceConfiguration(cmcdJson: JSONObject): CMCDSourceConfiguration? {
496
+ val sessionId = cmcdJson.optString(CMCD_SESSION_ID, null)
497
+ val externalSessionId = cmcdJson.optString(CMCD_EXTERNAL_SESSION_ID, null)
498
+ val userId = cmcdJson.optString(CMCD_USER_ID, null)
499
+ val endpoints = cmcdJson.optJSONArray(CMCD_EVENT_ENDPOINTS)?.let { arr ->
500
+ (0 until arr.length()).mapNotNull { i ->
501
+ arr.optJSONObject(i)?.optString(CMCD_ENDPOINT_URL)?.let { url ->
502
+ CMCDEndpointConfiguration(url = url)
503
+ }
504
+ }
505
+ }
506
+ if (sessionId == null && externalSessionId == null && userId == null && endpoints == null) {
507
+ return null
508
+ }
509
+ return CMCDSourceConfiguration(
510
+ sessionId = sessionId,
511
+ externalSessionId = externalSessionId,
512
+ userId = userId,
513
+ eventEndpoints = endpoints
514
+ )
515
+ }
479
516
  }
@@ -26,6 +26,7 @@ private const val PROP_NAME = "name"
26
26
  private const val PROP_ENABLED = "enabled"
27
27
  private const val PROP_SRC = "src"
28
28
  private const val PROP_FORCED = "forced"
29
+ private const val PROP_IN_BAND_METADATA_TRACK_DISPATCH_TYPE = "inBandMetadataTrackDispatchType"
29
30
  private const val PROP_CAPTION_CHANNEL = "captionChannel"
30
31
  private const val PROP_AUDIO_SAMPLING_RATE = "audioSamplingRate"
31
32
  private const val PROP_BANDWIDTH = "bandwidth"
@@ -71,6 +72,7 @@ object TrackListAdapter {
71
72
  textTrackPayload.putBoolean(PROP_FORCED, textTrack.isForced)
72
73
 
73
74
  // THEOplayer v10.13+
75
+ textTrackPayload.putString(PROP_IN_BAND_METADATA_TRACK_DISPATCH_TYPE, textTrack.inBandMetadataTrackDispatchType ?: "")
74
76
  textTrack.captionChannel?.let { textTrackPayload.putInt(PROP_CAPTION_CHANNEL, it) }
75
77
 
76
78
  // Optionally pass cue list.
@@ -64,6 +64,7 @@ let SD_PROP_INITIALIZATION_DELAY: String = "initializationDelay"
64
64
  let SD_PROP_HLS_DATE_RANGE: String = "hlsDateRange"
65
65
  let SD_PROP_BREAK_MANIFEST_URL: String = "breakManifestUrl"
66
66
  let SD_PROP_CMCD: String = "cmcd"
67
+ let SD_PROP_TRANSMISSION_MODE: String = "transmissionMode"
67
68
  let SD_PROP_QUERY_PARAMETERS: String = "queryParameters"
68
69
 
69
70
  let EXTENSION_HLS: String = ".m3u8"
@@ -167,11 +168,15 @@ class THEOplayerRCTSourceDescriptionBuilder {
167
168
  }
168
169
 
169
170
  // 6. configure CMCD
170
- let cmcd = sourceData[SD_PROP_CMCD] as? [String:Any]
171
- if cmcd != nil {
172
- typedSources.forEach { typedSource in
173
- typedSource.cmcd = true;
171
+ var cmcdSourceConfig: CMCDSourceConfiguration? = nil
172
+ if let cmcd = sourceData[SD_PROP_CMCD] as? [String:Any] {
173
+ let requestModeEnabled = cmcd[SD_PROP_TRANSMISSION_MODE] != nil
174
+ if requestModeEnabled {
175
+ typedSources.forEach { typedSource in
176
+ typedSource.cmcd = true
177
+ }
174
178
  }
179
+ cmcdSourceConfig = THEOplayerRCTSourceDescriptionBuilder.buildCmcdSourceConfiguration(cmcd)
175
180
  }
176
181
 
177
182
  // 7. construct the SourceDescription
@@ -179,13 +184,33 @@ class THEOplayerRCTSourceDescriptionBuilder {
179
184
  textTracks: textTrackDescriptions,
180
185
  ads: adsDescriptions,
181
186
  poster: poster,
182
- metadata: metadataDescription)
183
-
187
+ metadata: metadataDescription,
188
+ cmcdConfiguration: cmcdSourceConfig)
189
+
184
190
  return (sourceDescription, metadataAndChapterTrackDescriptions)
185
191
  }
186
192
 
187
193
  // MARK: Private build methods
188
194
 
195
+ private static func buildCmcdSourceConfiguration(_ cmcdData: [String:Any]) -> CMCDSourceConfiguration? {
196
+ let sessionId = cmcdData["sessionID"] as? String
197
+ let externalSessionId = cmcdData["externalSessionId"] as? String
198
+ let userId = cmcdData["userId"] as? String
199
+ let endpoints: [CMCDEndpointConfiguration]? = (cmcdData["eventEndpoints"] as? [[String: Any]])?.compactMap { dict in
200
+ guard let url = dict["url"] as? String else { return nil }
201
+ return CMCDEndpointConfiguration(url: url)
202
+ }
203
+ if sessionId == nil && externalSessionId == nil && userId == nil && endpoints == nil {
204
+ return nil
205
+ }
206
+ return CMCDSourceConfiguration(
207
+ sessionId: sessionId,
208
+ externalSessionId: externalSessionId,
209
+ userId: userId,
210
+ eventEndpoints: endpoints
211
+ )
212
+ }
213
+
189
214
  /**
190
215
  Creates a THEOplayer TypedSource. This requires a source property for non SSAI strreams (either as a string or as an object contiaining a src property). For SSAI streams the TypeSource can be created from the ssai property.
191
216
  - returns: a THEOplayer TypedSource. In case of SSAI we support GoogleDAITypedSource with GoogleDAIVodConfiguration or GoogleDAILiveConfiguration
@@ -29,6 +29,7 @@ let PROP_CUE_CONTENT: String = "content"
29
29
  let PROP_CUE_CUSTOM_ATTRIBUTES: String = "customAttributes"
30
30
  let PROP_SRC: String = "src"
31
31
  let PROP_FORCED: String = "forced"
32
+ let PROP_IN_BAND_METADATA_TRACK_DISPATCH_TYPE: String = "inBandMetadataTrackDispatchType"
32
33
  let PROP_START_DATE: String = "startDate"
33
34
  let PROP_END_DATE: String = "endDate"
34
35
  let PROP_ATTRIBUTE_CLASS: String = "class"
@@ -80,6 +81,7 @@ class THEOplayerRCTTrackMetadataAggregator {
80
81
  entry[PROP_TYPE] = textTrack.type
81
82
  entry[PROP_SRC] = textTrack.src
82
83
  entry[PROP_FORCED] = textTrack.forced
84
+ entry[PROP_IN_BAND_METADATA_TRACK_DISPATCH_TYPE] = textTrack.inBandMetadataTrackDispatchType
83
85
  // process cues when texttrack contains them
84
86
  if !textTrack.cues.isEmpty {
85
87
  var cueList: [[String:Any]] = []
@@ -327,6 +329,7 @@ class THEOplayerRCTTrackMetadataAggregator {
327
329
  track[PROP_LABEL] = trackDescription.label ?? "no label"
328
330
  track[PROP_TYPE] = "webvtt"
329
331
  track[PROP_SRC] = trackDescription.src.absoluteString
332
+ track[PROP_IN_BAND_METADATA_TRACK_DISPATCH_TYPE] = ""
330
333
  var cueList: [[String:Any]] = []
331
334
  var cueIndex = 0
332
335
  for c in cues {
@@ -48,6 +48,7 @@ public class THEOplayerRCTView: UIView {
48
48
  var castConfig = CastConfig()
49
49
  var uiConfig = UIConfig()
50
50
  var theoliveConfig = THEOliveConfig()
51
+ var cmcdConfig = CmcdConfig()
51
52
 
52
53
  public var bypassDropInstanceOnReactLifecycle = false // controls superView detaching behaviour
53
54
 
@@ -232,6 +233,7 @@ public class THEOplayerRCTView: UIView {
232
233
  config.hlsDateRange = self.hlsDateRange
233
234
  config.license = self.license
234
235
  config.licenseUrl = self.licenseUrl
236
+ config.cmcd = self.playerCmcdConfiguration()
235
237
  self.player = THEOplayer(configuration: config.build())
236
238
 
237
239
  self.initAdsIntegration()
@@ -322,6 +324,7 @@ public class THEOplayerRCTView: UIView {
322
324
  self.parseUIConfig(configDict: configDict)
323
325
  self.parseMediaControlConfig(configDict: configDict)
324
326
  self.parseTHEOliveConfig(configDict: configDict)
327
+ self.parseCmcdConfig(configDict: configDict)
325
328
  if DEBUG_VIEW { PrintUtils.printLog(logText: "[NATIVE] config prop updated.") }
326
329
 
327
330
  // Given the bridged config, create the initial THEOplayer instance
@@ -0,0 +1,36 @@
1
+ // THEOplayerRCTView+CmcdConfig.swift
2
+
3
+ import Foundation
4
+ import THEOplayerSDK
5
+
6
+ struct CmcdConfig {
7
+ var externalSessionId: String?
8
+ var userId: String?
9
+ var eventEndpoints: [CMCDEndpointConfiguration]?
10
+ }
11
+
12
+ extension THEOplayerRCTView {
13
+
14
+ func parseCmcdConfig(configDict: NSDictionary) {
15
+ if let cmcdDict = configDict["cmcd"] as? NSDictionary {
16
+ self.cmcdConfig.externalSessionId = cmcdDict["externalSessionId"] as? String
17
+ self.cmcdConfig.userId = cmcdDict["userId"] as? String
18
+ self.cmcdConfig.eventEndpoints = (cmcdDict["eventEndpoints"] as? [[String: Any]])?.compactMap { dict -> CMCDEndpointConfiguration? in
19
+ guard let url = dict["url"] as? String else { return nil }
20
+ return CMCDEndpointConfiguration(url: url)
21
+ }
22
+ }
23
+ }
24
+
25
+ func playerCmcdConfiguration() -> CMCDConfiguration? {
26
+ let config = self.cmcdConfig
27
+ if config.externalSessionId == nil && config.userId == nil && config.eventEndpoints == nil {
28
+ return nil
29
+ }
30
+ return CMCDConfiguration(
31
+ externalSessionId: config.externalSessionId,
32
+ userId: config.userId,
33
+ eventEndpoints: config.eventEndpoints
34
+ )
35
+ }
36
+ }
@@ -69,7 +69,7 @@ Object.keys(_barrel6).forEach(function (key) {
69
69
  }
70
70
  });
71
71
  });
72
- var _barrel7 = require("./pip/barrel");
72
+ var _barrel7 = require("./cmcd/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,7 +80,7 @@ Object.keys(_barrel7).forEach(function (key) {
80
80
  }
81
81
  });
82
82
  });
83
- var _barrel8 = require("./config/barrel");
83
+ var _barrel8 = require("./pip/barrel");
84
84
  Object.keys(_barrel8).forEach(function (key) {
85
85
  if (key === "default" || key === "__esModule") return;
86
86
  if (key in exports && exports[key] === _barrel8[key]) return;
@@ -91,7 +91,7 @@ Object.keys(_barrel8).forEach(function (key) {
91
91
  }
92
92
  });
93
93
  });
94
- var _barrel9 = require("./error/barrel");
94
+ var _barrel9 = require("./config/barrel");
95
95
  Object.keys(_barrel9).forEach(function (key) {
96
96
  if (key === "default" || key === "__esModule") return;
97
97
  if (key in exports && exports[key] === _barrel9[key]) return;
@@ -102,7 +102,7 @@ Object.keys(_barrel9).forEach(function (key) {
102
102
  }
103
103
  });
104
104
  });
105
- var _barrel0 = require("./event/barrel");
105
+ var _barrel0 = require("./error/barrel");
106
106
  Object.keys(_barrel0).forEach(function (key) {
107
107
  if (key === "default" || key === "__esModule") return;
108
108
  if (key in exports && exports[key] === _barrel0[key]) return;
@@ -113,7 +113,7 @@ Object.keys(_barrel0).forEach(function (key) {
113
113
  }
114
114
  });
115
115
  });
116
- var _barrel1 = require("./media/barrel");
116
+ var _barrel1 = require("./event/barrel");
117
117
  Object.keys(_barrel1).forEach(function (key) {
118
118
  if (key === "default" || key === "__esModule") return;
119
119
  if (key in exports && exports[key] === _barrel1[key]) return;
@@ -124,7 +124,7 @@ Object.keys(_barrel1).forEach(function (key) {
124
124
  }
125
125
  });
126
126
  });
127
- var _barrel10 = require("./millicast/barrel");
127
+ var _barrel10 = require("./media/barrel");
128
128
  Object.keys(_barrel10).forEach(function (key) {
129
129
  if (key === "default" || key === "__esModule") return;
130
130
  if (key in exports && exports[key] === _barrel10[key]) return;
@@ -135,7 +135,7 @@ Object.keys(_barrel10).forEach(function (key) {
135
135
  }
136
136
  });
137
137
  });
138
- var _barrel11 = require("./drm/barrel");
138
+ var _barrel11 = require("./millicast/barrel");
139
139
  Object.keys(_barrel11).forEach(function (key) {
140
140
  if (key === "default" || key === "__esModule") return;
141
141
  if (key in exports && exports[key] === _barrel11[key]) return;
@@ -146,7 +146,7 @@ Object.keys(_barrel11).forEach(function (key) {
146
146
  }
147
147
  });
148
148
  });
149
- var _barrel12 = require("./source/barrel");
149
+ var _barrel12 = require("./drm/barrel");
150
150
  Object.keys(_barrel12).forEach(function (key) {
151
151
  if (key === "default" || key === "__esModule") return;
152
152
  if (key in exports && exports[key] === _barrel12[key]) return;
@@ -157,7 +157,7 @@ Object.keys(_barrel12).forEach(function (key) {
157
157
  }
158
158
  });
159
159
  });
160
- var _barrel13 = require("./theolive/barrel");
160
+ var _barrel13 = require("./source/barrel");
161
161
  Object.keys(_barrel13).forEach(function (key) {
162
162
  if (key === "default" || key === "__esModule") return;
163
163
  if (key in exports && exports[key] === _barrel13[key]) return;
@@ -168,7 +168,7 @@ Object.keys(_barrel13).forEach(function (key) {
168
168
  }
169
169
  });
170
170
  });
171
- var _barrel14 = require("./timeranges/barrel");
171
+ var _barrel14 = require("./theolive/barrel");
172
172
  Object.keys(_barrel14).forEach(function (key) {
173
173
  if (key === "default" || key === "__esModule") return;
174
174
  if (key in exports && exports[key] === _barrel14[key]) return;
@@ -179,7 +179,7 @@ Object.keys(_barrel14).forEach(function (key) {
179
179
  }
180
180
  });
181
181
  });
182
- var _barrel15 = require("./resolution/barrel");
182
+ var _barrel15 = require("./timeranges/barrel");
183
183
  Object.keys(_barrel15).forEach(function (key) {
184
184
  if (key === "default" || key === "__esModule") return;
185
185
  if (key in exports && exports[key] === _barrel15[key]) return;
@@ -190,7 +190,7 @@ Object.keys(_barrel15).forEach(function (key) {
190
190
  }
191
191
  });
192
192
  });
193
- var _barrel16 = require("./track/barrel");
193
+ var _barrel16 = require("./resolution/barrel");
194
194
  Object.keys(_barrel16).forEach(function (key) {
195
195
  if (key === "default" || key === "__esModule") return;
196
196
  if (key in exports && exports[key] === _barrel16[key]) return;
@@ -201,7 +201,7 @@ Object.keys(_barrel16).forEach(function (key) {
201
201
  }
202
202
  });
203
203
  });
204
- var _barrel17 = require("./ui/barrel");
204
+ var _barrel17 = require("./track/barrel");
205
205
  Object.keys(_barrel17).forEach(function (key) {
206
206
  if (key === "default" || key === "__esModule") return;
207
207
  if (key in exports && exports[key] === _barrel17[key]) return;
@@ -212,7 +212,7 @@ Object.keys(_barrel17).forEach(function (key) {
212
212
  }
213
213
  });
214
214
  });
215
- var _barrel18 = require("./utils/barrel");
215
+ var _barrel18 = require("./ui/barrel");
216
216
  Object.keys(_barrel18).forEach(function (key) {
217
217
  if (key === "default" || key === "__esModule") return;
218
218
  if (key in exports && exports[key] === _barrel18[key]) return;
@@ -223,29 +223,29 @@ Object.keys(_barrel18).forEach(function (key) {
223
223
  }
224
224
  });
225
225
  });
226
- var _THEOplayerView = require("./THEOplayerView");
227
- Object.keys(_THEOplayerView).forEach(function (key) {
226
+ var _barrel19 = require("./utils/barrel");
227
+ Object.keys(_barrel19).forEach(function (key) {
228
228
  if (key === "default" || key === "__esModule") return;
229
- if (key in exports && exports[key] === _THEOplayerView[key]) return;
229
+ if (key in exports && exports[key] === _barrel19[key]) return;
230
230
  Object.defineProperty(exports, key, {
231
231
  enumerable: true,
232
232
  get: function () {
233
- return _THEOplayerView[key];
233
+ return _barrel19[key];
234
234
  }
235
235
  });
236
236
  });
237
- var _barrel19 = require("./player/barrel");
238
- Object.keys(_barrel19).forEach(function (key) {
237
+ var _THEOplayerView = require("./THEOplayerView");
238
+ Object.keys(_THEOplayerView).forEach(function (key) {
239
239
  if (key === "default" || key === "__esModule") return;
240
- if (key in exports && exports[key] === _barrel19[key]) return;
240
+ if (key in exports && exports[key] === _THEOplayerView[key]) return;
241
241
  Object.defineProperty(exports, key, {
242
242
  enumerable: true,
243
243
  get: function () {
244
- return _barrel19[key];
244
+ return _THEOplayerView[key];
245
245
  }
246
246
  });
247
247
  });
248
- var _barrel20 = require("./presentation/barrel");
248
+ var _barrel20 = require("./player/barrel");
249
249
  Object.keys(_barrel20).forEach(function (key) {
250
250
  if (key === "default" || key === "__esModule") return;
251
251
  if (key in exports && exports[key] === _barrel20[key]) return;
@@ -256,7 +256,7 @@ Object.keys(_barrel20).forEach(function (key) {
256
256
  }
257
257
  });
258
258
  });
259
- var _barrel21 = require("./version/barrel");
259
+ var _barrel21 = require("./presentation/barrel");
260
260
  Object.keys(_barrel21).forEach(function (key) {
261
261
  if (key === "default" || key === "__esModule") return;
262
262
  if (key in exports && exports[key] === _barrel21[key]) return;
@@ -267,7 +267,7 @@ Object.keys(_barrel21).forEach(function (key) {
267
267
  }
268
268
  });
269
269
  });
270
- var _barrel22 = require("./theoads/barrel");
270
+ var _barrel22 = require("./version/barrel");
271
271
  Object.keys(_barrel22).forEach(function (key) {
272
272
  if (key === "default" || key === "__esModule") return;
273
273
  if (key in exports && exports[key] === _barrel22[key]) return;
@@ -278,4 +278,15 @@ Object.keys(_barrel22).forEach(function (key) {
278
278
  }
279
279
  });
280
280
  });
281
+ var _barrel23 = require("./theoads/barrel");
282
+ Object.keys(_barrel23).forEach(function (key) {
283
+ if (key === "default" || key === "__esModule") return;
284
+ if (key in exports && exports[key] === _barrel23[key]) return;
285
+ Object.defineProperty(exports, key, {
286
+ enumerable: true,
287
+ get: function () {
288
+ return _barrel23[key];
289
+ }
290
+ });
291
+ });
281
292
  //# sourceMappingURL=barrel.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_barrel","require","Object","keys","forEach","key","exports","defineProperty","enumerable","get","_barrel2","_barrel3","_barrel4","_barrel5","_barrel6","_barrel7","_barrel8","_barrel9","_barrel0","_barrel1","_barrel10","_barrel11","_barrel12","_barrel13","_barrel14","_barrel15","_barrel16","_barrel17","_barrel18","_THEOplayerView","_barrel19","_barrel20","_barrel21","_barrel22"],"sourceRoot":"../../../src","sources":["api/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","_barrel9","_barrel0","_barrel1","_barrel10","_barrel11","_barrel12","_barrel13","_barrel14","_barrel15","_barrel16","_barrel17","_barrel18","_barrel19","_THEOplayerView","_barrel20","_barrel21","_barrel22","_barrel23"],"sourceRoot":"../../../src","sources":["api/barrel.ts"],"mappings":"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","ignoreList":[]}