Skip to content

Releases: SRGSSR/pillarbox-apple

Performance Improvements

13 Jun 06:28
12.0.0
206116e
Compare
Choose a tag to compare

Improvements

  • Ensure most PlayerItemTracker methods are executed off the main thread to avoid potential UI hitches, particularly when displaying videos in scrollable views.

Demo Fixes

  • Fixed performance issues when seeking on certain devices.
  • Resolved visible hitches when swiping between stories in the demo.
  • Corrected a non-working stream URL.

Breaking Changes

  • Removed HTTP and HTTPS constants from media composition streaming methods.
  • Most PlayerItemTracker methods are now called off the main thread. Update your implementation to handle thread safety accordingly.

What's Changed

Full Changelog: 11.0.0...12.0.0

Seek Behavior Overhaul

20 May 06:13
11.0.0
aeea5e6
Compare
Choose a tag to compare

Fixes

  • Seek logic has been revisited to address performance issues, particularly with audio content. The .immediate behavior has been rebranded as .optimal, ensuring the best experience based on the content being played.
  • Player items delivered by the CoreBusiness framework will now include chapters only for episode content.

Demo Fixes

  • Fixed issues where interacting with the slider could cause an inconsistent UI state or erratic behavior.

Breaking Changes

  • The .immediate seek behavior has been replaced with .optimal.

What's Changed

Full Changelog: 10.0.2...11.0.0

Maintenance Release

06 May 15:58
10.0.2
9e8fe0a
Compare
Choose a tag to compare

Improvements

  • Display the currently selected values in the settings menu for better visibility.
  • Improve alignment between settings menu labels and the system player's user experience.
  • Add support for displaying VPN/proxy blocking reasons.

Fixes

  • Prevent potential plugin name clashes with other packages.
  • Fix an issue where Player observation could fail when empty.

Demo Improvements

  • Make skip intervals configurable in demo settings.

What's Changed

Full Changelog: 10.0.1...10.0.2

Improved Picture in Picture handling

24 Apr 06:11
10.0.1
9321693
Compare
Choose a tag to compare

Improvements

  • Improved Picture in Picture (PiP) automatic start support for cases where the video view doesn’t cover the entire screen.

Demo Improvements

  • Fixed an issue where the custom player controls toggle gesture wasn’t working as expected on iOS 17.

What's Changed

Full Changelog: 10.0.0...10.0.1

Support for skip gestures

04 Apr 17:56
10.0.0
693f94a
Compare
Choose a tag to compare

Improvements

  • Introduced SkipTracker to simplify the implementation of skip gestures.
  • Added skip methods that accept a Skip direction as a parameter. These methods are more ergonomic when the skip direction is determined programmatically, while the existing methods remain well-suited for UI-bound actions.
  • Made PlayerItem conform to Hashable, simplifying the adoption of Hashable in wrapper types.
  • Added methods to stop or close Picture in Picture without triggering restoration behavior.
  • Added methods to show or hide the user interface managed by a VisibilityTracker.

Breaking Changes

  • Core extensions previously defined on Array have been moved to Collection for broader applicability.
  • Removed the PictureInPicturePersistable.pictureInPictureDidClose() method.

Demo Improvements

  • Enabled support for skip gestures in the custom player layout.
  • Improved playlist management UI in the demo: it now supports inserting the same item multiple times, with control over both the insertion point and a multiplier.
  • URIs in the monitoring panel are now displayed in full without truncation.

Demo Fixes

  • Fixed high-speed capsule display issues on devices with a notch.

Added custom menu actions

14 Mar 06:34
9.0.0
4abb09f
Compare
Choose a tag to compare

Improvements

  • Added support for custom actions in iOS player-related Menu contents, allowing applications to respond to user selections.
  • Replaced navigation_bu_distributer with content_bu_owner in Commanders Act page views to ensure consistent measurement across applications and websites.
  • Enhanced monitoring data with track (audio and subtitles) and application information.

Fixes

  • Ensured buffer values are always clamped to the correct range.
  • Restored Control Center to the system when no longer needed.

Breaking Changes

  • Replaced PlayerProperties with TrackerProperties in tracker implementations. This ensures that property values accurately reflect the state at the time of capture, preventing discrepancies when accessed later.
  • Renamed PlayerItemConfiguration to PlaybackConfiguration to better represent its role in PlayerItem and Asset configurations.
  • Converted Server into an enum with fixed values to prevent unauthorized services from incorrectly implementing the SRG SSR metadata service contract.
  • Restricted analytics source keys to a predefined enumeration of allowed values.

Demo Improvements

  • Added support for Enhance Dialogue in player audio settings on compatible tvOS devices.

Removed custom server support in Core Business

05 Feb 09:52
8.0.0
e42864b
Compare
Choose a tag to compare

This release removes support for custom servers in Core Business player items, ensuring that only official production, staging, and test environments are available.

Improvements

  • URN information is now included in all reports sent to the SRG SSR monitoring platform, even when the URN is invalid.

Bug Fixes

  • Fixed an assertion failure in debug builds when attempting to play a URN.

Breaking Changes

  • The identifier associated with a MetricsTracker has been moved from its metadata to its configuration.
  • Custom Server construction, previously marked as deprecated, is no longer supported.

Demo Improvements

  • Removed MMF support.
  • Removed alternative environments, including SAM and CH/WW location simulation.
  • Enhanced the demo player slider appearance and behavior.

What's Changed

Full Changelog: 7.0.0...8.0.0

Removed Support for ComScore Page Views

24 Jan 12:36
7.0.0
1edcd32
Compare
Choose a tag to compare

This release removes support for tracking ComScore page views.

Miscellaneous Improvements

  • Overlay Support: Added overlay functionality to SystemVideoView.
  • Enhanced Security: Prevented item creation from unofficial service endpoints. The Server.init(baseUrl:queryItems:) initializer, while still available, will be deprecated in a future release and now triggers an assertion if used.
  • Improved Documentation: Enhanced the organization and clarity of documentation catalogs.
  • Analytics Delegate: Introduced AnalyticsDelegate, enabling applications to be informed whenever events or page views have been sent.

Breaking Changes

  • The Analytics.trackPageView(commandersAct:) method now exclusively accepts Commanders Act page view data. The comScore parameter has been removed.
  • The ComScorePageView type and the c8 property from ComScoreLabels have been removed.
  • The comScorePageView property has been removed from the PageViewTracking protocol.
  • The SwiftUI page view tracking modifier tracked(commandersAct:) now only supports Commanders Act page view data, removing the previously available comScore parameter.

What's Changed

Full Changelog: 6.0.0...7.0.0

SRG SSR monitoring and Low Data Mode support

14 Nov 07:09
6.0.0
925325b
Compare
Choose a tag to compare

This release adds monitoring for SRG SSR content. It also introduces new APIs to better manage data in constrained environments, with support for Low Data Mode and upper bounds that can be set on content bitrate and resolution.

Recent API changes introduced for playlists in 4.0.0 have also been rollbacked. These APIs failed to deliver the convenient model / playlist synchronization they were introduced for.

Monitoring

  • SRG SSR core business player items are monitored automatically. The collected data covers a wide range of Quality of Service / Quality of Experience needs and, even though all data is anonymous, you should ensure that your app privacy details are updated accordingly if needed.

Support for constrained data environments

  • ImageSource supports standard and low-resolution image URLs. When provided these are automatically loaded when Low Data Mode has been enabled for a network.
  • Core business player items retrieve low-resolution images when Low Data Mode has been enabled for a network.
  • The player configuration has been extended with a allowsConstrainedNetworkAccess to prevent playback for non-essential content when Low Data Mode has been enabled.
  • PlayerLimits can be freely defined to set upper bounds on content bitrate and resolution. This makes it possible to implement data-saving modes. Note that no lower bounds can be set, as the player must remain free to use available lower-quality variants to ensure an uninterrupted playback experience.

Miscellaneous improvements

  • Provide a way to optionally attach metadata to unavailable Assets.
  • Attach metadata to core business player items which are unavailable for a business reason (e.g. content not available yet).
  • Make Player.currentItem a published property.

Breaking changes

  • The source parameter associated with PlayerItems has been removed.
  • The corresponding Playlist parameter has been removed.

Fixes

  • Fix erratic change observability when changing legible media options.
  • Hide RoutePickerView for iPad apps running on macOS.

Demo improvements

  • Add quality switch to the custom player layout settings menu.
  • Add similar setting to the global demo settings. This setting is applied throughout the demo where appropriate.
  • Improve demo overall accessibility via VoiceOver.

What's changed

Full Changelog: 5.0.0...6.0.0

Picture in Picture stability improvements

11 Oct 13:56
5.0.0
be9f641
Compare
Choose a tag to compare

Warning

Sources associated with player items, introduced in version 4.0.0, will be removed in version 6.0.0. Please avoid using them in your code.

This release improves Picture in Picture support in advanced scenarios involving several video views supporting it, avoiding unexpected playback interruptions in some cases.

Picture in Picture fixes and improvements

  • Improve Picture in Picture stability in complex view hierarchies involving several supporting VideoViews or SystemVideoViews.
  • Add method to start Picture in Picture programmatically. This method must only be called in response to some form of user interaction.
  • Add PictureInPicturePersistable method informing implementations that Picture in Picture has been closed from the Picture in Picture overlay.

Miscellaneous improvements

  • Remove VideoView internal animations when loading content. If applications desire such animations they can animate the video view directly.
  • Adjust monitoring data.
  • Update comScore SDK to its most recent version.

Breaking changes

  • Chapters associated with a media composition are provided by MediaMetadata, not MediaComposition directly anymore.

Fixes

  • Fix glitches affecting VideoView during animations.
  • Fix Control Center restoration after mixable to non-mixable audio session transitions on iOS and tvOS 16 / 17 devices.
  • Avoid pausing playback when a monoscopic video view is destroyed.
  • Fix crashes when loading URNs for which a main chapter is not available from the associated media composition chapter list.

Demo improvements

  • Add iOS 18 dark and tinted icons.