Skip to content

Expose additional THEOlive endpoint properties on Android and iOS - #929

Open
tvanlaerhoven wants to merge 2 commits into
developfrom
feature/theolive-endpoint-properties
Open

tvanlaerhoven wants to merge 2 commits into
developfrom
feature/theolive-endpoint-properties

Conversation

@tvanlaerhoven

@tvanlaerhoven tvanlaerhoven commented Oct 8, 2026 •

Copy link
Copy Markdown
Member

Summary

Extends the endpoint payload of the THEOlive endpointloaded event so the bridge surfaces every property the native SDKs expose, matching the web SDK's Endpoint shape as closely as possible:

  • Android: forward provider and adSystem from Endpoint (accessed defensively, as these getters do not exist on older Android SDK versions that the library still supports); millicastSrc now also includes its webrtc playout delay options.
  • Android & iOS: the generic src/srcType properties the web SDK reports are derived from the resolved source field (hesp, hls, hlsMpegTs, millicast or dai), since neither native Endpoint type carries them.
  • TheoLiveEndpoint platform annotations updated accordingly; new adSystem member is Android-only.

Remaining gaps

  • provider/adSystem on iOS: EndpointAPI in THEOplayer-Integration-THEOlive (verified on 11.12.1) does not expose either property — requires a core iOS SDK addition before the bridge can forward it.
  • distribution remains web-only; the native Endpoint types do not carry it (it is delivered via distributionloaded instead).

Test plan

  • npm run typescript -- --project tsconfig.build.json
  • npm run lint
  • Verify endpointloaded payload on Android and iOS example apps against a THEOlive channel

Generated with Devin


Devin Review

Extend the endpoint payload of the `endpointloaded` event so the bridge
surfaces everything the native SDKs offer:

- Android: `provider` and `adSystem` are now forwarded (guarded for SDKs
  that predate these getters), and `millicastSrc` now includes its
  `webrtc` playout delay options.
- Android & iOS: the generic `src`/`srcType` properties that the web SDK
  reports are now derived from the resolved source field (`hesp`, `hls`,
  `hlsMpegTs`, `millicast` or `dai`), closing the platform gap in the
  `TheoLiveEndpoint` type.

`provider`/`adSystem` are not exposed by the iOS THEOlive integration SDK
(verified up to 11.12.1), so they remain web/Android-only.

Generated with [Devin](https://devin.ai)

Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>

@devin-ai-integration devin-ai-integration Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Devin Review found 2 potential issues.

Devin Review

Comment on lines +95 to +115
when {
endPoint.hespSrc != null -> {
putString(PROP_SRC_TYPE, SRC_TYPE_HESP)
putString(PROP_SRC, endPoint.hespSrc)
}
endPoint.hlsSrc != null -> {
putString(PROP_SRC_TYPE, SRC_TYPE_HLS)
putString(PROP_SRC, endPoint.hlsSrc)
}
endPoint.hlsMpegTsSrc != null -> {
putString(PROP_SRC_TYPE, SRC_TYPE_HLS_MPEG_TS)
putString(PROP_SRC, endPoint.hlsMpegTsSrc)
}
endPoint.millicastSrc != null -> {
putString(PROP_SRC_TYPE, SRC_TYPE_MILLICAST)
endPoint.millicastSrc?.let { putMap(PROP_SRC, fromEndPointMillicastSource(it)) }
}
endPoint.daiAssetKey != null -> {
putString(PROP_SRC_TYPE, SRC_TYPE_DAI)
putString(PROP_SRC, endPoint.daiAssetKey)
}

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔍 Confirm source selection for multi-source endpoints

When an endpoint has multiple populated source fields, srcType follows a fixed priority rather than the playback-selected source. Confirm the native SDK guarantees only one populated field, or use its selected-source signal.

Devin Review


Was this helpful? React with 👍 or 👎 to provide feedback.

Comment thread CHANGELOG.md

### Added

- Added `src` and `srcType` properties to the THEOlive `endpoint` object on the `endpointloaded` event on Android and iOS, and `provider` and `adSystem` on Android. Also added the `webrtc` playout delay options to `millicastSrc` on Android.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔍 Split the two-sentence changelog entry

The Added entry covers endpoint properties and WebRTC options in two sentences. Project rules require one sentence per changelog entry.

Devin Review


Was this helpful? React with 👍 or 👎 to provide feedback.

comscore android-analytics 6.16.0 requires compileSdk 37, which the e2e
app cannot satisfy (AGP 8.13.0 supports up to 36). The connector
default '6.+' range silently upgraded to it, breaking the Android E2E
build.

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant