use crate::model::packet::Flow5Tuple;
use std::net::SocketAddr;
#[derive(Debug, Clone, Copy)]
#[allow(dead_code)]
pub struct RtcpRtt {
pub ts_us: u64,
pub ssrc: u32,
pub rtt_ms: f64,
pub oneway_ms: Option<f64>,
}
#[derive(Debug, Clone, Default)]
pub struct NegotiatedMedia {
pub endpoints: Vec<SocketAddr>,
pub pts: Vec<u8>,
pub codecs: Vec<String>,
}
#[derive(Debug, Clone, Copy, serde::Serialize)]
pub struct RatePoint {
pub ts_us: u64,
pub bytes: u64,
pub packets: u64,
pub loss_pct: f64,
pub jitter_ms: Option<f64>,
pub mos: Option<f64>,
}
#[derive(Debug, Clone, Default, serde::Serialize)]
pub struct StreamSummary {
pub call_id: Option<String>,
pub ssrc: u32,
pub flow: Option<Flow5Tuple>,
pub codec: Option<String>,
pub payload_type: Option<u8>,
pub packets: u64,
pub lost: u64,
pub expected: u64,
pub loss_pct: f64,
pub jitter_ms: Option<f64>,
pub first_ts_us: Option<u64>,
pub last_ts_us: Option<u64>,
pub rtt_min_ms: Option<f64>,
pub rtt_avg_ms: Option<f64>,
pub rtt_max_ms: Option<f64>,
pub oneway_ms: Option<f64>,
pub mos: Option<f64>,
pub direction: Option<String>,
pub leg: Option<String>,
pub via_turn: bool,
pub bytes: u64,
pub history: Vec<RatePoint>,
}