Surfmeter Player SDK (THEOplayer iOS) Changelog¶
This is the changelog for the Surfmeter Player SDK for THEOplayer on iOS and tvOS.
v0.4.1 (2026-10-30)¶
- Add a video bitrate estimate from the video height for qualities without a bandwidth in the stream manifest
- Fix video and audio bitrates being reported about 2.4% too low
- Fix the last segment of a session sometimes missing from the report, which made the reported play time too short
- Fix the time before a quality switch being reported with the new quality
- Fix a short segment with the old resolution and the new bitrate being reported after a quality switch
- Fix the first segment of a session sometimes being reported with a video bitrate of 0 kbps
v0.4.0 (2026-10-30)¶
- Add the builder methods
setContentType(contentType:),setDeviceType(deviceType:)andsetDisplaySize(width:height:), which set the content type of the videos (for example,liveorfeature), and the device type (mobileorpc) and display size used to calculate the video quality score. The SDK logs a warning and ignores invalid values. - Change in behavior: the device type for the quality score is now detected from the device. iPhones and iPads use
mobile, all other devices (Apple TV, Mac) usepc. Previously, all devices usedmobile, so the quality score on Apple TVs can change. - Change in behavior: live streams are now sent with the content type
liveif the app does not set a content type. Previously, all videos were sent withunknown. - Send the type of hardware (iPhone, iPad, Apple TV or Mac), the device model and the screen resolution with each measurement
- Fix for a possible hang when the Analytics instance was released right after it was created
v0.3.0 (2026-10-30)¶
- Breaking change: requires THEOplayer 10.3.0 or a later 10.x version
- Send a final report exactly once when a session ends, also when playback reaches the end, when the source is changed or removed, or when the Analytics instance is released
- Start a new session for every new source of the player
- End the session when THEOplayer reports a fatal error, and report the error as an error event with the THEOplayer error category and code, for example
NETWORK:NETWORK_ERROR - Send sessions that end before the video started playing, so that video start failures and exits before playback are counted
- Retry sending the final report of a session if it fails, up to five times with increasing delays between attempts
- Compress reports with gzip and reuse the HTTPS connection between reports, which reduces the data usage on mobile networks
- Do not count stalls and pauses as play time
- Report the THEOplayer version as the player version, instead of the iOS version
- Fix for resolution changes not being reported when the bitrate stayed the same
- API documentation is now generated with DocC, and can be read in Xcode or in the browser