The markdown parsing is broken/disabled for release notes. Sorry about that, I'm chasing the source of a crash that's been bringing this website down for the last couple of days.
Fix performance issues
6 weeks ago
# Fixes
- Fix a resource leak which could lead to performance issues over time.
# What's changed
* Fix resource leak in ReplaySubject by @waliid in https://github.com/SRGSSR/pillarbox-apple/pull/802
**Full Changelog**: https://github.com/SRGSSR/pillarbox-apple/compare/1.0.0...1.0.1
First official release 🎉
6 weeks ago
> [!IMPORTANT]
> Letterbox will be sunset in August 2025:
> - New SRG SSR products must use Pillarbox only.
> - Existing SRG SSR products using Letterbox must transition to Pillarbox before this date.
This is the first official release of Pillarbox for Apple platforms. Pillarbox is the modern SRG SSR media playback ecosystem, a generational leap over its predecessor Letterbox.
> [!TIP]
> Should you have questions, ideas, or should you need assistance, please use our [issue tracker](https://github.com/SRGSSR/pillarbox-apple/issues/new/choose) or a dedicate [discussion](https://github.com/SRGSSR/pillarbox-apple/discussions).
# Features
Refer to our [documentation](https://github.com/SRGSSR/pillarbox-apple/tree/1.0.0?tab=readme-ov-file#overview) for a complete feature list.
> [!TIP]
> Articles, tutorials and developer documentation are available right within Xcode as a documentation catalog.
# Fixes and improvements
If you were already integrating a pre-release version of Pillarbox, this first official release adds a few final fixes and improvements:
- Fix an issue sometimes preventing metadata from being correctly displayed in the Control Center.
- Update comScore and Commanders Act libraries to the most recent releases.
- Improve documentation and remove unused files.
- Fix missing translations.
- Add privacy manifests.
# What's Changed
* Force comScore and Commanders Act SDKs to latest versions by @defagos in https://github.com/SRGSSR/pillarbox-apple/pull/787
* Fix Control Center metadata sometimes disappearing after item deletion by @defagos in https://github.com/SRGSSR/pillarbox-apple/pull/786
* Use version 6.11.0 to avoid archive issue by @waliid in https://github.com/SRGSSR/pillarbox-apple/pull/788
* Update CI to Xcode 15.3 by @defagos in https://github.com/SRGSSR/pillarbox-apple/pull/795
* Add privacy manifest by @defagos in https://github.com/SRGSSR/pillarbox-apple/pull/789
* Add MMF support by @defagos in https://github.com/SRGSSR/pillarbox-apple/pull/792
* Update list of known issues with Control Center playback button state issue in multi-player configurations by @defagos in https://github.com/SRGSSR/pillarbox-apple/pull/793
* Update comScore SDK to version 6.12.2 by @defagos in https://github.com/SRGSSR/pillarbox-apple/pull/791
* Update translations by @defagos in https://github.com/SRGSSR/pillarbox-apple/pull/790
* Clean documentation by @waliid in https://github.com/SRGSSR/pillarbox-apple/pull/794
* Improve documentation by @defagos in https://github.com/SRGSSR/pillarbox-apple/pull/797
* Display library version as demo badge by @defagos in https://github.com/SRGSSR/pillarbox-apple/pull/796
* Improve test stability by @defagos in https://github.com/SRGSSR/pillarbox-apple/pull/798
* Remove unnecessary property update by @waliid in https://github.com/SRGSSR/pillarbox-apple/pull/799
**Full Changelog**: https://github.com/SRGSSR/pillarbox-apple/compare/0.11.0...1.0.0
Improved error management in playlists
7 weeks ago
This release improves support for long playlists.
# Improvements
- Improve error management in playlists.
- Improve Control Center integration in presence of error:
- Display errors in the Control Center directly.
- Allow users to retry playback after a failure directly from the Control Center.
- Add `actionAtItemEnd` player setting, with which the behavior when playback of an item ends can be customized.
# Fixes
- Resolve several analytics issues in playlists:
- Fix an issue leading to Commanders Act events missing a playback position.
- Fix incorrect event transitions emitted when chaining items in a playlist.
- Fix incorrect event transitions emitted when moving the item currently being played.
- Fix incorrect playback position reported when dynamically enabling Control Center integration during playback.
# Demo improvements
- Improve slider interactions.
# Demo fixes
- Fix missing content image.
# What's changed
* Fix incorrectly received tracker property updates by @defagos in https://github.com/SRGSSR/pillarbox-apple/pull/770
* Fix broken image link by @waliid in https://github.com/SRGSSR/pillarbox-apple/pull/771
* Improve demo slider by @defagos in https://github.com/SRGSSR/pillarbox-apple/pull/772
* Improve Control Center display in presence of errors by @waliid in https://github.com/SRGSSR/pillarbox-apple/pull/769
* Force simulator language and region by @defagos in https://github.com/SRGSSR/pillarbox-apple/pull/778
* Fix incorrect time position after disabling and enabling Control Center integration by @waliid in https://github.com/SRGSSR/pillarbox-apple/pull/779
* Support standard actions at item playback end by @waliid in https://github.com/SRGSSR/pillarbox-apple/pull/780
* Avoid unnecessary Commanders Act seek / play transitions by @defagos in https://github.com/SRGSSR/pillarbox-apple/pull/781
* Prepare for complete localization by @defagos in https://github.com/SRGSSR/pillarbox-apple/pull/782
* Remove CombineExt by @defagos in https://github.com/SRGSSR/pillarbox-apple/pull/783
**Full Changelog**: https://github.com/SRGSSR/pillarbox-apple/compare/0.10.0...0.11.0
Improved support for long playlists
10 weeks ago
This release improves support for long playlists.
# Improved support for long playlists
Prior to this version Pillarbox player was eagerly loading all items in a playlists. This was leading to unnecessary metadata retrieval (potentially including artworks) as well as potential player hangs, most notably with MP3 playlists.
To solve these issues Pillarbox player now only loads two items at any given time. This still ensures that content can be preloaded in advance during normal playback, ensuring gapless playback when possible, while minimizing resource waste and avoiding performance issues.
# Improvements
- Display metadata in the `SystemVideoView`.
- Stop playback on failed items in playlists.
- Ensure all skips are non-smooth.
- Optimized threads created by SRG SSR standard trackers.
- Ensure common unique identifiers with Letterbox and Pillarbox versions that were running Commanders Act SDK version 4.
- Provide specific analytics device information for iPad applications run on macOS.
# Fixes
- Make it possible to restart playback of items whose metadata delivery failed.
- Avoid undesired layer animations when resizing the video view.
- Fix Swift Package Index documentation generation.
# Breaking changes
- Rename `isRunning` as `shouldPlay`.
# Demo improvements
- Add long-press gesture to enable high-speed playback.
- Update Pillarbox web demo link.
# Demo fixes
- Fix monoscopic content display in playlist demos.
- Fix page views incorrectly sent during scrolling.
# What's changed
* Eliminate undesired layer animations by @waliid in https://github.com/SRGSSR/pillarbox-apple/pull/726
* Extend layout past the safe area by @defagos in https://github.com/SRGSSR/pillarbox-apple/pull/727
* Rename isRunning as shouldPlay by @defagos in https://github.com/SRGSSR/pillarbox-apple/pull/732
* Make all skips consistently non-smooth by @defagos in https://github.com/SRGSSR/pillarbox-apple/pull/731
* Fix replay behavior with unconsumed failed items by @defagos in https://github.com/SRGSSR/pillarbox-apple/pull/734
* Update start time example for consistency with other platforms by @defagos in https://github.com/SRGSSR/pillarbox-apple/pull/733
* Add metadata to the system player by @waliid in https://github.com/SRGSSR/pillarbox-apple/pull/735
* Avoid sending several page views to the analytics by @waliid in https://github.com/SRGSSR/pillarbox-apple/pull/737
* Avoid starting from an incorrect position in terms of analytics by @waliid in https://github.com/SRGSSR/pillarbox-apple/pull/739
* Update SwiftLint to version 0.54.0 by @defagos in https://github.com/SRGSSR/pillarbox-apple/pull/741
* Fix pre-commit hook by @defagos in https://github.com/SRGSSR/pillarbox-apple/pull/742
* Document how to trust plugins in a continuous integration setup by @defagos in https://github.com/SRGSSR/pillarbox-apple/pull/740
* Avoid unnecessary thread creation by item trackers by @defagos in https://github.com/SRGSSR/pillarbox-apple/pull/743
* Fix comScore test flakiness by @waliid in https://github.com/SRGSSR/pillarbox-apple/pull/744
* Increase playback speed during a long press gesture by @waliid in https://github.com/SRGSSR/pillarbox-apple/pull/746
* Use common Commanders Act unique identifier between v4 and v5 by @defagos in https://github.com/SRGSSR/pillarbox-apple/pull/752
* Support desktop as navigation device by @defagos in https://github.com/SRGSSR/pillarbox-apple/pull/751
* Update data provider to version 19.0.0 by @defagos in https://github.com/SRGSSR/pillarbox-apple/pull/755
* Fix unresponsive AirPlay button by @waliid in https://github.com/SRGSSR/pillarbox-apple/pull/754
* Fix incorrect navigation title by @defagos in https://github.com/SRGSSR/pillarbox-apple/pull/758
* Fix Swift Package Index documentation generation by @defagos in https://github.com/SRGSSR/pillarbox-apple/pull/759
* Update links for web player and demo by @defagos in https://github.com/SRGSSR/pillarbox-apple/pull/761
* Disable high speed gesture for monoscopic content by @defagos in https://github.com/SRGSSR/pillarbox-apple/pull/762
* Fix monoscopic support in playlists by @defagos in https://github.com/SRGSSR/pillarbox-apple/pull/763
* Remove web player link by @defagos in https://github.com/SRGSSR/pillarbox-apple/pull/765
* Improve support for long playlists by @defagos in https://github.com/SRGSSR/pillarbox-apple/pull/766
**Full Changelog**: https://github.com/SRGSSR/pillarbox-apple/compare/0.9.0...0.10.0
Monoscopic 360° video support
15 weeks ago
This release adds support for monoscopic 360° video and further improves Picture in Picture behavior.
# 360° video support
- Add support for monoscopic 360° videos to `VideoView`. Use the new `VideoView/viewport(_:)` modifier to enable 360° display and choose and set an orientation in space.
- Orientation in space requires a quaternion. Two `SCNQuaternionRotate(_:_:_:)` and `SCNQuaternionWithAngleAndAxis(_:_:_:_:)` functions are provided to help build relevant quaternions, most notably for controlling the viewport through touch events. On iOS the `SCNQuaternionForAttitude(_:)` function makes it possible to bridge quaternions delivered by CoreMotion with SceneKit quaternions required used by Pillarbox.
# Picture in Picture improvements
- Improve Picture in Picture integration and overall behavior.
- Introduce `PictureInPicturePersistable` that lets app locally respond to Picture in Picture life cycle events if needed.
# Improvements
- Add playback speed menu to the tvOS system player view layout.
- Add `AVPlayerItem/seek(_:)` method to set a player item to start at a given time.
- Add `Player/isRunning` property.
- Improve documentation and tutorials.
# Demo improvements
- Greatly improve tvOS navigation user experience.
- Improve Picture in Picture integration in demo examples.
- Display [Pillarbox web](https://github.com/SRGSSR/pillarbox-web) demo in a web browser. This feature is not intended to be easily accessible and requires a dedicated opt-in to be enabled in app system settings first.
# Fixes
- Update Swift package manifest version to 5.9.
# Breaking changes
- Prefix all frameworks with `Pillarbox` to avoid potential naming conflicts with packages providing frameworks having the same name.
- Update in-app Picture in Picture in-app integration API. The `View/enabledForInAppPictureInPictureWithCleanup(perform:)` method has been replaced with the `View/enabledForInAppPictureInPicture(persisting:)` method which, instead of executing a closure to cleanup resources associated with a player (potentially after Picture in Picture ends), ensures a `PictureInPicturePersistable` object is kept alive during Picture in Picture playback. The `PictureInPicturePersistable` protocol can be optionally used to locally respond to Picture in Picture lifef cycle events as well.
- Update `VideoView` and `SystemVideoView` APIs so that optional behaviors (gravity, Picture in Picture support) are configured with modifiers instead of parameters.
# What's Changed
* Update Swift Package manifest to Swift 5.9 by @defagos in https://github.com/SRGSSR/pillarbox-apple/pull/686
* Add tracking documentation by @defagos in https://github.com/SRGSSR/pillarbox-apple/pull/685
* Add Picture in Picture tutorial by @waliid in https://github.com/SRGSSR/pillarbox-apple/pull/687
* Reoganize Player documention by @waliid in https://github.com/SRGSSR/pillarbox-apple/pull/688
* Document analytics integration by @defagos in https://github.com/SRGSSR/pillarbox-apple/pull/689
* Polish documentation by @defagos in https://github.com/SRGSSR/pillarbox-apple/pull/690
* Enhance code documentation by moving some references in appropriate sections by @waliid in https://github.com/SRGSSR/pillarbox-apple/pull/691
* Polish articles by @defagos in https://github.com/SRGSSR/pillarbox-apple/pull/692
* Set the correct duration for completing tutorials by @waliid in https://github.com/SRGSSR/pillarbox-apple/pull/693
* Improve tvOS navigation by @waliid in https://github.com/SRGSSR/pillarbox-apple/pull/694
* Update cells appearance for tvOS by @waliid in https://github.com/SRGSSR/pillarbox-apple/pull/695
* Enhance cells appearance for tvOS by @waliid in https://github.com/SRGSSR/pillarbox-apple/pull/699
* Improve the display of examples on tvOS by @waliid in https://github.com/SRGSSR/pillarbox-apple/pull/701
* Document SwiftUI property wrapper usage recommendations by @defagos in https://github.com/SRGSSR/pillarbox-apple/pull/706
* Update dependencies to most recent versions by @defagos in https://github.com/SRGSSR/pillarbox-apple/pull/709
* Add monoscopic 360° video support by @defagos in https://github.com/SRGSSR/pillarbox-apple/pull/702
* Add an access to Pillarbox Web via a WebView by @waliid in https://github.com/SRGSSR/pillarbox-apple/pull/711
* Fix missing media information in iOS cells by @waliid in https://github.com/SRGSSR/pillarbox-apple/pull/712
* Animate video view display by @defagos in https://github.com/SRGSSR/pillarbox-apple/pull/713
* Rename packages to avoid potential conflicts by @defagos in https://github.com/SRGSSR/pillarbox-apple/pull/714
* Update Xcode version used for CI to to 15.2 by @defagos in https://github.com/SRGSSR/pillarbox-apple/pull/715
* Fix product name conflicts by @defagos in https://github.com/SRGSSR/pillarbox-apple/pull/719
* Make player animations smoother by @defagos in https://github.com/SRGSSR/pillarbox-apple/pull/720
* Revise some documentation images by @waliid in https://github.com/SRGSSR/pillarbox-apple/pull/721
* Implementing Playback Speed Feature on tvOS by @waliid in https://github.com/SRGSSR/pillarbox-apple/pull/718
* Create a computed property to detect non-zero playback rates by @waliid in https://github.com/SRGSSR/pillarbox-apple/pull/722
* Remove superfluous selves by @defagos in https://github.com/SRGSSR/pillarbox-apple/pull/723
* Support starting playback at a given time by @defagos in https://github.com/SRGSSR/pillarbox-apple/pull/724
**Full Changelog**: https://github.com/SRGSSR/pillarbox-apple/compare/0.8.0...0.9.0
Documentation
20 weeks ago
This release adds integration documentation (articles and tutorials).
## Demo changes
- Remove some test streams.
## Fixes
- Hide Picture in Picture classes that were incorrectly exposed publicly.
## What's Changed
* Move existing markdown documentation into documentation catalogs by @waliid in https://github.com/SRGSSR/pillarbox-apple/pull/651
* Fix methods incorrectly marked as deprecated in documentation catalogs by @defagos in https://github.com/SRGSSR/pillarbox-apple/pull/652
* Revisit Player landing documentation page by @defagos in https://github.com/SRGSSR/pillarbox-apple/pull/654
* Improve icon display in the lists by @waliid in https://github.com/SRGSSR/pillarbox-apple/pull/656
* Improve page titles by @defagos in https://github.com/SRGSSR/pillarbox-apple/pull/655
* Update source code color in the setting page for the web by @waliid in https://github.com/SRGSSR/pillarbox-apple/pull/657
* Define featured pages with associated cards by @defagos in https://github.com/SRGSSR/pillarbox-apple/pull/658
* Update markdownlint by @defagos in https://github.com/SRGSSR/pillarbox-apple/pull/659
* Document asset loading by @defagos in https://github.com/SRGSSR/pillarbox-apple/pull/662
* Improve playback documentation by @waliid in https://github.com/SRGSSR/pillarbox-apple/pull/660
* Fix flaky test by @defagos in https://github.com/SRGSSR/pillarbox-apple/pull/664
* Document system integration by @defagos in https://github.com/SRGSSR/pillarbox-apple/pull/661
* Document `ProgressTracker` by @defagos in https://github.com/SRGSSR/pillarbox-apple/pull/663
* Add asset and player item documentation extensions by @waliid in https://github.com/SRGSSR/pillarbox-apple/pull/665
* Add tutorial code sample by @defagos in https://github.com/SRGSSR/pillarbox-apple/pull/666
* Organize progress tracker APIs by @defagos in https://github.com/SRGSSR/pillarbox-apple/pull/668
* Add progress tracking tutorial by @defagos in https://github.com/SRGSSR/pillarbox-apple/pull/667
* Extract project setup to a dedicated tutorial by @defagos in https://github.com/SRGSSR/pillarbox-apple/pull/669
* Add a tutorial for basic play and pause UI by @waliid in https://github.com/SRGSSR/pillarbox-apple/pull/670
* Add visibility tracking documentation and tutorial by @defagos in https://github.com/SRGSSR/pillarbox-apple/pull/671
* Add a tutorial for basic backward and forward seek by @waliid in https://github.com/SRGSSR/pillarbox-apple/pull/672
* Add pinch to zoom tutorial by @defagos in https://github.com/SRGSSR/pillarbox-apple/pull/673
* Consolidate documentation by @defagos in https://github.com/SRGSSR/pillarbox-apple/pull/674
* Add tutorial artworks by @defagos in https://github.com/SRGSSR/pillarbox-apple/pull/675
* Add Control Center tutorial by @waliid in https://github.com/SRGSSR/pillarbox-apple/pull/676
* Document state observation and layout optimization by @defagos in https://github.com/SRGSSR/pillarbox-apple/pull/677
* Remove test streams by @defagos in https://github.com/SRGSSR/pillarbox-apple/pull/678
* Add AirPlay tutorial by @waliid in https://github.com/SRGSSR/pillarbox-apple/pull/679
* Media selection documentation by @defagos in https://github.com/SRGSSR/pillarbox-apple/pull/680
**Full Changelog**: https://github.com/SRGSSR/pillarbox-apple/compare/0.7.0...0.8.0
Picture in Picture support
22 weeks ago
This release introduces support for Picture in Picture.
## Picture in Picture
- Added basic Picture in Picture support to `VideoView`.
- Implemented basic Picture in Picture support for `SystemVideoView`.
- Support advanced Picture in Picture integration.
## Miscellaneous Improvements
- Added translations.
- Improved visibility tracking with VoiceOver enabled.
- Consolidated player publishers.
- Removed all workarounds created for AirPlay.
- Updated documentation.
- Reduced the frequency of playback rate updates sent to analytics.
- Enhanced playback speed support implementation.
- Improved the demo application.
- Enhanced player item tracker API and stream type transition support.
- Simplified background video measurement management for comScore.
## Fixes
- Corrected custom slider animation.
- Addressed flaky tests.
- Resolved seek bar slowness caused by media selection.
- Mitigated performance issues related to media selection criteria retrieval.
- Preserved media selection characteristics between selections.
- Fixed media selection issues when altering the current selection programmatically.
## What's Changed
* Translate packages by @defagos in https://github.com/SRGSSR/pillarbox-apple/pull/574
* Improve visibility tracking with VoiceOver enabled by @defagos in https://github.com/SRGSSR/pillarbox-apple/pull/575
* Consolidate player publishers by @waliid in https://github.com/SRGSSR/pillarbox-apple/pull/587
* Fix custom slider animation by @defagos in https://github.com/SRGSSR/pillarbox-apple/pull/589
* Update Commanders Act and comScore SDKs by @defagos in https://github.com/SRGSSR/pillarbox-apple/pull/588
* Fix flaky tests by @defagos in https://github.com/SRGSSR/pillarbox-apple/pull/594
* Remove all workarounds made for AirPlay by @waliid in https://github.com/SRGSSR/pillarbox-apple/pull/591
* Fix seek bar slowness due to media selection by @waliid in https://github.com/SRGSSR/pillarbox-apple/pull/590
* Mitigate media selection criteria retrieval performance issues by @defagos in https://github.com/SRGSSR/pillarbox-apple/pull/596
* Preserve media selection characteristics between selections by @defagos in https://github.com/SRGSSR/pillarbox-apple/pull/597
* Update gems and some docs by @waliid in https://github.com/SRGSSR/pillarbox-apple/pull/592
* Fix media selection issues when altering current selection programmatically by @defagos in https://github.com/SRGSSR/pillarbox-apple/pull/600
* Minimize the frequency of playback rate updates sent to analytics by @waliid in https://github.com/SRGSSR/pillarbox-apple/pull/599
* Improve playback speed support implementation by @defagos in https://github.com/SRGSSR/pillarbox-apple/pull/601
* Share current item publisher for consistency by @defagos in https://github.com/SRGSSR/pillarbox-apple/pull/602
* Display the URL cache size by @waliid in https://github.com/SRGSSR/pillarbox-apple/pull/604
* Remove superfluous observation by @defagos in https://github.com/SRGSSR/pillarbox-apple/pull/608
* Make routing management global by @defagos in https://github.com/SRGSSR/pillarbox-apple/pull/621
* Add basic Picture in Picture support to `VideoView` by @defagos in https://github.com/SRGSSR/pillarbox-apple/pull/623
* Support advanced PiP integration by @waliid in https://github.com/SRGSSR/pillarbox-apple/pull/624
* Remove superfluous PiP identifier by @defagos in https://github.com/SRGSSR/pillarbox-apple/pull/625
* Implement a style to prevent redundant menus in the macOS app by @waliid in https://github.com/SRGSSR/pillarbox-apple/pull/627
* Add the support of the Picture in Picture for the system video view by @waliid in https://github.com/SRGSSR/pillarbox-apple/pull/628
* Document Picture in Picture integration by @defagos in https://github.com/SRGSSR/pillarbox-apple/pull/629
* Restore from Picture in Picture earlier by @defagos in https://github.com/SRGSSR/pillarbox-apple/pull/630
* Fix the display issue related to clearing the cache by @waliid in https://github.com/SRGSSR/pillarbox-apple/pull/633
* Support Picture in Picture in playlists by @waliid in https://github.com/SRGSSR/pillarbox-apple/pull/631
* Correct the deferred seek by @waliid in https://github.com/SRGSSR/pillarbox-apple/pull/632
* Sort BUs by alphabetical order by @waliid in https://github.com/SRGSSR/pillarbox-apple/pull/635
* Add source code access for showcases by @waliid in https://github.com/SRGSSR/pillarbox-apple/pull/634
* Fix the path for accessing the source code by @waliid in https://github.com/SRGSSR/pillarbox-apple/pull/637
* Improve setting support by @defagos in https://github.com/SRGSSR/pillarbox-apple/pull/638
* Point at matching source code version by @defagos in https://github.com/SRGSSR/pillarbox-apple/pull/640
* Add TestFlight link by @defagos in https://github.com/SRGSSR/pillarbox-apple/pull/641
* Remove UIKit-oriented APIs by @defagos in https://github.com/SRGSSR/pillarbox-apple/pull/642
* Enable new rules introduced in SwiftLint 0.53.0 by @defagos in https://github.com/SRGSSR/pillarbox-apple/pull/645
* Add GitHub shortcuts by @waliid in https://github.com/SRGSSR/pillarbox-apple/pull/643
* Display SRG SSR media duration in minutes by @defagos in https://github.com/SRGSSR/pillarbox-apple/pull/644
* Remove useless imports by @waliid in https://github.com/SRGSSR/pillarbox-apple/pull/646
* Improve player item tracker API and stream type transition support by @defagos in https://github.com/SRGSSR/pillarbox-apple/pull/647
* Remove overly complicated background video measurement management for comScore by @defagos in https://github.com/SRGSSR/pillarbox-apple/pull/649
**Full Changelog**: https://github.com/SRGSSR/pillarbox-apple/compare/0.6.0...0.7.0
Audio tracks, subtitles and user consent
31 weeks ago
This release adds support for audio tracks and subtitles.
# Audio tracks and subtitles
- Add media selection APIs to retrieve available and selected audio tracks and subtitles or to change the current selection.
- Display forced subtitles when available.
- Automatically prefer tracks intended for Audio Description and SDH & CC depending on device accessibility settings.
- Override media selection programmatically.
- Override subtitle text style programmatically (WebVTT only).
- Provide standard menu for audio tracks and subtitles.
# Global analytics labels and user consent support
- You can optionally provide an `AnalyticsDataSource` when starting `Analytics`. This data source can be used to deliver global labels in all comScore and Commanders Act events.
- User consent can be provided in comScore and Commanders Act global labels.
# Breaking changes
- The `restart` and `canRestart` APIs have been renamed as `replay` and `canReplay` respectively. These APIs now always resume playback if needed.
# Miscellaneous improvements
- Prevent playback of content containing at least a blocked segment.
- Improve automatic visibility management.
- Improve SRG SSR resource resolution to prefer HLS streams when available, most notably for SWI content.
- Add `playbackSpeed` binding API.
- Provide playback speed selection in standard menu API.
- Remove unused Diagnostics and UserInterface packages.
- Remove unused Google Cast SDK dependency.
# Fixes
- Fix playback crashing when seeking near the end of some streams.
- Always send `uptime` to Commanders Act for livestreams, no matter the offset from the live edge.
- Fix player leak on tvOS.
- Fix never-ending slider interactions.
- Retrieve SRG SSR metadata on a device basis (vector).
- Fix unplayable RTS audio content.
# What's Changed
* Update CI documentation for reliable git-describe results by @defagos in https://github.com/SRGSSR/pillarbox-apple/pull/497
* Generate local stream for subtitles and audio tracks by @waliid in https://github.com/SRGSSR/pillarbox-apple/pull/498
* Add support for subtitles and audio tracks by @defagos in https://github.com/SRGSSR/pillarbox-apple/pull/516
* Reduce stale bot threshold by @defagos in https://github.com/SRGSSR/pillarbox-apple/pull/517
* Retrieve media composition specific to supported vectors by @defagos in https://github.com/SRGSSR/pillarbox-apple/pull/519
* Avoid sound playing for a short while after system player UI dismissal on tvOS by @defagos in https://github.com/SRGSSR/pillarbox-apple/pull/522
* Add WWDC Keynote stream to examples by @defagos in https://github.com/SRGSSR/pillarbox-apple/pull/525
* Keep user interface visible when seeking within an audio by @defagos in https://github.com/SRGSSR/pillarbox-apple/pull/527
* Properly ensure menu item ordering by @defagos in https://github.com/SRGSSR/pillarbox-apple/pull/529
* Always send uptime for livestreams by @defagos in https://github.com/SRGSSR/pillarbox-apple/pull/531
* Replace deprecated stale bot with maintained one by @defagos in https://github.com/SRGSSR/pillarbox-apple/pull/530
* Use view modifiers where appropriate by @defagos in https://github.com/SRGSSR/pillarbox-apple/pull/532
* Show user interface when returning to the foreground while not playing by @defagos in https://github.com/SRGSSR/pillarbox-apple/pull/526
* Fix neverending custom slider interactions by @defagos in https://github.com/SRGSSR/pillarbox-apple/pull/528
* Add support for forced subtitles by @defagos in https://github.com/SRGSSR/pillarbox-apple/pull/533
* Show user interface when playback is paused by @defagos in https://github.com/SRGSSR/pillarbox-apple/pull/535
* Add SDH and CC support by @defagos in https://github.com/SRGSSR/pillarbox-apple/pull/536
* Update correctly subtitle selection by @waliid in https://github.com/SRGSSR/pillarbox-apple/pull/538
* Update advice about automatic audio rendition selection by @defagos in https://github.com/SRGSSR/pillarbox-apple/pull/539
* Enhancing the media selection options by @waliid in https://github.com/SRGSSR/pillarbox-apple/pull/544
* Update YouTubeKit by @waliid in https://github.com/SRGSSR/pillarbox-apple/pull/543
* Support subtitle appearance customization by @defagos in https://github.com/SRGSSR/pillarbox-apple/pull/545
* Improve default language ordering by @waliid in https://github.com/SRGSSR/pillarbox-apple/pull/546
* Add priority on supported streaming methods by @waliid in https://github.com/SRGSSR/pillarbox-apple/pull/547
* Reset media selection context when no item is being played by @defagos in https://github.com/SRGSSR/pillarbox-apple/pull/549
* Make efficient seeks near the end of the available range safe by @waliid in https://github.com/SRGSSR/pillarbox-apple/pull/550
* Rename restart API as replay by @defagos in https://github.com/SRGSSR/pillarbox-apple/pull/551
* Add audio tracks and subtitles analytics by @waliid in https://github.com/SRGSSR/pillarbox-apple/pull/552
* Fix media composition parsing by @waliid in https://github.com/SRGSSR/pillarbox-apple/pull/554
* Use page name instead of content title for Commanders Act by @waliid in https://github.com/SRGSSR/pillarbox-apple/pull/557
* Prevent any chapter from being played if one of its segments is blocked by @defagos in https://github.com/SRGSSR/pillarbox-apple/pull/558
* Add support for user consent by @waliid in https://github.com/SRGSSR/pillarbox-apple/pull/561
* Cleanup unused packages and dependencies by @defagos in https://github.com/SRGSSR/pillarbox-apple/pull/565
* Use Commanders Act debug source key in unit tests by @defagos in https://github.com/SRGSSR/pillarbox-apple/pull/563
* Revisit menu API by @defagos in https://github.com/SRGSSR/pillarbox-apple/pull/570
* Update for Xcode 15 and iOS / tvOS 17 support by @defagos in https://github.com/SRGSSR/pillarbox-apple/pull/569
**Full Changelog**: https://github.com/SRGSSR/pillarbox-apple/compare/0.5.1...0.6.0
Enhancements and bug fix
39 weeks ago
This update includes several enhancements and a bug fix.
# Enhancements
- The default Commanders Act logging is now used.
- The auto-hide standard delay has been reduced from 4 to 3 seconds.
- Full-screen functionality has been improved on iPad.
- A `PasteButton` has been added to the Examples view to paste URLs more easily.
- Player and analytics versions have been introduced.
# Bug Fix
- The usage of the `PhaseAnimator` has been removed to avoid freezing the UI on iOS 17 Beta 4.
# What's Changed
* Reduce auto-hide standard delay by @defagos in https://github.com/SRGSSR/pillarbox-apple/pull/482
* Improve full screen support on iPad by @defagos in https://github.com/SRGSSR/pillarbox-apple/pull/481
* Add YouTube auto paste by @waliid in https://github.com/SRGSSR/pillarbox-apple/pull/480
* Fix status bar incorrectly togglable for audio by @defagos in https://github.com/SRGSSR/pillarbox-apple/pull/483
* Group packages by @defagos in https://github.com/SRGSSR/pillarbox-apple/pull/487
* Avoid PhaseAnimator usage by @waliid in https://github.com/SRGSSR/pillarbox-apple/pull/488
* Use default Commanders Act logging by @defagos in https://github.com/SRGSSR/pillarbox-apple/pull/489
* Replace YouTube auto paste by a PasteButton by @waliid in https://github.com/SRGSSR/pillarbox-apple/pull/491
* Add feedback report reference to known audio duration issue for iPad apps running on macOS by @defagos in https://github.com/SRGSSR/pillarbox-apple/pull/494
* Add a player version by @waliid in https://github.com/SRGSSR/pillarbox-apple/pull/493
**Full Changelog**: https://github.com/SRGSSR/pillarbox-apple/compare/0.5.0...0.5.1
Standard SRG SSR analytics
39 weeks ago
This Pillarbox release implements standard SRG SSR streaming analytics. It also provides the necessary toolset to measure page views and events in SRG SSR applications.
This release also adds support for playback speed controls and makes it possible to promote a single instance for system integration in the context of multi-instance player experiences.
Analytics must still be validated but otherwise Pillarbox can be considered suitable for production.
# Standard SRG SSR analytics
Standard SRG SSR analytics (comScore / Mediapulse and Commanders Act / Mapp) have been added:
- Introduce `Analytics` singleton to manage analytics setup as well as page view and event tracking.
- Implement standard `ComScoreTracker` and `CommandersAct` stream trackers. These trackers are automatically associated with URN-based items played using `CoreBusiness` but can also be integrated with other data sources if needed.
- Provide helpers for user interface tracking:
- `PageViewTracking` makes it possible to associate page view analytics metadata with view controllers in UIKit contexts.
- `PageViewContainerTracking` can be used to integrate custom view controllers with the page view analytics engine. Integration with standard UIKit containers (`UINavigationController`, `UITabBarController`, etc.) is provided.
- Modifiers for declarative view tracking in SwiftUI contexts.
- Provide helpers for event tracking.
# Playback speed
Playback speed support has been added to the `Player`. Applications are responsible of displaying associated controls however they like:
- Add APIs to set a desired playback speed, retrieve the available speed range and the currently effective playback speed.
- Implement support for livestreams, including dynamic speed adjustments for DVR.
- Support playback speed in playlists.
# Multi-instance support
- Several instances have always been supported by Pillarbox but this release adds APIs to promote one instance for integration into the Control Center and with AirPlay.
# Miscellaneous improvements
- A `BufferTracker` has been introduced to to be notified about content buffering, in a way similar to `ProgressTracker`.
- The `LayoutReader` view has been replaced by a `View.readLayout(into:)` modifier which is more convenient to use.
- The `InteractionView` detecting any kind of user interaction has been removed. Use a combination of gesture recognizers to detect user interaction and report them to a `VisibilityTracker` instead.
- Improve seek smoothness to match the native system user experience.
- Add muted playback support.
- Provide presentation size information, which can be used to determine the content aspect ratio and adjust the player layout accordingly.
- Add overlay support to `SystemVideoView`.
- Ensure proper support for Xcode 15 and iOS / iPadOS / tvOS 17 beta.
- Automatically enable body counters display in Xcode previews.
# Demo improvements and fixes
- Improve slider appearance and behavior.
- Add ability to play YouTube content for tests purposes.
- Add playback speed support.
- Add full-screen support to the playlist demo.
- Add blurred layout example.
- Add demo descriptions.
- Add more sample streams.
- Automatically resume playback when returning from background in selected demos.
- Fix server selection.
# Fixes
- Rename `Environment` as `Server` to avoid frequent conflicts with SwiftUI `Environment`.
- Support for iPad applications run on Silicon Macs has been restored.
# What's Changed
* Rename a `LayoutInfo` property by @waliid in https://github.com/SRGSSR/pillarbox-apple/pull/334
* Setup tracking by @defagos in https://github.com/SRGSSR/pillarbox-apple/pull/335
* Provide library version in analytics by @waliid in https://github.com/SRGSSR/pillarbox-apple/pull/338
* Add full screen support to the demo player by @defagos in https://github.com/SRGSSR/pillarbox-apple/pull/341
* Provide presentation size information by @defagos in https://github.com/SRGSSR/pillarbox-apple/pull/340
* Add blurred layout example by @defagos in https://github.com/SRGSSR/pillarbox-apple/pull/342
* Support page view and event tracking by @waliid in https://github.com/SRGSSR/pillarbox-apple/pull/343
* Implement streaming analytics testing tools by @waliid in https://github.com/SRGSSR/pillarbox-apple/pull/345
* Improve Circumspect file structure by @defagos in https://github.com/SRGSSR/pillarbox-apple/pull/346
* Update to Xcode 14.3 by @defagos in https://github.com/SRGSSR/pillarbox-apple/pull/347
* Update Nimble to version 12 by @defagos in https://github.com/SRGSSR/pillarbox-apple/pull/348
* Implement comScore stream tracking by @defagos in https://github.com/SRGSSR/pillarbox-apple/pull/352
* Implement Commanders Act stream tracking by @waliid in https://github.com/SRGSSR/pillarbox-apple/pull/354
* typo by @mbruegmann in https://github.com/SRGSSR/pillarbox-apple/pull/357
* Add automatic page view tracking support by @defagos in https://github.com/SRGSSR/pillarbox-apple/pull/358
* Fix failing local test data generation by @defagos in https://github.com/SRGSSR/pillarbox-apple/pull/361
* Avoid ghost views by @defagos in https://github.com/SRGSSR/pillarbox-apple/pull/359
* Support iPad applications run on Silicon Macs by @defagos in https://github.com/SRGSSR/pillarbox-apple/pull/364
* Fix incorrectly inhibited taps on tracked views by @defagos in https://github.com/SRGSSR/pillarbox-apple/pull/366
* Add muted playback support by @defagos in https://github.com/SRGSSR/pillarbox-apple/pull/363
* Update Swiftlint to version 0.52.0 by @defagos in https://github.com/SRGSSR/pillarbox-apple/pull/365
* Remove debugging helpers in release builds by @defagos in https://github.com/SRGSSR/pillarbox-apple/pull/370
* Fix incorrect volume button position in safe area by @defagos in https://github.com/SRGSSR/pillarbox-apple/pull/371
* Enable body counter debugging in Xcode previews by @defagos in https://github.com/SRGSSR/pillarbox-apple/pull/374
* Avoid conflicts with SwiftUI environment attribute by @defagos in https://github.com/SRGSSR/pillarbox-apple/pull/377
* Add playback speed support by @defagos in https://github.com/SRGSSR/pillarbox-apple/pull/394
* Fix compilation with Xcode 15 by @defagos in https://github.com/SRGSSR/pillarbox-apple/pull/396
* Update analytics based on the current playback speed by @defagos in https://github.com/SRGSSR/pillarbox-apple/pull/395
* Split player implementation over several files by @defagos in https://github.com/SRGSSR/pillarbox-apple/pull/397
* Fix metadata display and remote commands on the Control Center by @waliid in https://github.com/SRGSSR/pillarbox-apple/pull/398
* Support multiple player instances by @waliid in https://github.com/SRGSSR/pillarbox-apple/pull/399
* Add Apple reference to known issues by @waliid in https://github.com/SRGSSR/pillarbox-apple/pull/402
* Add ability to disable AirPlay and Control Center integration by @defagos in https://github.com/SRGSSR/pillarbox-apple/pull/400
* Fix server selection by @defagos in https://github.com/SRGSSR/pillarbox-apple/pull/407
* Automatically resume playback when returning from background in specific demos by @defagos in https://github.com/SRGSSR/pillarbox-apple/pull/405
* Add the PresentationSize issue with AirPlay among the list of known issues by @waliid in https://github.com/SRGSSR/pillarbox-apple/pull/406
* Add a new `animation` method that take two values by @waliid in https://github.com/SRGSSR/pillarbox-apple/pull/408
* Add showcase demo descriptions by @defagos in https://github.com/SRGSSR/pillarbox-apple/pull/404
* Polish documentation by @defagos in https://github.com/SRGSSR/pillarbox-apple/pull/403
* Fix broken documentation links by @defagos in https://github.com/SRGSSR/pillarbox-apple/pull/409
* Fix analytics by @waliid in https://github.com/SRGSSR/pillarbox-apple/pull/414
* Apply the speed even though the player is paused by @waliid in https://github.com/SRGSSR/pillarbox-apple/pull/415
* Fix duplicate page views by @defagos in https://github.com/SRGSSR/pillarbox-apple/pull/416
* Drive demo navigation with iOS 16 navigation API by @defagos in https://github.com/SRGSSR/pillarbox-apple/pull/421
* Avoid measuring video streaming in background by @waliid in https://github.com/SRGSSR/pillarbox-apple/pull/425
* Align analytics demo configuration with Android by @defagos in https://github.com/SRGSSR/pillarbox-apple/pull/426
* Adjust page view analytics according to Mediapulse specifications by @waliid in https://github.com/SRGSSR/pillarbox-apple/pull/427
* Automatically link against AdSupport.framework by @defagos in https://github.com/SRGSSR/pillarbox-apple/pull/428
* Add system video view overlay support by @defagos in https://github.com/SRGSSR/pillarbox-apple/pull/430
* Fix conflict with standard Commanders Act event by @defagos in https://github.com/SRGSSR/pillarbox-apple/pull/432
* Remove sentinel by @waliid in https://github.com/SRGSSR/pillarbox-apple/pull/433
* Add some Bitmovin streams by @waliid in https://github.com/SRGSSR/pillarbox-apple/pull/434
* Make the project compile again with Xcode 14 by @defagos in https://github.com/SRGSSR/pillarbox-apple/pull/436
* Remove media bandwidth from CommandersAct analytics by @waliid in https://github.com/SRGSSR/pillarbox-apple/pull/449
* Remove playback rate from Commanders Act analytics by @waliid in https://github.com/SRGSSR/pillarbox-apple/pull/450
* Rename site by appSiteName for the analytics configuration by @waliid in https://github.com/SRGSSR/pillarbox-apple/pull/452
* Add sample streams by @defagos in https://github.com/SRGSSR/pillarbox-apple/pull/437
* Add loaded time ranges by @waliid in https://github.com/SRGSSR/pillarbox-apple/pull/439
* Fix slider label contrast issues by @defagos in https://github.com/SRGSSR/pillarbox-apple/pull/454
* Fix some flaky tests by @waliid in https://github.com/SRGSSR/pillarbox-apple/pull/455
* Document route picker view known issue by @defagos in https://github.com/SRGSSR/pillarbox-apple/pull/460
* Fix animation issues in custom player user interfaces by @defagos in https://github.com/SRGSSR/pillarbox-apple/pull/459
* Update readme showcase by @defagos in https://github.com/SRGSSR/pillarbox-apple/pull/461
* Provide analytics data per service by @defagos in https://github.com/SRGSSR/pillarbox-apple/pull/462
* Add a pulse animation on the slider by @waliid in https://github.com/SRGSSR/pillarbox-apple/pull/463
* Rename page view properties from title to name by @waliid in https://github.com/SRGSSR/pillarbox-apple/pull/465
* Improve seek user experience by @defagos in https://github.com/SRGSSR/pillarbox-apple/pull/466
* Fix tests running unnecessarily for 20 seconds by @defagos in https://github.com/SRGSSR/pillarbox-apple/pull/471
* Update dependencies, including Google Cast SDK 4.8.0 by @defagos in https://github.com/SRGSSR/pillarbox-apple/pull/469
* Separate buffer tracking from progress tracking by @defagos in https://github.com/SRGSSR/pillarbox-apple/pull/467
* Fix control centering by @defagos in https://github.com/SRGSSR/pillarbox-apple/pull/474
* Fix uptime implementation by @defagos in https://github.com/SRGSSR/pillarbox-apple/pull/472
* Support some YouTube streams by @waliid in https://github.com/SRGSSR/pillarbox-apple/pull/475
* Further improve seek user experience by @defagos in https://github.com/SRGSSR/pillarbox-apple/pull/476
* Fix YouTube identifier parsing by @defagos in https://github.com/SRGSSR/pillarbox-apple/pull/477
# New Contributors
* @mbruegmann made their first contribution in https://github.com/SRGSSR/pillarbox-apple/pull/357
**Full Changelog**: https://github.com/SRGSSR/pillarbox-apple/compare/0.4.0...0.5.0