i dont even have dev acc what is clapper
Reported by
applic8@googlemail.com,
Jun 20 2017
|
||
Issue description<b>Chrome Version : <Copy from: 'about:version'></b> why is my version clapper https://code.google.com/p/chromium/issues/entry?template=Crash%20Report&comment=IMPORTANT%3A%20Your%20crash%20has%20already%20been%20automatically%20reported%20to%20our%20crash%20system.%20Please%20file%20this%20bug%20only%20if%20you%20can%20provide%20more%20information%20about%20it.%0A%0A%0AChrome%20Version%3A%2059.0.3071.91%0AOperating%20System%3A%20Linux%204.4.52-08254-ge4cd28825ca4%0A%0AURL%20(if%20applicable)%20where%20crash%20occurred%3A%0A%0ACan%20you%20reproduce%20this%20crash%3F%0A%0AWhat%20steps%20will%20reproduce%20this%20crash%3F%20(If%20it%27s%20not%20reproducible%2C%20what%20were%20you%20doing%20just%20before%20the%20crash%3F)%0A1.%0A2.%0A3.%0A%0A****DO%20NOT%20CHANGE%20BELOW%20THIS%20LINE****%0ACrash%20ID%3A%20crash%2Fe88173c808000000&labels=Restrict-View-EditIssue%2CStability-Crash%2CUser-Submitted URLs (if applicable) : Other browsers tested: Add OK or FAIL, along with the version, after other browsers where you have tested this issue: Safari: Firefox: IE: What steps will reproduce the problem? (1) (2) (3) What is the expected result? What happens instead? Please provide any additional information below. Attach a screenshot if possible.
,
Jun 21 2017
,
Nov 2 2017
https://cs.chromium.org/chromium/src/media/cast/net/rtp/receiver_stats.cc?l=19 // Copyright 2014 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #include "media/cast/net/rtp/receiver_stats.h" #include "base/logging.h" #include "media/cast/net/rtp/rtp_defines.h" namespace media { namespace cast { namespace { constexpr uint32_t kMaxSequenceNumber = 65536; // TODO(miu): Get rid of all the special 16-bit rounding detection and special // handling throughout this file, and just use good 'ol int64_t. // http://crbug.com/530839 bool IsNewerSequenceNumber(uint16_t sequence_number, uint16_t prev_sequence_number) { return (sequence_number != prev_sequence_number) && static_cast<uint16_t>(sequence_number - prev_sequence_number) < 0x8000; } } // namespace ReceiverStats::ReceiverStats(base::TickClock* clock) : clock_(clock), min_sequence_number_(0), max_sequence_number_(0), total_number_packets_(0), sequence_number_cycles_(0), interval_min_sequence_number_(0), interval_number_packets_(0), interval_wrap_count_(0) {} RtpReceiverStatistics ReceiverStats::GetStatistics() { RtpReceiverStatistics ret; // Compute losses. if (interval_number_packets_ == 0) { ret.fraction_lost = 0; } else { int diff = 0; if (interval_wrap_count_ == 0) { diff = max_sequence_number_ - interval_min_sequence_number_ + 1; } else { diff = kMaxSequenceNumber * (interval_wrap_count_ - 1) + (max_sequence_number_ - interval_min_sequence_number_ + kMaxSequenceNumber + 1); } if (diff < 1) { ret.fraction_lost = 0; } else { float tmp_ratio = (1 - static_cast<float>(interval_number_packets_) / abs(diff)); ret.fraction_lost = static_cast<uint8_t>(256 * tmp_ratio); } } int expected_packets_num = max_sequence_number_ - min_sequence_number_ + 1; if (total_number_packets_ == 0) { ret.cumulative_lost = 0; } else if (sequence_number_cycles_ == 0) { ret.cumulative_lost = expected_packets_num - total_number_packets_; } else { ret.cumulative_lost = kMaxSequenceNumber * (sequence_number_cycles_ - 1) + (expected_packets_num - total_number_packets_ + kMaxSequenceNumber); } // Extended high sequence number consists of the highest seq number and the // number of cycles (wrap). ret.extended_high_sequence_number = (sequence_number_cycles_ << 16) + max_sequence_number_; ret.jitter = static_cast<uint32_t>(std::abs(jitter_.InMillisecondsRoundedUp())); // Reset interval values. interval_min_sequence_number_ = 0; interval_number_packets_ = 0; interval_wrap_count_ = 0; return ret; } void ReceiverStats::UpdateStatistics(const RtpCastHeader& header, int rtp_timebase) { const uint16_t new_seq_num = header.sequence_number; if (interval_number_packets_ == 0) { // First packet in the interval. interval_min_sequence_number_ = new_seq_num; } if (total_number_packets_ == 0) { // First incoming packet. min_sequence_number_ = new_seq_num; max_sequence_number_ = new_seq_num; } if (IsNewerSequenceNumber(new_seq_num, max_sequence_number_)) { // Check wrap. if (new_seq_num < max_sequence_number_) { ++sequence_number_cycles_; ++interval_wrap_count_; } max_sequence_number_ = new_seq_num; } // Compute Jitter. const base::TimeTicks now = clock_->NowTicks(); if (total_number_packets_ > 0) { const base::TimeDelta packet_time_difference = now - last_received_packet_time_; const base::TimeDelta media_time_differerence = (header.rtp_timestamp - last_received_rtp_timestamp_) .ToTimeDelta(rtp_timebase); const base::TimeDelta delta = packet_time_difference - media_time_differerence; // Update jitter. jitter_ += (delta - jitter_) / 16; } last_received_rtp_timestamp_ = header.rtp_timestamp; last_received_packet_time_ = now; // Increment counters. ++total_number_packets_; ++interval_number_packets_; } } // namespace cast } // namespace media |
||
►
Sign in to add a comment |
||
Comment 1 by applic8@googlemail.com
, Jun 20 2017