Skip to content

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:) and setDisplaySize(width:height:), which set the content type of the videos (for example, live or feature), and the device type (mobile or pc) 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) use pc. Previously, all devices used mobile, so the quality score on Apple TVs can change.
  • Change in behavior: live streams are now sent with the content type live if the app does not set a content type. Previously, all videos were sent with unknown.
  • 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