Skip to content

Commit

Permalink
Add files for v6.8.0
Browse files Browse the repository at this point in the history
  • Loading branch information
timothyrodgers committed Sep 29, 2020
1 parent aa9945d commit e002693
Show file tree
Hide file tree
Showing 117 changed files with 443 additions and 343 deletions.
60 changes: 56 additions & 4 deletions CHANGELOG.md
@@ -1,3 +1,55 @@
## Release 6.8.0 ##

### Brightcove Player SDK for iOS (Core)

#### Additions and Improvements

* Adds the `BCOVTVPlayerViewDelegate` methods `playerDidBeginFastForward`, `playerDidEndFastForward`, `playerDidBeginFastRewind` and `playerDidEndFastRewind` to indicate the start and end of fast-forwarding and fast-rewinding.

* Improves reporting of FairPlay errors which are now passed as `kBCOVPlaybackSessionLifecycleEventError` lifecycle events.

* Fixes an issue where the use of Sidecar Subtitles caused the video to fail to play for some Dynamic Delivery accounts.

* Fixes an issue where the status of a terminated download was incorrectly reported as complete. Downloads are terminated when the app is terminated, for example by swiping up.

* Fixes an issue where `BCOVVideo -playableoffline` always returned `NO` on iOS 14.

* Fixes the appearance of the player progress bar on iOS 14.

* Fixes an issue where `kBCOVPlaybackSessionLifecycleEventFail` was not posted for bad video source URL's on iOS 11.

* Fixes an issue where rental licenses (dual expiry licenses) prevented playback on iOS 11.4.

### Google Cast Plugin for Brightcove Player SDK for iOS

#### Additions and Improvements

* Adds support for the Brightcove CAF Receiver. See the [Brightcove CAF Receiver](https://github.com/brightcove/brightcove-player-sdk-ios-googlecast#brightcove-cast-receiver) section of the Google Cast Plugin README for more information.

* Supports version 4.5.0 of the Google Cast SDK for iOS. See the [iOS Permissions Changes](https://developers.google.com/cast/docs/ios_sender/ios_permissions_changes) page for information about permission changes for iOS 14 and how they play into the Google Cast SDK.

* Fixes an issue where AirPlay failed to play EPA enabled content on 3rd and 4th generation Apple TV devices.

### IMA Plugin for Brightcove Player SDK for iOS

#### Breaking Changes

* As a result of new support for Google Ads IMA SDK 3.12.1 for iOS and 4.3.2 for tvOS, all `BCOVPlayerSDKManager(BCOVIMAAdditions)` category methods now require the `UIViewController` of the IMA ad container view to be passed as an additional parameter. Refer to the [BCOVPlayerSDKManager(BCOVIMAAdditions) Category Reference](https://docs.brightcove.com/ios-plugins/ima/Categories/BCOVPlayerSDKManager+BCOVIMAAdditions.html) page. Refer also to Section 3.12.0 of the [Google IMA iOS SDK release history](https://developers.google.com/interactive-media-ads/docs/sdks/ios/client-side/history).

#### Additions and Improvements

* Adds support for App Tracking Transparency for Google Interactive Media Ads SDK 3.12.1 for iOS and 4.3.2 for tvOS. See [Request App Tracking Transparency authorization](https://developers.google.com/interactive-media-ads/docs/sdks/ios/client-side/ios14) for more information.

* Corrects the value of `is_lat` for the purpose of Ad Tracking.

### SSAI Plugin for Brightcove Player SDK for iOS

#### Additions and Improvements

* Adds the `kBCOVPlaybackSessionLifecycleEventAdSkipped` lifecycle event type to allow for detecting when a user has skipped an ad.

* Fixes an issue where VMAP documents were requested twice.

## Release 6.7.11 ##

### Brightcove Player SDK for iOS (Core)
Expand All @@ -12,7 +64,7 @@

#### Additions and Improvements

* Adds the `BCOVTVPlayerViewDelegate` method `-liveIndicatorViewForIsPlaying:atLiveEdge:` to allow for customization of the DVR Live indicator.
* Adds the `BCOVTVPlayerViewDelegate` method `liveIndicatorViewForIsPlaying:atLiveEdge:` to allow for customization of the DVR Live indicator.

* Adds the `BCOVPlaybackControllerDelegate` method `playbackController:playbackSession:didChangeSelectedAudibleMediaOption` to be notified when the audible media option for the current video is changed.

Expand Down Expand Up @@ -348,7 +400,7 @@ FOUNDATION_EXPORT const unsigned char BrightcovePlayerSDKVersionString[];

#### Additions and Improvements

* Reduces the file size of the dynamic framework by ~10MB, and ~20MB for the static framework.
* Reduces the file size of the dynamic framework by ~10MB, and ~20MB for the static framework.

* Reduces CPU load up to 40% when playing video, decreases memory usage by up to 10%, and decreases energy usage by up to 30%.

Expand Down Expand Up @@ -378,9 +430,9 @@ FOUNDATION_EXPORT const unsigned char BrightcovePlayerSDKVersionString[];

#### Additions and Improvements

* Fixes an issue where the delegate method `playbackController:playbackSession:didExitAd:` was not being triggered when an applicable IMA ad was skipped.
* Fixes an issue where the delegate method `playbackController:playbackSession:didExitAd:` was not being triggered when an applicable IMA ad was skipped.

* Fixes an issue where ads were not replayed when `ignoringPreviouslyProcessedCuePoints` on `BCOVCuePointProgressPolicy` was disabled.
* Fixes an issue where ads were not replayed when `ignoringPreviouslyProcessedCuePoints` on `BCOVCuePointProgressPolicy` was disabled.

## Release 6.5.0

Expand Down
2 changes: 1 addition & 1 deletion FairPlay.md
@@ -1,4 +1,4 @@
# Using FairPlay With The Brightcove Player SDK for iOS, version 6.7.11.1278
# Using FairPlay With The Brightcove Player SDK for iOS, version 6.8.0.1318

Quick Start
===========
Expand Down
64 changes: 33 additions & 31 deletions OfflinePlayback.md
@@ -1,4 +1,4 @@
iOS App Developer's Guide to Video Downloading and Offline Playback with HLS in the Brightcove Player SDK for iOS, version 6.7.11.1278
iOS App Developer's Guide to Video Downloading and Offline Playback with HLS in the Brightcove Player SDK for iOS, version 6.8.0.1318
--------------

The Brightcove Native Player SDK allows you to download and play back HLS videos, including those protected with FairPlay encryption. Downloaded videos can be played back with or without a network connection.
Expand Down Expand Up @@ -40,7 +40,7 @@ As part of setup, you also need to create and assign an authorization proxy to h
```
// Publisher/application IDs not required for Dynamic Delivery
self.authProxy = [[BCOVFPSBrightcoveAuthProxy alloc] initWithPublisherId:nil
applicationId:nil];
applicationId:nil];
BCOVOfflineVideoManager.sharedManager.authProxy = self.authProxy;
```
Expand All @@ -56,10 +56,10 @@ In your user interface, you should indicate if a video is eligible for download.
When a user requests a video download, call

```
[BCOVOfflineVideoManager.sharedManager
requestVideoDownload:video
parameters:parameters
completion:^(BCOVOfflineVideoToken offlineVideoToken, NSError *error) {
[BCOVOfflineVideoManager.sharedManager requestVideoDownload:video
parameters:parameters
completion:^(BCOVOfflineVideoToken offlineVideoToken,
NSError *error) {
// store offlineVideoToken or handle error
Expand Down Expand Up @@ -96,10 +96,10 @@ The completion handler is where you asynchronously receive the offline video tok
If you plan to download multiple FairPlay-protected videos, it's a good idea to prelaod all the FairPlay licenses beforehand, because FairPlay license exchange cannot happen while the app is in the background. Preload a FairPlay license with a similar call:

```
[BCOVOfflineVideoManager.sharedManager
preloadFairPlayLicense:video
parameters:parameters
completion:^(BCOVOfflineVideoToken offlineVideoToken, NSError *error) {
[BCOVOfflineVideoManager.sharedManager preloadFairPlayLicense:video
parameters:parameters
completion:^(BCOVOfflineVideoToken offlineVideoToken,
NSError *error) {
// store offlineVideoToken or handle error
Expand All @@ -108,11 +108,11 @@ If you plan to download multiple FairPlay-protected videos, it's a good idea to
An offline video token will be established for the download at this point. After the license has been acquired, you can then request the video download without any parameters:

```
[BCOVOfflineVideoManager.sharedManager
requestVideoDownload:video
mediaSelections:nil
parameters:nil
completion:^(BCOVOfflineVideoToken offlineVideoToken, NSError *error) {
[BCOVOfflineVideoManager.sharedManager requestVideoDownload:video
mediaSelections:nil
parameters:nil
completion:^(BCOVOfflineVideoToken offlineVideoToken,
NSError *error) {
// returns the same offline video token here
Expand All @@ -123,15 +123,15 @@ At this point, the download will continue even if the user sends the app to the

### Downloading Secondary Tracks

Subtitle, caption and audio tracks of a language are known collectively as a media selection option. A video can have multiple media selection options, for example, English, French and Spanish. The language settings of the device determine the *preferred* media selection option, for example, English. When downloading a video for offline viewing, the preferred media selection option and any chosen additional media selection options are downloaded together in response to a single download request. Internally, the SDK manages the download using a single AVAggregateAssetDownloadTask.
When secondary tracks are to be included for offline viewing, they must be downloaded along with the video in the call to <nobr>`-requestVideoDownload:mediaSelections:parameters:completion:`</nobr>.

Downloading involves these basic steps:
Subtitle, caption and audio tracks for a language are known collectively as a Media Selection and are represented by Apple's `AVMediaSelection` class. A video can have multiple media selections, for example, English, French and Spanish. The language settings of the device determine the *preferred* media selection, for example, English. Internally, the SDK manages the download of a video and its secondary tracks using a single `AVAggregateAssetDownloadTask`.

1. Select the tracks you would like to download. Tracks are selected as AVMediaSelection objects and BCOVOfflineVideoManager provides the utility method `-[BCOVOfflineVideoManager urlAssetForVideo:error:]` to help you choose AVMediaSelections of interest. Refer to the "*Finding Media Selections*" methods of AVAsset.
1. Create an NSArray of your media selections, and pass it to `-[BCOVOfflineVideoManager requestVideoDownload:mediaSelections:parameters:completion:]` or pass `nil` to automatically download the preferred AVMediaSelections.
2. Track download progress using methods in the `BCOVOfflineVideoManagerDelegate` protocol.
Downloading for offline viewing involves these basic steps:

Some tracks may have already been downloaded as part of the initial video download.
1. Choose the media selections to be downloaded. Media Selection are properties of the `AVAsset` class. `BCOVOfflineVideoManager` provides the utility method `-[BCOVOfflineVideoManager urlAssetForVideo:error:]` to help you assemble `AVMediaSelection` objects of interest. Refer to the "*Finding Media Selections*" methods of `AVAsset`.
1. Create an `NSArray<AVMediaSelection *>` of your media selections, and pass it to `-[BCOVOfflineVideoManager requestVideoDownload:mediaSelections:parameters:completion:]` or pass `nil` to automatically download the *preferred* `AVMediaSelection` objects.
1. Track download progress using methods of the `BCOVOfflineVideoManagerDelegate` protocol. Note that when downloading additional media selections, progress callbacks are made for each downloaded item individually, with each ranging in progress from 0% to 100%.

**Displaying Sideband Subtitles**

Expand Down Expand Up @@ -188,10 +188,10 @@ parameters = @{
kBCOVOfflineVideoManagerRequestedBitrateKey: @( preferredBitrate )
};
[BCOVOfflineVideoManager.sharedManager
requestVideoDownload:video
parameters:parameters
completion:^(BCOVOfflineVideoToken offlineVideoToken, NSError *error) {
[BCOVOfflineVideoManager.sharedManager requestVideoDownload:video
parameters:parameters
completion:^(BCOVOfflineVideoToken offlineVideoToken,
NSError *error) {
// store offlineVideoToken or handle error
Expand Down Expand Up @@ -411,9 +411,10 @@ For example, here is how you can renew a FairPlay license with a new 30-day rent
// Request license renewal
[BCOVOfflineVideoManager.sharedManager renewFairPlayLicense:offlineVideoToken
video:video // recent video from Playback API or Playback Service class
video:video // recent video from Playback API or Playback Service
parameters:parameters
completion:^(BCOVOfflineVideoToken offlineVideoToken, NSError *error)
completion:^(BCOVOfflineVideoToken offlineVideoToken,
NSError *error)
{
// handle errors
Expand All @@ -430,10 +431,11 @@ If you are using the Playback Authorization Service you'll need to use the renew
```
// Request license renewal
[BCOVOfflineVideoManager.sharedManager renewFairPlayLicense:offlineVideoToken
video:video // recent video from Playback API or Playback Service class
authToken: authToken
video:video // recent video from Playback API or Playback Service
authToken:authToken
parameters:parameters
completion:^(BCOVOfflineVideoToken offlineVideoToken, NSError *error)
completion:^(BCOVOfflineVideoToken offlineVideoToken,
NSError *error)
{
// handle errors
Expand Down Expand Up @@ -527,7 +529,7 @@ When possible, a better way to play the same video twice is to simply seek the s

If this is not possible, and you still need to create another playback controller, another alternative is to remove the first `AVPlayer`'s current `AVPlayerItem` when you are done with the current session, and just before you destroy the playback controller. You can accomplish this with a single call:

```
```objc
[session.player replaceCurrentItemWithPlayerItem:nil];
```
Expand Down
4 changes: 3 additions & 1 deletion README.md
@@ -1,4 +1,4 @@
# Brightcove Player SDK for iOS, version 6.7.11.1278
# Brightcove Player SDK for iOS, version 6.8.0.1318


# Table of Contents
Expand Down Expand Up @@ -53,6 +53,8 @@ iOS 11.0 and above.

tvOS 11.0 and above.

The Core SDK is localized for Arabic (ar), English (en), French (fr), German (de), Japanese (ja), Korean (ko), Spanish (es), Simplified Chinese (zh-Hans) and Traditional Chinese (zh-Hant). To gain the benefit of a localization, your app must also be localized for the same language and locale.

Noteworthy <a name="Noteworthy"></a>
============

Expand Down
2 changes: 1 addition & 1 deletion SidecarSubtitles.md
@@ -1,4 +1,4 @@
# Using Sidecar Subtitles With The Brightcove Player SDK for iOS, version 6.7.11.1278
# Using Sidecar Subtitles With The Brightcove Player SDK for iOS, version 6.8.0.1318

Introduction
===================
Expand Down
2 changes: 1 addition & 1 deletion TVPlayer.md
@@ -1,4 +1,4 @@
# Using the TV Player UI With The Brightcove Player SDK for tvOS, version 6.7.11.1278
# Using the TV Player UI With The Brightcove Player SDK for tvOS, version 6.8.0.1318

## Overview
The Brightcove Native Player SDK provides a full set of controls for playback in tvOS on Apple TV known as the TV Player. The TV Player provides playback controls for both regular video content, and video content with Brightcove Server-Side Ad Insertion (SSAI) enabled.
Expand Down
Expand Up @@ -80,7 +80,7 @@ <h1 class="title">BCOVBasicSessionProviderSourceSelectionPolicy Block Reference<
<footer>
<div class="footer-copyright">

<p class="copyright">Copyright &copy; 2020 Brightcove. All rights reserved. Updated: 2020-09-09</p>
<p class="copyright">Copyright &copy; 2020 Brightcove. All rights reserved. Updated: 2020-09-29</p>


<p class="generator">Generated by <a href="http://appledoc.gentlebytes.com">appledoc 2.2.1 (build 1334)</a>.</p>
Expand Down
2 changes: 1 addition & 1 deletion html/Blocks/BCOVOfflineVideoLicenseCompletionCallback.html
Expand Up @@ -80,7 +80,7 @@ <h1 class="title">BCOVOfflineVideoLicenseCompletionCallback Block Reference</h1>
<footer>
<div class="footer-copyright">

<p class="copyright">Copyright &copy; 2020 Brightcove. All rights reserved. Updated: 2020-09-09</p>
<p class="copyright">Copyright &copy; 2020 Brightcove. All rights reserved. Updated: 2020-09-29</p>


<p class="generator">Generated by <a href="http://appledoc.gentlebytes.com">appledoc 2.2.1 (build 1334)</a>.</p>
Expand Down
2 changes: 1 addition & 1 deletion html/Blocks/BCOVPlaybackControllerViewStrategy.html
Expand Up @@ -80,7 +80,7 @@ <h1 class="title">BCOVPlaybackControllerViewStrategy Block Reference</h1>
<footer>
<div class="footer-copyright">

<p class="copyright">Copyright &copy; 2020 Brightcove. All rights reserved. Updated: 2020-09-09</p>
<p class="copyright">Copyright &copy; 2020 Brightcove. All rights reserved. Updated: 2020-09-29</p>


<p class="generator">Generated by <a href="http://appledoc.gentlebytes.com">appledoc 2.2.1 (build 1334)</a>.</p>
Expand Down
2 changes: 1 addition & 1 deletion html/Categories/NSDictionary+BCOVURLSupport.html
Expand Up @@ -174,7 +174,7 @@ <h4 class="method-subtitle">Declared In</h4>
<footer>
<div class="footer-copyright">

<p class="copyright">Copyright &copy; 2020 Brightcove. All rights reserved. Updated: 2020-09-09</p>
<p class="copyright">Copyright &copy; 2020 Brightcove. All rights reserved. Updated: 2020-09-29</p>


<p class="generator">Generated by <a href="http://appledoc.gentlebytes.com">appledoc 2.2.1 (build 1334)</a>.</p>
Expand Down
2 changes: 1 addition & 1 deletion html/Classes/BCOVAd.html
Expand Up @@ -516,7 +516,7 @@ <h4 class="method-subtitle">Declared In</h4>
<footer>
<div class="footer-copyright">

<p class="copyright">Copyright &copy; 2020 Brightcove. All rights reserved. Updated: 2020-09-09</p>
<p class="copyright">Copyright &copy; 2020 Brightcove. All rights reserved. Updated: 2020-09-29</p>


<p class="generator">Generated by <a href="http://appledoc.gentlebytes.com">appledoc 2.2.1 (build 1334)</a>.</p>
Expand Down
2 changes: 1 addition & 1 deletion html/Classes/BCOVAdSequence.html
Expand Up @@ -454,7 +454,7 @@ <h4 class="method-subtitle">Declared In</h4>
<footer>
<div class="footer-copyright">

<p class="copyright">Copyright &copy; 2020 Brightcove. All rights reserved. Updated: 2020-09-09</p>
<p class="copyright">Copyright &copy; 2020 Brightcove. All rights reserved. Updated: 2020-09-29</p>


<p class="generator">Generated by <a href="http://appledoc.gentlebytes.com">appledoc 2.2.1 (build 1334)</a>.</p>
Expand Down
2 changes: 1 addition & 1 deletion html/Classes/BCOVBasicSessionProvider.html
Expand Up @@ -192,7 +192,7 @@ <h4 class="method-subtitle">Declared In</h4>
<footer>
<div class="footer-copyright">

<p class="copyright">Copyright &copy; 2020 Brightcove. All rights reserved. Updated: 2020-09-09</p>
<p class="copyright">Copyright &copy; 2020 Brightcove. All rights reserved. Updated: 2020-09-29</p>


<p class="generator">Generated by <a href="http://appledoc.gentlebytes.com">appledoc 2.2.1 (build 1334)</a>.</p>
Expand Down
2 changes: 1 addition & 1 deletion html/Classes/BCOVBasicSessionProviderOptions.html
Expand Up @@ -174,7 +174,7 @@ <h4 class="method-subtitle">Declared In</h4>
<footer>
<div class="footer-copyright">

<p class="copyright">Copyright &copy; 2020 Brightcove. All rights reserved. Updated: 2020-09-09</p>
<p class="copyright">Copyright &copy; 2020 Brightcove. All rights reserved. Updated: 2020-09-29</p>


<p class="generator">Generated by <a href="http://appledoc.gentlebytes.com">appledoc 2.2.1 (build 1334)</a>.</p>
Expand Down

0 comments on commit e002693

Please sign in to comment.