Skip to content

Releases: SRGSSR/pillarbox-apple

Improved Error Management

01 Oct 06:47
13.0.0
d609125
Compare
Choose a tag to compare

Improvements

  • Integrations can now access full details of errors that occur during asset loading.
  • Core Business asset loading errors are now exposed as DataError.
  • Added Player.resume(_:in:) to allow setting a transient start item and time.
  • Introduced MediaSelectionPreference, improving media selection APIs and adding support for .off selection.
  • Simplified playback speed APIs.
  • Unified playlist navigation APIs to consistently respect the navigationMode across all use cases.
  • Added reporting of the current AirPlay status in Commanders Act events.
  • Made RepeatMode conform to CaseIterable.

Fixes

  • Fixed an issue where playback of DRM-protected content could fail consistently after the app stayed in the background for several hours.
  • Fixed stale values returned by Commanders Act and metrics tracker heartbeats.
  • Fixed inconsistencies in the Picture-in-Picture restoration flag when stopping without restoration.
  • Fixed incorrect busy state reporting when playback fails.

Demo Improvements

  • Error messages now include icons for better clarity.
  • Added a shortcut link to application settings.

Demo Fixes

  • Fixed blurry images on skip buttons.
  • Fixed the toggle tap gesture not working on iOS 26.
  • Restored demo content that was previously unplayable.

Breaking Changes

  • Replaced Player.setMediaSelection(preferredLanguages:for:) with Player.setMediaSelectionPreference(_:for:).
  • Removed Player.mediaSelectionPreferredLanguages(for:).
  • Removed Player.canReturnToPrevious(), Player.canAdvanceToNext(), Player.returnToPrevious() and Player.advanceToNext().
  • Removed Player.setDesiredPlaybackSpeed(_:) and Player.effectivePlaybackSpeed. Use Player.playbackSpeed instead.

What's Changed

New Contributors

Full Changelog: 12.0.0...13.0.0

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