Skip to content

Commit

Permalink
Prep 1.2.0 release (#35)
Browse files Browse the repository at this point in the history
* Fix bug in Mux-Stats-AVPlayer that prevents videoChangeForPlayer from working
* Fix bug in AVPlayer SDK where it misses initial `play` event at times if SDK is initialized too late
  • Loading branch information
nidhik authored Feb 10, 2020
1 parent 067d353 commit 89bc1aa
Show file tree
Hide file tree
Showing 59 changed files with 690 additions and 112 deletions.
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -2,3 +2,4 @@
**/xcshareddata/*
**/Pods/*
**/*.xcworkspace/*
*.DS_Store
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleShortVersionString</key>
<string>1.1.3</string>
<string>1.2.0</string>
<key>CFBundleVersion</key>
<string>1</string>
</dict>
Expand Down
Binary file not shown.
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,10 @@ typedef NS_ENUM(NSUInteger, MUXSDKPlayerState) {
MUXSDKPlayerStateViewEnd,
};

@protocol MUXSDKPlayDispatchDelegate
- (void) playbackStartedForPlayer:(NSString *) name;
- (void) videoChangedForPlayer:(NSString *) name;
@end

@interface MUXSDKPlayerBinding : NSObject {
@private
Expand Down Expand Up @@ -49,6 +53,8 @@ typedef NS_ENUM(NSUInteger, MUXSDKPlayerState) {
long long _lastTransferredBytes;
}

@property (nonatomic, weak) id<MUXSDKPlayDispatchDelegate> playDispatchDelegate;

- (id)initWithName:(NSString *)name andSoftware:(NSString *)software;
- (void)attachAVPlayer:(AVPlayer *)player;
- (void)detachAVPlayer;
Expand Down
13 changes: 12 additions & 1 deletion Frameworks/iOS/fat/MUXSDKStats.framework/Headers/MUXSDKStats.h
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@
In the simplest use case, an AVPlayer can be provided to the MUXSDKStats API and everything else is taken care of for you. The MUXSDKStats monitor methods attach a set of timed state and key-value observers on the AVPlayer. When you are done with an AVPlayer instance, call destroyPlayer: to remove the observers.
If you change the video that is playing in an AVPlayer, you should call videoChangeForPlayer:withConfig: to provide the updated video information. Not calling videoChangeForPlayer:withConfig: when the video changes will cause tracking pings to be associated with the last video that was playing.
If you change the video that is playing in an AVPlayer, you should call videoChangeForPlayer:withVideoData to provide the updated video information. Not calling videoChangeForPlayer:withVideoData when the video changes will cause tracking pings to be associated with the last video that was playing.
*/

#import <Foundation/Foundation.h>
Expand Down Expand Up @@ -97,6 +97,17 @@ FOUNDATION_EXPORT
*/
+ (void)videoChangeForPlayer:(nonnull NSString *)name withVideoData:(nullable MUXSDKCustomerVideoData *)videoData;

/*!
@method videoChangeForPlayer:withPlayerData:withVideoData
@abstract Signals that a player is now playing a different video.
@param name The name of the player to update
@param playerData A MUXSDKCustomerPlayerData object with video metadata
@param videoData A MUXSDKCustomerVideoData object with video metadata
@discussion Use this method to signal that the player is now playing a new video. The player name provided must been passed as the name in a monitorPlayer:withPlayerName:andConfig: call. The config provided should match the specifications in the Mux docs at https://docs.mux.com and should include all desired keys, not just those keys that are specific to this video. If the name of the player provided was not previously initialized, an exception will be raised.
*/
+ (void)videoChangeForPlayer:(nonnull NSString *)name withPlayerData:(nullable MUXSDKCustomerPlayerData *)playerData withVideoData:(nullable MUXSDKCustomerVideoData *)videoData;

/*!
@method programChangeForPlayer:withVideoData:
@abstract Signals that a player is now playing a different video of a playlist; or a different program of a live stream
Expand Down
Binary file modified Frameworks/iOS/fat/MUXSDKStats.framework/Info.plist
Binary file not shown.
Binary file modified Frameworks/iOS/fat/MUXSDKStats.framework/MUXSDKStats
Binary file not shown.
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleShortVersionString</key>
<string>1.1.3</string>
<string>1.2.0</string>
<key>CFBundleVersion</key>
<string>1</string>
</dict>
Expand Down
Binary file not shown.
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,10 @@ typedef NS_ENUM(NSUInteger, MUXSDKPlayerState) {
MUXSDKPlayerStateViewEnd,
};

@protocol MUXSDKPlayDispatchDelegate
- (void) playbackStartedForPlayer:(NSString *) name;
- (void) videoChangedForPlayer:(NSString *) name;
@end

@interface MUXSDKPlayerBinding : NSObject {
@private
Expand Down Expand Up @@ -49,6 +53,8 @@ typedef NS_ENUM(NSUInteger, MUXSDKPlayerState) {
long long _lastTransferredBytes;
}

@property (nonatomic, weak) id<MUXSDKPlayDispatchDelegate> playDispatchDelegate;

- (id)initWithName:(NSString *)name andSoftware:(NSString *)software;
- (void)attachAVPlayer:(AVPlayer *)player;
- (void)detachAVPlayer;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@
In the simplest use case, an AVPlayer can be provided to the MUXSDKStats API and everything else is taken care of for you. The MUXSDKStats monitor methods attach a set of timed state and key-value observers on the AVPlayer. When you are done with an AVPlayer instance, call destroyPlayer: to remove the observers.
If you change the video that is playing in an AVPlayer, you should call videoChangeForPlayer:withConfig: to provide the updated video information. Not calling videoChangeForPlayer:withConfig: when the video changes will cause tracking pings to be associated with the last video that was playing.
If you change the video that is playing in an AVPlayer, you should call videoChangeForPlayer:withVideoData to provide the updated video information. Not calling videoChangeForPlayer:withVideoData when the video changes will cause tracking pings to be associated with the last video that was playing.
*/

#import <Foundation/Foundation.h>
Expand Down Expand Up @@ -97,6 +97,17 @@ FOUNDATION_EXPORT
*/
+ (void)videoChangeForPlayer:(nonnull NSString *)name withVideoData:(nullable MUXSDKCustomerVideoData *)videoData;

/*!
@method videoChangeForPlayer:withPlayerData:withVideoData
@abstract Signals that a player is now playing a different video.
@param name The name of the player to update
@param playerData A MUXSDKCustomerPlayerData object with video metadata
@param videoData A MUXSDKCustomerVideoData object with video metadata
@discussion Use this method to signal that the player is now playing a new video. The player name provided must been passed as the name in a monitorPlayer:withPlayerName:andConfig: call. The config provided should match the specifications in the Mux docs at https://docs.mux.com and should include all desired keys, not just those keys that are specific to this video. If the name of the player provided was not previously initialized, an exception will be raised.
*/
+ (void)videoChangeForPlayer:(nonnull NSString *)name withPlayerData:(nullable MUXSDKCustomerPlayerData *)playerData withVideoData:(nullable MUXSDKCustomerVideoData *)videoData;

/*!
@method programChangeForPlayer:withVideoData:
@abstract Signals that a player is now playing a different video of a playlist; or a different program of a live stream
Expand Down
Binary file modified Frameworks/iOS/release/MUXSDKStats.framework/Info.plist
Binary file not shown.
Binary file modified Frameworks/iOS/release/MUXSDKStats.framework/MUXSDKStats
Binary file not shown.
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleShortVersionString</key>
<string>1.1.3</string>
<string>1.2.0</string>
<key>CFBundleVersion</key>
<string>1</string>
</dict>
Expand Down
Binary file not shown.
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,10 @@ typedef NS_ENUM(NSUInteger, MUXSDKPlayerState) {
MUXSDKPlayerStateViewEnd,
};

@protocol MUXSDKPlayDispatchDelegate
- (void) playbackStartedForPlayer:(NSString *) name;
- (void) videoChangedForPlayer:(NSString *) name;
@end

@interface MUXSDKPlayerBinding : NSObject {
@private
Expand Down Expand Up @@ -49,6 +53,8 @@ typedef NS_ENUM(NSUInteger, MUXSDKPlayerState) {
long long _lastTransferredBytes;
}

@property (nonatomic, weak) id<MUXSDKPlayDispatchDelegate> playDispatchDelegate;

- (id)initWithName:(NSString *)name andSoftware:(NSString *)software;
- (void)attachAVPlayer:(AVPlayer *)player;
- (void)detachAVPlayer;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@
In the simplest use case, an AVPlayer can be provided to the MUXSDKStats API and everything else is taken care of for you. The MUXSDKStats monitor methods attach a set of timed state and key-value observers on the AVPlayer. When you are done with an AVPlayer instance, call destroyPlayer: to remove the observers.
If you change the video that is playing in an AVPlayer, you should call videoChangeForPlayer:withConfig: to provide the updated video information. Not calling videoChangeForPlayer:withConfig: when the video changes will cause tracking pings to be associated with the last video that was playing.
If you change the video that is playing in an AVPlayer, you should call videoChangeForPlayer:withVideoData to provide the updated video information. Not calling videoChangeForPlayer:withVideoData when the video changes will cause tracking pings to be associated with the last video that was playing.
*/

#import <Foundation/Foundation.h>
Expand Down Expand Up @@ -97,6 +97,17 @@ FOUNDATION_EXPORT
*/
+ (void)videoChangeForPlayer:(nonnull NSString *)name withVideoData:(nullable MUXSDKCustomerVideoData *)videoData;

/*!
@method videoChangeForPlayer:withPlayerData:withVideoData
@abstract Signals that a player is now playing a different video.
@param name The name of the player to update
@param playerData A MUXSDKCustomerPlayerData object with video metadata
@param videoData A MUXSDKCustomerVideoData object with video metadata
@discussion Use this method to signal that the player is now playing a new video. The player name provided must been passed as the name in a monitorPlayer:withPlayerName:andConfig: call. The config provided should match the specifications in the Mux docs at https://docs.mux.com and should include all desired keys, not just those keys that are specific to this video. If the name of the player provided was not previously initialized, an exception will be raised.
*/
+ (void)videoChangeForPlayer:(nonnull NSString *)name withPlayerData:(nullable MUXSDKCustomerPlayerData *)playerData withVideoData:(nullable MUXSDKCustomerVideoData *)videoData;

/*!
@method programChangeForPlayer:withVideoData:
@abstract Signals that a player is now playing a different video of a playlist; or a different program of a live stream
Expand Down
Binary file modified Frameworks/iOS/simulator/MUXSDKStats.framework/Info.plist
Binary file not shown.
Binary file modified Frameworks/iOS/simulator/MUXSDKStats.framework/MUXSDKStats
Binary file not shown.
Original file line number Diff line number Diff line change
Expand Up @@ -6,15 +6,15 @@
<dict>
<key>Headers/MUXSDKPlayerBinding.h</key>
<data>
n1DW3hScO2J3TIksUTFyf89raPY=
hwa2MvrcctdM53NQfvIejCgH4rU=
</data>
<key>Headers/MUXSDKStats.h</key>
<data>
S9PdZ/OgsJQlp2nQojF9ilpmfE8=
ZVRANfnxoVS6i3lCKCedslKUezc=
</data>
<key>Info.plist</key>
<data>
GNbJG5TN2K7a1vEtAYP3vnD7HFY=
8b0dUNk14hv7VY6ZYZ5TVcHd8H4=
</data>
<key>Modules/module.modulemap</key>
<data>
Expand All @@ -27,22 +27,22 @@
<dict>
<key>hash</key>
<data>
n1DW3hScO2J3TIksUTFyf89raPY=
hwa2MvrcctdM53NQfvIejCgH4rU=
</data>
<key>hash2</key>
<data>
KId7sAOymNpZV5maNs8eScxB5xS4S5n+Cwt27zVIISU=
ZHP4PVgAMp+A11Xw6A8rN9aDaBF10983vpldd+CEFSE=
</data>
</dict>
<key>Headers/MUXSDKStats.h</key>
<dict>
<key>hash</key>
<data>
S9PdZ/OgsJQlp2nQojF9ilpmfE8=
ZVRANfnxoVS6i3lCKCedslKUezc=
</data>
<key>hash2</key>
<data>
9/mUO+ra23XJQhg/Zhf400L8md068bldwV9bqouyVEo=
Sove5foq9gxN9cLylNZ6rHVn1Bf8mJrPibldsuaEVrs=
</data>
</dict>
<key>Modules/module.modulemap</key>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleShortVersionString</key>
<string>1.1.3</string>
<string>1.2.0</string>
<key>CFBundleVersion</key>
<string>0.0.6</string>
</dict>
Expand Down
Binary file not shown.
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,10 @@ typedef NS_ENUM(NSUInteger, MUXSDKPlayerState) {
MUXSDKPlayerStateViewEnd,
};

@protocol MUXSDKPlayDispatchDelegate
- (void) playbackStartedForPlayer:(NSString *) name;
- (void) videoChangedForPlayer:(NSString *) name;
@end

@interface MUXSDKPlayerBinding : NSObject {
@private
Expand Down Expand Up @@ -49,6 +53,8 @@ typedef NS_ENUM(NSUInteger, MUXSDKPlayerState) {
long long _lastTransferredBytes;
}

@property (nonatomic, weak) id<MUXSDKPlayDispatchDelegate> playDispatchDelegate;

- (id)initWithName:(NSString *)name andSoftware:(NSString *)software;
- (void)attachAVPlayer:(AVPlayer *)player;
- (void)detachAVPlayer;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@
In the simplest use case, an AVPlayer can be provided to the MUXSDKStats API and everything else is taken care of for you. The MUXSDKStats monitor methods attach a set of timed state and key-value observers on the AVPlayer. When you are done with an AVPlayer instance, call destroyPlayer: to remove the observers.
If you change the video that is playing in an AVPlayer, you should call videoChangeForPlayer:withConfig: to provide the updated video information. Not calling videoChangeForPlayer:withConfig: when the video changes will cause tracking pings to be associated with the last video that was playing.
If you change the video that is playing in an AVPlayer, you should call videoChangeForPlayer:withVideoData to provide the updated video information. Not calling videoChangeForPlayer:withVideoData when the video changes will cause tracking pings to be associated with the last video that was playing.
*/

#import <Foundation/Foundation.h>
Expand Down Expand Up @@ -97,6 +97,17 @@ FOUNDATION_EXPORT
*/
+ (void)videoChangeForPlayer:(nonnull NSString *)name withVideoData:(nullable MUXSDKCustomerVideoData *)videoData;

/*!
@method videoChangeForPlayer:withPlayerData:withVideoData
@abstract Signals that a player is now playing a different video.
@param name The name of the player to update
@param playerData A MUXSDKCustomerPlayerData object with video metadata
@param videoData A MUXSDKCustomerVideoData object with video metadata
@discussion Use this method to signal that the player is now playing a new video. The player name provided must been passed as the name in a monitorPlayer:withPlayerName:andConfig: call. The config provided should match the specifications in the Mux docs at https://docs.mux.com and should include all desired keys, not just those keys that are specific to this video. If the name of the player provided was not previously initialized, an exception will be raised.
*/
+ (void)videoChangeForPlayer:(nonnull NSString *)name withPlayerData:(nullable MUXSDKCustomerPlayerData *)playerData withVideoData:(nullable MUXSDKCustomerVideoData *)videoData;

/*!
@method programChangeForPlayer:withVideoData:
@abstract Signals that a player is now playing a different video of a playlist; or a different program of a live stream
Expand Down
Binary file modified Frameworks/tvOS/fat/MUXSDKStatsTv.framework/Info.plist
Binary file not shown.
Binary file modified Frameworks/tvOS/fat/MUXSDKStatsTv.framework/MUXSDKStatsTv
Binary file not shown.
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleShortVersionString</key>
<string>1.1.3</string>
<string>1.2.0</string>
<key>CFBundleVersion</key>
<string>0.0.6</string>
</dict>
Expand Down
Binary file not shown.
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,10 @@ typedef NS_ENUM(NSUInteger, MUXSDKPlayerState) {
MUXSDKPlayerStateViewEnd,
};

@protocol MUXSDKPlayDispatchDelegate
- (void) playbackStartedForPlayer:(NSString *) name;
- (void) videoChangedForPlayer:(NSString *) name;
@end

@interface MUXSDKPlayerBinding : NSObject {
@private
Expand Down Expand Up @@ -49,6 +53,8 @@ typedef NS_ENUM(NSUInteger, MUXSDKPlayerState) {
long long _lastTransferredBytes;
}

@property (nonatomic, weak) id<MUXSDKPlayDispatchDelegate> playDispatchDelegate;

- (id)initWithName:(NSString *)name andSoftware:(NSString *)software;
- (void)attachAVPlayer:(AVPlayer *)player;
- (void)detachAVPlayer;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@
In the simplest use case, an AVPlayer can be provided to the MUXSDKStats API and everything else is taken care of for you. The MUXSDKStats monitor methods attach a set of timed state and key-value observers on the AVPlayer. When you are done with an AVPlayer instance, call destroyPlayer: to remove the observers.
If you change the video that is playing in an AVPlayer, you should call videoChangeForPlayer:withConfig: to provide the updated video information. Not calling videoChangeForPlayer:withConfig: when the video changes will cause tracking pings to be associated with the last video that was playing.
If you change the video that is playing in an AVPlayer, you should call videoChangeForPlayer:withVideoData to provide the updated video information. Not calling videoChangeForPlayer:withVideoData when the video changes will cause tracking pings to be associated with the last video that was playing.
*/

#import <Foundation/Foundation.h>
Expand Down Expand Up @@ -97,6 +97,17 @@ FOUNDATION_EXPORT
*/
+ (void)videoChangeForPlayer:(nonnull NSString *)name withVideoData:(nullable MUXSDKCustomerVideoData *)videoData;

/*!
@method videoChangeForPlayer:withPlayerData:withVideoData
@abstract Signals that a player is now playing a different video.
@param name The name of the player to update
@param playerData A MUXSDKCustomerPlayerData object with video metadata
@param videoData A MUXSDKCustomerVideoData object with video metadata
@discussion Use this method to signal that the player is now playing a new video. The player name provided must been passed as the name in a monitorPlayer:withPlayerName:andConfig: call. The config provided should match the specifications in the Mux docs at https://docs.mux.com and should include all desired keys, not just those keys that are specific to this video. If the name of the player provided was not previously initialized, an exception will be raised.
*/
+ (void)videoChangeForPlayer:(nonnull NSString *)name withPlayerData:(nullable MUXSDKCustomerPlayerData *)playerData withVideoData:(nullable MUXSDKCustomerVideoData *)videoData;

/*!
@method programChangeForPlayer:withVideoData:
@abstract Signals that a player is now playing a different video of a playlist; or a different program of a live stream
Expand Down
Binary file modified Frameworks/tvOS/release/MUXSDKStatsTv.framework/Info.plist
Binary file not shown.
Binary file modified Frameworks/tvOS/release/MUXSDKStatsTv.framework/MUXSDKStatsTv
Binary file not shown.
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleShortVersionString</key>
<string>1.1.3</string>
<string>1.2.0</string>
<key>CFBundleVersion</key>
<string>0.0.6</string>
</dict>
Expand Down
Binary file not shown.
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,10 @@ typedef NS_ENUM(NSUInteger, MUXSDKPlayerState) {
MUXSDKPlayerStateViewEnd,
};

@protocol MUXSDKPlayDispatchDelegate
- (void) playbackStartedForPlayer:(NSString *) name;
- (void) videoChangedForPlayer:(NSString *) name;
@end

@interface MUXSDKPlayerBinding : NSObject {
@private
Expand Down Expand Up @@ -49,6 +53,8 @@ typedef NS_ENUM(NSUInteger, MUXSDKPlayerState) {
long long _lastTransferredBytes;
}

@property (nonatomic, weak) id<MUXSDKPlayDispatchDelegate> playDispatchDelegate;

- (id)initWithName:(NSString *)name andSoftware:(NSString *)software;
- (void)attachAVPlayer:(AVPlayer *)player;
- (void)detachAVPlayer;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@
In the simplest use case, an AVPlayer can be provided to the MUXSDKStats API and everything else is taken care of for you. The MUXSDKStats monitor methods attach a set of timed state and key-value observers on the AVPlayer. When you are done with an AVPlayer instance, call destroyPlayer: to remove the observers.
If you change the video that is playing in an AVPlayer, you should call videoChangeForPlayer:withConfig: to provide the updated video information. Not calling videoChangeForPlayer:withConfig: when the video changes will cause tracking pings to be associated with the last video that was playing.
If you change the video that is playing in an AVPlayer, you should call videoChangeForPlayer:withVideoData to provide the updated video information. Not calling videoChangeForPlayer:withVideoData when the video changes will cause tracking pings to be associated with the last video that was playing.
*/

#import <Foundation/Foundation.h>
Expand Down Expand Up @@ -97,6 +97,17 @@ FOUNDATION_EXPORT
*/
+ (void)videoChangeForPlayer:(nonnull NSString *)name withVideoData:(nullable MUXSDKCustomerVideoData *)videoData;

/*!
@method videoChangeForPlayer:withPlayerData:withVideoData
@abstract Signals that a player is now playing a different video.
@param name The name of the player to update
@param playerData A MUXSDKCustomerPlayerData object with video metadata
@param videoData A MUXSDKCustomerVideoData object with video metadata
@discussion Use this method to signal that the player is now playing a new video. The player name provided must been passed as the name in a monitorPlayer:withPlayerName:andConfig: call. The config provided should match the specifications in the Mux docs at https://docs.mux.com and should include all desired keys, not just those keys that are specific to this video. If the name of the player provided was not previously initialized, an exception will be raised.
*/
+ (void)videoChangeForPlayer:(nonnull NSString *)name withPlayerData:(nullable MUXSDKCustomerPlayerData *)playerData withVideoData:(nullable MUXSDKCustomerVideoData *)videoData;

/*!
@method programChangeForPlayer:withVideoData:
@abstract Signals that a player is now playing a different video of a playlist; or a different program of a live stream
Expand Down
Binary file modified Frameworks/tvOS/simulator/MUXSDKStatsTv.framework/Info.plist
Binary file not shown.
Binary file modified Frameworks/tvOS/simulator/MUXSDKStatsTv.framework/MUXSDKStatsTv
Binary file not shown.
Loading

0 comments on commit 89bc1aa

Please sign in to comment.