webkit  2cdf99a9e3038c7e01b3c37e8ad903ecbe5eecf1
https://github.com/WebKit/webkit
Public Member Functions | Public Attributes | Static Public Attributes | List of all members
rtp_analyzer.RTPStatistics Class Reference
Inheritance diagram for rtp_analyzer.RTPStatistics:

Public Member Functions

def __init__ (self, data_points)
 
def print_header_statistics (self)
 
def print_ssrc_info (self, ssrc_id, ssrc)
 
def choose_ssrc (self)
 
def filter_ssrc (self, chosen_ssrc)
 
def print_sequence_number_statistics (self)
 
def estimate_frequency (self, always_query_sample_rate)
 
def print_duration_statistics (self)
 
def remove_reordered (self)
 
def compute_bandwidth (self)
 
def plot_statistics (self)
 

Public Attributes

 data_points
 
 ssrc_frequencies
 
 ssrc_size_table
 
 bandwidth_kbps
 
 smooth_bw_kbps
 

Static Public Attributes

int BANDWIDTH_SMOOTHING_WINDOW_SIZE = 10
 
int PLOT_RESOLUTION_MS = 50
 

Detailed Description

Has methods for calculating and plotting RTP stream statistics.

Constructor & Destructor Documentation

◆ __init__()

def rtp_analyzer.RTPStatistics.__init__ (   self,
  data_points 
)
Initializes object with data_points and computes simple statistics.

Computes percentages of number of packets and packet sizes by
SSRC.

Args:
data_points: list of pb_parse.DataPoints on which statistics are
    calculated.

Member Function Documentation

◆ choose_ssrc()

def rtp_analyzer.RTPStatistics.choose_ssrc (   self)
Queries user for SSRC.

◆ compute_bandwidth()

def rtp_analyzer.RTPStatistics.compute_bandwidth (   self)
Computes bandwidth averaged over several consecutive packets.

The number of consecutive packets used in the average is
BANDWIDTH_SMOOTHING_WINDOW_SIZE. Averaging is done with
numpy.correlate.

◆ estimate_frequency()

def rtp_analyzer.RTPStatistics.estimate_frequency (   self,
  always_query_sample_rate 
)
Estimates frequency and updates data.

Guesses the most probable frequency by looking at changes in
timestamps (RFC 3550 section 5.1), calculates clock drifts and
sending time of packets. Updates `self.data_points` with changes
in delay and send time.

◆ filter_ssrc()

def rtp_analyzer.RTPStatistics.filter_ssrc (   self,
  chosen_ssrc 
)
Filters and wraps data points.

Removes data points with `ssrc != chosen_ssrc`. Unwraps sequence
numbers and timestamps for the chosen selection.

◆ plot_statistics()

def rtp_analyzer.RTPStatistics.plot_statistics (   self)
Plots changes in delay and average bandwidth.

◆ print_duration_statistics()

def rtp_analyzer.RTPStatistics.print_duration_statistics (   self)
Prints delay, clock drift and bitrate statistics.

◆ print_header_statistics()

def rtp_analyzer.RTPStatistics.print_header_statistics (   self)

◆ print_sequence_number_statistics()

def rtp_analyzer.RTPStatistics.print_sequence_number_statistics (   self)

◆ print_ssrc_info()

def rtp_analyzer.RTPStatistics.print_ssrc_info (   self,
  ssrc_id,
  ssrc 
)
Prints packet and size statistics for a given SSRC.

Args:
ssrc_id: textual identifier of SSRC printed beside statistics for it.
ssrc: SSRC by which to filter data and display statistics

◆ remove_reordered()

def rtp_analyzer.RTPStatistics.remove_reordered (   self)

Member Data Documentation

◆ bandwidth_kbps

rtp_analyzer.RTPStatistics.bandwidth_kbps

◆ BANDWIDTH_SMOOTHING_WINDOW_SIZE

int rtp_analyzer.RTPStatistics.BANDWIDTH_SMOOTHING_WINDOW_SIZE = 10
static

◆ data_points

rtp_analyzer.RTPStatistics.data_points

◆ PLOT_RESOLUTION_MS

int rtp_analyzer.RTPStatistics.PLOT_RESOLUTION_MS = 50
static

◆ smooth_bw_kbps

rtp_analyzer.RTPStatistics.smooth_bw_kbps

◆ ssrc_frequencies

rtp_analyzer.RTPStatistics.ssrc_frequencies

◆ ssrc_size_table

rtp_analyzer.RTPStatistics.ssrc_size_table

The documentation for this class was generated from the following file: