//
//  TrroMedia.h
//  TRROControl
//
//  Created by Robin on 2024/9/19.
//

#import <Foundation/Foundation.h>

NS_ASSUME_NONNULL_BEGIN

/* TRRO_OnMediaStateInfo 使用该结构体 包含媒体传输的详细信息
 * fps         每秒帧数目
 * bps         每秒数据量
 * rtt         UDP ping网络往返时间
 * decd        解码耗时ms
 * jitter      接收抖动值
 * packets_lost 总丢包数目
 * packets_received 总接收数目
 * stun         穿网模式 0：host, 1：srflx, 2：prflx, 3：relay
 * 单位(%) 视频播放卡顿率 = 视频播放的累计卡顿时长 / 视频播放的总时长。
 * lag_k100     视频帧间隔超过100ms视为卡顿，并将其计入视频播放的累计卡顿时长，最终计算获得的卡顿率。(音频暂不支持)
 * lag_k150     视频帧间隔超过150ms视为卡顿，并将其计入视频播放的累计卡顿时长，最终计算获得的卡顿率。(音频暂不支持)
 * duration     视频播放的总时长。(音频暂不支持)
 */

@interface TrroMedia : NSObject
/// 每秒帧数目
@property (nonatomic, assign) int fps;
/// 每秒数据量
@property (nonatomic, assign) int bps;
/// UDP ping网络往返时间
@property (nonatomic, assign) int rtt;
/// 解码耗时ms
@property (nonatomic, assign) long long decd;
/// 接收抖动值
@property (nonatomic, assign) int jitter;
/// 总丢包数目
@property (nonatomic, assign) long long packetsLost;
/// 总接收数目
@property (nonatomic, assign) long long packetsReceived;
/// 穿网模式 0：host, 1：srflx, 2：prflx, 3：relay
/// 单位(%) 视频播放卡顿率 = 视频播放的累计卡顿时长 / 视频播放的总时长。
@property (nonatomic, assign) int stun;
/// 视频帧间隔超过100ms视为卡顿，并将其计入视频播放的累计卡顿时长，最终计算获得的卡顿率。(音频暂不支持)
@property (nonatomic, assign) double lagK100;
/// 视频帧间隔超过150ms视为卡顿，并将其计入视频播放的累计卡顿时长，最终计算获得的卡顿率。(音频暂不支持)
@property (nonatomic, assign) double lagK150;
/// 视频播放的总时长。(音频暂不支持)
@property (nonatomic, assign) long long duration;
@end

NS_ASSUME_NONNULL_END
