Files
platform-external-webrtc/webrtc/modules/audio_coding/neteq4/rtcp.h
henrik.lundin@webrtc.org d94659dc27 Initial upload of NetEq4
This is the first public upload of the new NetEq, version 4.

It has been through extensive internal review during the course of
the project.

TEST=trybots

Review URL: https://webrtc-codereview.appspot.com/1073005

git-svn-id: http://webrtc.googlecode.com/svn/trunk@3425 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-01-29 12:09:21 +00:00

59 lines
2.1 KiB
C++

/*
* Copyright (c) 2011 The WebRTC project authors. All Rights Reserved.
*
* Use of this source code is governed by a BSD-style license
* that can be found in the LICENSE file in the root of the source
* tree. An additional intellectual property rights grant can be found
* in the file PATENTS. All contributing project authors may
* be found in the AUTHORS file in the root of the source tree.
*/
#ifndef WEBRTC_MODULES_AUDIO_CODING_NETEQ4_RTCP_H_
#define WEBRTC_MODULES_AUDIO_CODING_NETEQ4_RTCP_H_
#include "webrtc/modules/audio_coding/neteq4/interface/neteq.h"
#include "webrtc/system_wrappers/interface/constructor_magic.h"
#include "webrtc/typedefs.h"
namespace webrtc {
// Forward declaration.
struct RTPHeader;
class Rtcp {
public:
Rtcp() {
Init(0);
}
~Rtcp() {}
// Resets the RTCP statistics, and sets the first received sequence number.
void Init(uint16_t start_sequence_number);
// Updates the RTCP statistics with a new received packet.
void Update(const RTPHeader& rtp_header, uint32_t receive_timestamp);
// Returns the current RTCP statistics. If |no_reset| is true, the statistics
// are not reset, otherwise they are.
void GetStatistics(bool no_reset, RtcpStatistics* stats);
private:
uint16_t cycles_; // The number of wrap-arounds for the sequence number.
uint16_t max_seq_no_; // The maximum sequence number received. Starts over
// from 0 after wrap-around.
uint16_t base_seq_no_; // The sequence number of the first received packet.
uint32_t received_packets_; // The number of packets that have been received.
uint32_t received_packets_prior_; // Number of packets received when last
// report was generated.
uint32_t expected_prior_; // Expected number of packets, at the time of the
// last report.
uint32_t jitter_; // Current jitter value.
int32_t transit_; // Clock difference for previous packet.
DISALLOW_COPY_AND_ASSIGN(Rtcp);
};
} // namespace webrtc
#endif // WEBRTC_MODULES_AUDIO_CODING_NETEQ4_RTCP_H_