def reduce(self, resultset, series, data=None): key = series['data'] smeta = resultset.meta('SERIES_META').get(key) if smeta and 'OWD_UP_MEAN' in smeta and not self.cutoff: delay = smeta['OWD_UP_MEAN'] + 2 * smeta['IPDV_UP_MEAN'] lossrate = smeta['PACKET_LOSS_RATE'] else: delay, lossrate = self._calc_delay_loss(resultset, key) mos = mos_score(delay, lossrate) return mos
def reduce(self, resultset, series, data=None): key = series['data'] data = self._get_series(resultset, key) if not data: return None jitter_samples = [] delay_samples = [] loss = 0 last_delay = -1 last_seq = -1 for d in data: if last_seq > -1 and d['seq'] - last_seq > 1: loss += 1 last_seq = d['seq'] if last_delay > -1: jitter_samples.append(abs(last_delay - d['val'])) last_delay = d['val'] delay_samples.append(d['val']) delay = numpy.mean(delay_samples) + 2 * numpy.mean(jitter_samples) lossrate = loss / len(data) mos = mos_score(delay, lossrate) return mos
def reduce(self, resultset, series, data=None): key = series['data'] data = self._get_series(resultset, key) if not data: return None jitter_samples = [] delay_samples = [] loss = 0 last_delay = -1 last_seq = -1 for d in data: if last_seq > -1 and d['seq'] - last_seq > 1: loss += 1 last_seq = d['seq'] if last_delay > -1: jitter_samples.append(abs(last_delay - d['val'])) last_delay = d['val'] delay_samples.append(d['val']) delay = np.mean(delay_samples) + 2 * np.mean(jitter_samples) lossrate = loss / len(data) mos = mos_score(delay, lossrate) return mos