UNPKG

@100mslive/hms-video-store

Version:

@100mslive Core SDK which abstracts the complexities of webRTC while providing a reactive store for data management with a unidirectional data flow

104 lines (103 loc) 3.38 kB
interface BaseStatsPayload { sequence_num: number; max_window_sec: number; joined_at: number; cpu_pressure_state?: string; } export interface PublishAnalyticPayload extends BaseStatsPayload { video: Array<LocalAudioTrackAnalytics>; audio: Array<LocalAudioTrackAnalytics>; } export interface SubscribeAnalyticPayload extends BaseStatsPayload { video: Array<RemoteVideoTrackAnalytics>; audio: Array<RemoteAudioTrackAnalytics>; } interface TrackAnalytics<Sample> { track_id: string; rid?: string; ssrc: string; source: string; samples: Array<Sample>; } export declare type LocalAudioTrackAnalytics = TrackAnalytics<LocalBaseSample>; export declare type LocalVideoTrackAnalytics = TrackAnalytics<LocalVideoSample>; export declare type RemoteAudioTrackAnalytics = TrackAnalytics<RemoteAudioSample>; export declare type RemoteVideoTrackAnalytics = TrackAnalytics<RemoteVideoSample>; export interface LocalBaseSample { timestamp: number; sample_start_ts?: number; sample_end_ts?: number; sample_duration_ms?: number; avg_round_trip_time_ms?: number; avg_jitter_ms?: number; total_packets_lost?: number; avg_bitrate_bps?: number; avg_available_outgoing_bitrate_bps?: number; total_packets_sent?: number; total_packet_sent_delay_sec?: number; total_nack_count?: number; total_fir_count?: number; total_pli_count?: number; cpu_pressure_state?: string; track_settings?: MediaTrackSettings; effects_metrics?: Record<string, Record<string, unknown> | undefined>; } export interface LocalVideoSample extends LocalBaseSample { total_quality_limitation?: QualityLimitation; avg_fps?: number; resolution?: Resolution; /** * Source/capture stats from media-source (pre-encoding). */ source_resolution?: Resolution; source_avg_fps?: number; source_total_frames?: number; source_total_frames_dropped?: number; } export interface QualityLimitation { bandwith_sec?: number; cpu_sec?: number; other_sec?: number; } export interface Resolution { width_px?: number; height_px?: number; } interface RemoteBaseSample { timestamp: number; sample_start_ts?: number; sample_end_ts?: number; sample_duration_ms?: number; estimated_playout_timestamp?: number; avg_jitter_buffer_delay?: number; avg_bitrate_bps?: number; } export interface RemoteAudioSample extends RemoteBaseSample { audio_level?: number; audio_concealed_samples?: number; audio_total_samples_received?: number; audio_concealment_events?: number; fec_packets_discarded?: number; fec_packets_received?: number; total_samples_duration?: number; total_packets_received?: number; total_packets_lost?: number; jitter_buffer_delay_high_seconds?: number; } export interface RemoteVideoSample extends RemoteBaseSample { avg_frames_received_per_sec?: number; avg_frames_dropped_per_sec?: number; avg_frames_decoded_per_sec?: number; total_pli_count?: number; total_nack_count?: number; avg_av_sync_ms?: number; frame_width?: number; frame_height?: number; expected_frame_width?: number; expected_frame_height?: number; pause_count?: number; pause_duration_seconds?: number; freeze_count?: number; freeze_duration_seconds?: number; } export {};