Releases: SRGSSR/pillarbox-apple
Performance issue fix
Improvement
- Improve
Playlist
component.
Fix
- Fix date retrieval performance issue with some content (e.g. MP3).
What's Changed
- Fix date retrieval performance issue with some content by @defagos in #997
- Replace lists with forms where appropriate by @defagos in #998
- Enhance the
Playlist
component by @waliid in #1002
Full Changelog: 3.0.0...4.0.0
Metrics, monitoring and improved playlist support
This release mostly focuses on metrics and monitoring. It makes it possible to inspect and monitor playback performance, both locally and remotely.
It also improves features associated with playlists, adding looping playback as well as a simpler way to manage items in a playlist at the user interface level.
Metrics
- Provide several key metrics during playback (bitrates, stalls, data requests, frame drops, etc.). Current metrics can be queries from
PlayerProperties
at any time, or obtained periodically usingperiodicMetricsPublisher(forInterval:queue:limit:)
. - Receive important events during playback (metadata and asset loading, errors, stalls, etc.) by subscribing to the
metricEventsPublisher
publisher. - The
MetricsCollector
observable object lets you easily create metrics visualizations, e.g. using SwiftUI or Swift Charts.
Monitoring
- Add PillarboxMonitoring package, offering seamless integration with Pillarbox monitoring platform.
- Provide
MetricsTracker
to automatically collect and send metrics data to Pillarbox monitoring platform.
Tracking
- Make trackers easier to implement with reliable access to properties when a tracker is disabled.
- Add metrics protocol method to
PlayerItemTracker
. - Add optional and mandatory behaviors to tracker adapters, letting you control how
isTrackingEnabled
affects them. - Add support for optional session identifiers, letting you associate an identifier with a tracker, useful to relate data remotely collected by a tracker with an associated local session.
Playlist support
- The items of a
Player
can be simply displayed as aPlaylist
supporting usual actions (reorder, delete). - A
source
can be associated to items, making it possible to display any kind of relevant data in a playlist user interface. - Repeated playback of a single item or of an entire playlist can be enabled with the new
repeatMode
player property.
Miscellaneous improvements
- Add date support for streams embedding timestamps. A seek method accepting a date as parameter has been enabled and a
date()
method has been added to retrieve the current date. - Make smart navigation interval configurable.
- Improve server support in CoreBusiness by adding support for custom server URLs and query parameters.
- Add Audio Description information to Commanders Act analytics labels.
- Add date interval measurement operator to the Core package.
- Add stopwatch to the Core package.
- Remove Timelane.
Breaking changes
- Update
PlayerItemTracker
protocol method signatures. Implementations can also be made simpler using properties now provided when a tracker is disabled. PlayerConfiguration
navigation mode is now set through anavigationMode
property instead of a simple Boolean flag.- Commanders Act and comScore events captured do not require a leading dot anymore.
- The player current item is set using
currentItem
. The index-basedcurrentIndex
andsetCurrentIndex(_:)
APIs have been removed accordingly. - The current time was retrieved from a
time
property which, for consistency, has been replaced with atime()
function.
Fixes
- Make User Agent reliable in Commanders Act events.
Demo improvements
- Make tvOS Playback HUD, displaying various streaming key metrics, also available on iOS. The HUD can be enabled and customized under the demo Settings tab.
- Add metrics debugging view to the main custom player layout, accessible from its settings menu.
- Provide more entry options for custom URL and URN entry (token, DRM, server).
- Make the custom player slider accessible with VoiceOver.
- Add basic keyboard shortcut support.
- Add BBC and Mux test streams.
- Display metrics session identifier when a failure is encountered while playing SRG SSR content. This makes it possible to relate a playback session to data visualized remotely.
- Improve automatic keyboard dismissal.
What's changed
- Add Swift Package Index documentation links by @defagos in #889
- Update SwiftLint to version 0.55.1 by @defagos in #890
- Improve server support in Core Business by @defagos in #891
- Add playback HUD support by @defagos in #893
- Immediately dismiss the keyboard when scrolling by @defagos in #895
- Update Xcode to version 15.4 by @defagos in #896
- Make smart navigation interval configurable by @defagos in #902
- Provide audio description information in analytics labels by @defagos in #894
- Add basic keyboard shortcut support by @defagos in #898
- Add support for token-protected and DRM-encrypted URLs to the demo by @defagos in #907
- Add useful testing information for stream encoding and packaging teams by @defagos in #910
- Gather player metrics by @defagos in #912
- Simplify the gathering of player metrics by @waliid in #915
- Update issue templates by @defagos in #914
- Add metrics collector by @defagos in #916
- Add SRG SSR environment support to URN entry by @defagos in #919
- Use built-in player metadata image retrieval by @defagos in #921
- Measure startup times by @waliid in #920
- Make metric event API more ergonomic by @defagos in #922
- Improve behavior for streams providing no metrics by @defagos in #923
- Document PillarboxPlayer APIs as supported on the main thread only by @defagos in #932
- Localize MB unit by @defagos in #933
- Fix incorrectly rounded displayed data volume by @defagos in #934
- Provide metric events for fatal errors by @defagos in #937
- Capture stalls in QoS metrics by @defagos in #938
- Provide warnings in QoS metric events by @defagos in #939
- Display event log in metrics debugging view by @defagos in #942
- Add BBC and Mux test streams to the demo by @defagos in #949
- Revisit player item tracking by @waliid in #950
- Reuse comScore session when pausing at item end by @defagos in #952
- Create basic QoS tracker by @waliid in #953
- Send QoS tracker payload data to a specific endpoint by @waliid in #962
- Update 3rd party dependencies by @defagos in #965
- Wait until the User Agent is retrieved by Commanders Act by @defagos in #964
- Update metrics tracker to most recent specifications by @defagos in #967
- Display monitoring session identifier in metrics debugging view by @defagos in #968
- Fix incorrect y-axis data volume scale by @defagos in #969
- Extract settings menu by @defagos in #972
- Add mandatory tracker support by @defagos in #971
- Update metrics tracker to most recent specifications by @defagos in #974
- Fix incorrect negative metrics when toggling AirPlay by @defagos in #976
- Remove Timelane by @defagos in #978
- Update metrics tracker to most recent specifications by @defagos in #977
- Document monitoring and metrics support by @defagos in #979
- Update SwiftLint to version 0.56.1 by @defagos in #980
- Improve metric event name consistency by @defagos in #983
- Avoid returning metrics for reserved items by @defagos in #982
- Fix missing comScore labels when replaying content by @defagos in #985
- Improve playlist user interface integration by @defagos in #986
- Fix incorrect metadata timings after recovering from failure by @defagos in #990
- Update SwiftLint to version 0.56.2 by @defagos in #991
- Fix incorrect QoE timing after recovering from failure by @defagos in #992
- Support repeat modes by @waliid in #993
- Add date support by @defagos in #994
- Make the player custom slider accessible via VoiceOver by @defagos in https://github.com/SRGSSR/...
Improved metadata support
This release improves support for metadata. This includes features for displaying content information and artworks in custom layouts, but also features that can enhance the user experience during playback.
Metadata
Player
provides metadata updates through a newmetadata
published property. Use this metadata to easily display information about the content being played in custom user interfaces.- Chapters can be associated with content being played. Those provide markers into the content, which can be used for display purposes or to offer alternative ways to navigate the content.
- Images are now retrieved by the player directly and do not need to be loaded by a
PlayerItem
custom publisher anymore (though they still can if this approach is more appropriate). The main artwork for a content as well as images associated with chapters must be provided asImageSource
s. URL-based sources are automatically fetched by the player when actually needed, avoiding unnecessary fetches when not used.
Blocked time ranges
- Optionally associate blocked time ranges with content being played. These time ranges are automatically skipped during playback. Seeking into them is prevented as well.
- Blocked time ranges are displayed as interstitials in the tvOS system playback user interface.
Opening and end credits
- Define time ranges associated with opening and closing credits. These time ranges can be used in custom user interfaces, e.g. to display a skip button during credits.
User interface
- Add support for contextual actions to
SystemVideoView
. - Use
LazyImage
in SwiftUI layouts to display images lazily loaded from anImageSource
. UseLazyUIImage
where aUIImage
is required instead.
SRG SSR content support improvements
- Prevent playback of time ranges blocked by SRG SSR editors, instead of preventing playback of the whole content.
- Extract chapters from SRG SSR content.
- Display season / episode information in the tvOS system playback user interface.
- Increase artwork image quality for SRG SSR content.
Miscellaneous
- Update translations.
- Add
Player.seek(to:completion:)
method to seek to a chapter. - Add
PlayerConfiguration.default
to obtain default player configuration settings. - Add `Publisher.delayIfNeeded(for:tolerance:scheduler:options:).
- Make
subscript(safeIndex:)
available for allArray
s.
Breaking changes
- Improve
CMTime
andCMTimeRange
consistency inProgressTracker
, returning.invalid
instead ofnil
when values are not available. Please update your code to check if a time or rangeisValid
rather than testing for nullability. PlayerItem
configuration now happens with a dedicatedPlayerItemConfiguration
parameter, not with a closure anymore.
Fixes
- Avoid undesired automatic Control Center integration on iOS when using the system playback user interface.
- Fix Control Center integration on tvOS.
- Fix incorrect times returned by a
ProgressTracker
when playing a DVR livestream at the live edge.
Demo improvements
- Display chapters in the custom player user interface on iOS.
- Display audio artworks in the custom player user interface on iOS.
- Make satellite radio streams available (Radio Swiss Pop, Radio Swiss Jazz and Radio Swiss Classic).
- Add examples for integration of a skip button during credits.
- Display blocked time ranges in the custom player slider on iOS.
- Improve the playlist example on tvOS.
Demo fixes
- Improve interactions with the demo custom slider.
- Fix custom player interface animation glitches.
- Prevent the custom player user interface from being toggled while scrubbing.
- Fix player settings not applied until the application is restarted.
What's changed
- Deliver player metadata by @waliid in #808
- Remove superfluous icon by @defagos in #811
- Fix unreliable test by @defagos in #812
- Introducing a user-friendly API for AVMetadataItem construction by @waliid in #809
- Polish implementation and documentation by @defagos in #814
- Add a TestFlight badge by @waliid in #821
- Improve metadata delivery by @waliid in #827
- Update translations from Crowdin by @defagos in #828
- Fix tvOS Control Center by @waliid in #829
- Update examples by @defagos in #830
- Display metadata in the iOS custom player by @waliid in #831
- Display chapters in iOS demo by @waliid in #832
- Rename ChapterMetadata to Chapter by @waliid in #833
- Improve chapter cell appearance by @defagos in #834
- Document metadata integration by @defagos in #835
- Enable advanced Picture in Picture and Control Center integration for the chapter-supporting player by @defagos in #836
- Remove chapters with non-matching media type by @defagos in #838
- Add test for mixed chapter filtering by @defagos in #841
- Never return chapters for audio content by @defagos in #842
- Return invalid times and ranges consistently with other player APIs by @defagos in #847
- Fix assertion raised when formatting invalid times by @defagos in #848
- Support opening and end credits by @waliid in #850
- Handle blocked time ranges by @waliid in #853
- Enable chapter support in the main custom player layout by @defagos in #855
- Improved tvOS playlist experience by @defagos in #856
- Add demo privacy manifest by @defagos in #857
- Fix documentation link by @defagos in #858
- Manage image retrieval at the player level by @defagos in #860
- Fix undesired seek in overlapping time ranges by @defagos in #863
- Display time ranges on custom slider by @waliid in #864
- Add blocked time range URN example by @defagos in #865
- Display artwork image for audio by @defagos in #866
- Add a test for nested time range by @waliid in #868
- Use new API for localization by @waliid in #869
- Add journalistic blocking reason by @defagos in #871
- Add HLS documentation links by @defagos in #870
- Apply current demo settings to player instances by @defagos in #872
- Prevent controls from being toggled while interacting by @defagos in #874
- Disable automatic now playing info updates on iOS by @defagos in #875
- Fix Control Center integration documentation on tvOS by @defagos in #877
- Load chapters and artwork images lazily by @waliid in #879
- Fix capped times delivered by a progress tracker at the live edge by @defagos in #880
- Document metadata integration by @defagos in #882
- Fix undesired animation by @waliid in #881
- Avoid settings menu being closed when controls disappear by @defagos in #883
- Align the loading indicator to the right when the UI is hidden by @waliid in #886
Full Changelog: 1.0.1...2.0.0
Performance issue fix
Fixes
- Fix a resource leak which could lead to performance issues over time.
What's changed
Full Changelog: 1.0.0...1.0.1
First official release 🎉
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 or a dedicate discussion.
Features
Refer to our documentation 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 #787
- Fix Control Center metadata sometimes disappearing after item deletion by @defagos in #786
- Use version 6.11.0 to avoid archive issue by @waliid in #788
- Update CI to Xcode 15.3 by @defagos in #795
- Add privacy manifest by @defagos in #789
- Add MMF support by @defagos in #792
- Update list of known issues with Control Center playback button state issue in multi-player configurations by @defagos in #793
- Update comScore SDK to version 6.12.2 by @defagos in #791
- Update translations by @defagos in #790
- Clean documentation by @waliid in #794
- Improve documentation by @defagos in #797
- Display library version as demo badge by @defagos in #796
- Improve test stability by @defagos in #798
- Remove unnecessary property update by @waliid in #799
Full Changelog: 0.11.0...1.0.0
Improved error management in playlists
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 #770
- Fix broken image link by @waliid in #771
- Improve demo slider by @defagos in #772
- Improve Control Center display in presence of errors by @waliid in #769
- Force simulator language and region by @defagos in #778
- Fix incorrect time position after disabling and enabling Control Center integration by @waliid in #779
- Support standard actions at item playback end by @waliid in #780
- Avoid unnecessary Commanders Act seek / play transitions by @defagos in #781
- Prepare for complete localization by @defagos in #782
- Remove CombineExt by @defagos in #783
Full Changelog: 0.10.0...0.11.0
Improved support for long playlists
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
asshouldPlay
.
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 #726
- Extend layout past the safe area by @defagos in #727
- Rename isRunning as shouldPlay by @defagos in #732
- Make all skips consistently non-smooth by @defagos in #731
- Fix replay behavior with unconsumed failed items by @defagos in #734
- Update start time example for consistency with other platforms by @defagos in #733
- Add metadata to the system player by @waliid in #735
- Avoid sending several page views to the analytics by @waliid in #737
- Avoid starting from an incorrect position in terms of analytics by @waliid in #739
- Update SwiftLint to version 0.54.0 by @defagos in #741
- Fix pre-commit hook by @defagos in #742
- Document how to trust plugins in a continuous integration setup by @defagos in #740
- Avoid unnecessary thread creation by item trackers by @defagos in #743
- Fix comScore test flakiness by @waliid in #744
- Increase playback speed during a long press gesture by @waliid in #746
- Use common Commanders Act unique identifier between v4 and v5 by @defagos in #752
- Support desktop as navigation device by @defagos in #751
- Update data provider to version 19.0.0 by @defagos in #755
- Fix unresponsive AirPlay button by @waliid in #754
- Fix incorrect navigation title by @defagos in #758
- Fix Swift Package Index documentation generation by @defagos in #759
- Update links for web player and demo by @defagos in #761
- Disable high speed gesture for monoscopic content by @defagos in #762
- Fix monoscopic support in playlists by @defagos in #763
- Remove web player link by @defagos in #765
- Improve support for long playlists by @defagos in #766
Full Changelog: 0.9.0...0.10.0
Monoscopic 360° video support
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 newVideoView/viewport(_:)
modifier to enable 360° display and choose and set an orientation in space. - Orientation in space requires a quaternion. Two
SCNQuaternionRotate(_:_:_:)
andSCNQuaternionWithAngleAndAxis(_:_:_:_:)
functions are provided to help build relevant quaternions, most notably for controlling the viewport through touch events. On iOS theSCNQuaternionForAttitude(_:)
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 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 theView/enabledForInAppPictureInPicture(persisting:)
method which, instead of executing a closure to cleanup resources associated with a player (potentially after Picture in Picture ends), ensures aPictureInPicturePersistable
object is kept alive during Picture in Picture playback. ThePictureInPicturePersistable
protocol can be optionally used to locally respond to Picture in Picture lifef cycle events as well. - Update
VideoView
andSystemVideoView
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 #686
- Add tracking documentation by @defagos in #685
- Add Picture in Picture tutorial by @waliid in #687
- Reoganize Player documention by @waliid in #688
- Document analytics integration by @defagos in #689
- Polish documentation by @defagos in #690
- Enhance code documentation by moving some references in appropriate sections by @waliid in #691
- Polish articles by @defagos in #692
- Set the correct duration for completing tutorials by @waliid in #693
- Improve tvOS navigation by @waliid in #694
- Update cells appearance for tvOS by @waliid in #695
- Enhance cells appearance for tvOS by @waliid in #699
- Improve the display of examples on tvOS by @waliid in #701
- Document SwiftUI property wrapper usage recommendations by @defagos in #706
- Update dependencies to most recent versions by @defagos in #709
- Add monoscopic 360° video support by @defagos in #702
- Add an access to Pillarbox Web via a WebView by @waliid in #711
- Fix missing media information in iOS cells by @waliid in #712
- Animate video view display by @defagos in #713
- Rename packages to avoid potential conflicts by @defagos in #714
- Update Xcode version used for CI to to 15.2 by @defagos in #715
- Fix product name conflicts by @defagos in #719
- Make player animations smoother by @defagos in #720
- Revise some documentation images by @waliid in #721
- Implementing Playback Speed Feature on tvOS by @waliid in #718
- Create a computed property to detect non-zero playback rates by @waliid in #722
- Remove superfluous selves by @defagos in #723
- Support starting playback at a given time by @defagos in #724
Full Changelog: 0.8.0...0.9.0
Documentation
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 #651
- Fix methods incorrectly marked as deprecated in documentation catalogs by @defagos in #652
- Revisit Player landing documentation page by @defagos in #654
- Improve icon display in the lists by @waliid in #656
- Improve page titles by @defagos in #655
- Update source code color in the setting page for the web by @waliid in #657
- Define featured pages with associated cards by @defagos in #658
- Update markdownlint by @defagos in #659
- Document asset loading by @defagos in #662
- Improve playback documentation by @waliid in #660
- Fix flaky test by @defagos in #664
- Document system integration by @defagos in #661
- Document
ProgressTracker
by @defagos in #663 - Add asset and player item documentation extensions by @waliid in #665
- Add tutorial code sample by @defagos in #666
- Organize progress tracker APIs by @defagos in #668
- Add progress tracking tutorial by @defagos in #667
- Extract project setup to a dedicated tutorial by @defagos in #669
- Add a tutorial for basic play and pause UI by @waliid in #670
- Add visibility tracking documentation and tutorial by @defagos in #671
- Add a tutorial for basic backward and forward seek by @waliid in #672
- Add pinch to zoom tutorial by @defagos in #673
- Consolidate documentation by @defagos in #674
- Add tutorial artworks by @defagos in #675
- Add Control Center tutorial by @waliid in #676
- Document state observation and layout optimization by @defagos in #677
- Remove test streams by @defagos in #678
- Add AirPlay tutorial by @waliid in #679
- Media selection documentation by @defagos in #680
Full Changelog: 0.7.0...0.8.0
Picture in Picture support
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 #574
- Improve visibility tracking with VoiceOver enabled by @defagos in #575
- Consolidate player publishers by @waliid in #587
- Fix custom slider animation by @defagos in #589
- Update Commanders Act and comScore SDKs by @defagos in #588
- Fix flaky tests by @defagos in #594
- Remove all workarounds made for AirPlay by @waliid in #591
- Fix seek bar slowness due to media selection by @waliid in #590
- Mitigate media selection criteria retrieval performance issues by @defagos in #596
- Preserve media selection characteristics between selections by @defagos in #597
- Update gems and some docs by @waliid in #592
- Fix media selection issues when altering current selection programmatically by @defagos in #600
- Minimize the frequency of playback rate updates sent to analytics by @waliid in #599
- Improve playback speed support implementation by @defagos in #601
- Share current item publisher for consistency by @defagos in #602
- Display the URL cache size by @waliid in #604
- Remove superfluous observation by @defagos in #608
- Make routing management global by @defagos in #621
- Add basic Picture in Picture support to
VideoView
by @defagos in #623 - Support advanced PiP integration by @waliid in #624
- Remove superfluous PiP identifier by @defagos in #625
- Implement a style to prevent redundant menus in the macOS app by @waliid in #627
- Add the support of the Picture in Picture for the system video view by @waliid in #628
- Document Picture in Picture integration by @defagos in #629
- Restore from Picture in Picture earlier by @defagos in #630
- Fix the display issue related to clearing the cache by @waliid in #633
- Support Picture in Picture in playlists by @waliid in #631
- Correct the deferred seek by @waliid in #632
- Sort BUs by alphabetical order by @waliid in #635
- Add source code access for showcases by @waliid in #634
- Fix the path for accessing the source code by @waliid in #637
- Improve setting support by @defagos in #638
- Point at matching source code version by @defagos in #640
- Add TestFlight link by @defagos in #641
- Remove UIKit-oriented APIs by @defagos in #642
- Enable new rules introduced in SwiftLint 0.53.0 by @defagos in #645
- Add GitHub shortcuts by @waliid in #643
- Display SRG SSR media duration in minutes by @defagos in #644
- Remove useless imports by @waliid in #646
- Improve player item tracker API and stream type transition support by @defagos in #647
- Remove overly complicated background video measurement management for comScore by @defagos in #649
Full Changelog: 0.6.0...0.7.0