• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  *  Copyright (c) 2015 The WebRTC project authors. All Rights Reserved.
3  *
4  *  Use of this source code is governed by a BSD-style license
5  *  that can be found in the LICENSE file in the root of the source
6  *  tree. An additional intellectual property rights grant can be found
7  *  in the file PATENTS.  All contributing project authors may
8  *  be found in the AUTHORS file in the root of the source tree.
9  *
10  */
11 
12 #ifndef MODULES_RTP_RTCP_SOURCE_RTCP_PACKET_RRTR_H_
13 #define MODULES_RTP_RTCP_SOURCE_RTCP_PACKET_RRTR_H_
14 
15 #include <stddef.h>
16 #include <stdint.h>
17 
18 #include "system_wrappers/include/ntp_time.h"
19 
20 namespace webrtc {
21 namespace rtcp {
22 
23 class Rrtr {
24  public:
25   static const uint8_t kBlockType = 4;
26   static const uint16_t kBlockLength = 2;
27   static const size_t kLength = 4 * (kBlockLength + 1);  // 12
28 
Rrtr()29   Rrtr() {}
30   Rrtr(const Rrtr&) = default;
~Rrtr()31   ~Rrtr() {}
32 
33   Rrtr& operator=(const Rrtr&) = default;
34 
35   void Parse(const uint8_t* buffer);
36 
37   // Fills buffer with the Rrtr.
38   // Consumes Rrtr::kLength bytes.
39   void Create(uint8_t* buffer) const;
40 
SetNtp(NtpTime ntp)41   void SetNtp(NtpTime ntp) { ntp_ = ntp; }
42 
ntp()43   NtpTime ntp() const { return ntp_; }
44 
45  private:
46   NtpTime ntp_;
47 };
48 
49 }  // namespace rtcp
50 }  // namespace webrtc
51 #endif  // MODULES_RTP_RTCP_SOURCE_RTCP_PACKET_RRTR_H_
52