Line data Source code
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 WEBRTC_MODULES_RTP_RTCP_SOURCE_RTCP_PACKET_PSFB_H_
13 : #define WEBRTC_MODULES_RTP_RTCP_SOURCE_RTCP_PACKET_PSFB_H_
14 :
15 : #include "webrtc/base/basictypes.h"
16 : #include "webrtc/modules/rtp_rtcp/source/rtcp_packet.h"
17 :
18 : namespace webrtc {
19 : namespace rtcp {
20 :
21 : // PSFB: Payload-specific feedback message.
22 : // RFC 4585, Section 6.3.
23 : class Psfb : public RtcpPacket {
24 : public:
25 : static constexpr uint8_t kPacketType = 206;
26 :
27 0 : Psfb() : sender_ssrc_(0), media_ssrc_(0) {}
28 0 : ~Psfb() override {}
29 :
30 0 : void SetSenderSsrc(uint32_t ssrc) { sender_ssrc_ = ssrc; }
31 0 : void SetMediaSsrc(uint32_t ssrc) { media_ssrc_ = ssrc; }
32 :
33 0 : uint32_t sender_ssrc() const { return sender_ssrc_; }
34 0 : uint32_t media_ssrc() const { return media_ssrc_; }
35 :
36 : protected:
37 : static constexpr size_t kCommonFeedbackLength = 8;
38 : void ParseCommonFeedback(const uint8_t* payload);
39 : void CreateCommonFeedback(uint8_t* payload) const;
40 :
41 : private:
42 : uint32_t sender_ssrc_;
43 : uint32_t media_ssrc_;
44 : };
45 :
46 : } // namespace rtcp
47 : } // namespace webrtc
48 : #endif // WEBRTC_MODULES_RTP_RTCP_SOURCE_RTCP_PACKET_PSFB_H_
|