//
//  BareVideoInfo.h
//

#import <Foundation/Foundation.h>
#import <TTSDKFramework/TTSDKFramework.h>

NS_ASSUME_NONNULL_BEGIN

/// Single definition playback information
@interface BareVideoInfo : NSObject
/// Optional values: video, audio
@property(nonatomic, copy) NSString *fileType;
/// Container format
@property(nonatomic, copy) NSString *format;
/// Codec type: h264, h265
@property(nonatomic, copy) NSString *codec;
/// @required Definition 540p, 480p, 720p, 1080p, 2k, 4k...
@property(nonatomic, copy) NSString *definition;
/// File ID, can be the same as md5 or other unique ID nullable
@property(nonatomic, copy) NSString *fileId;
/// MD5
@property(nonatomic, copy) NSString *md5;

/// @required Playback URL
@property(nonatomic, copy) NSString *mainPlayUrl;

/// @optional Expiration time of playback URL
@property(nonatomic, copy) NSString *mainUrlExpireTime;

/// Bitrate, unit bps
@property(nonatomic, assign) NSUInteger bitrate;
/// Video frame width
@property(nonatomic, assign) int width;
/// Video frame height
@property(nonatomic, assign) int height;

@end

/// Multi-definition playback source data model
@interface BareVideoModel : NSObject

@property(nonatomic, copy) NSString *vid;
@property(nonatomic, assign) int version;
@property(nonatomic, assign, readonly) int status;
@property(nonatomic, assign) double duration;
@property(nonatomic, assign) bool enableAdaptive;
@property(nonatomic, copy) NSArray<BareVideoInfo *> *playInfoList;

- (TTVideoEngineModel *)engineVideoModel;

@end

NS_ASSUME_NONNULL_END
