1 // Copyright 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #ifndef MEDIA_CAST_RTCP_RTCP_DEFINES_H_
6 #define MEDIA_CAST_RTCP_RTCP_DEFINES_H_
12 #include "media/cast/cast_config.h"
13 #include "media/cast/cast_defines.h"
14 #include "media/cast/logging/logging_defines.h"
15 #include "media/cast/transport/cast_transport_defines.h"
20 // Handle the per frame ACK and NACK messages.
21 class RtcpCastMessage {
23 explicit RtcpCastMessage(uint32 media_ssrc);
28 MissingFramesAndPacketsMap missing_frames_and_packets_;
31 // Log messages from receiver to sender.
32 struct RtcpReceiverEventLogMessage {
33 CastLoggingEvent type;
34 base::TimeTicks event_timestamp;
35 base::TimeDelta delay_delta;
39 typedef std::list<RtcpReceiverEventLogMessage> RtcpReceiverEventLogMessages;
41 class RtcpReceiverFrameLogMessage {
43 explicit RtcpReceiverFrameLogMessage(uint32 rtp_timestamp);
44 ~RtcpReceiverFrameLogMessage();
46 uint32 rtp_timestamp_;
47 RtcpReceiverEventLogMessages event_log_messages_;
50 typedef std::list<RtcpReceiverFrameLogMessage> RtcpReceiverLogMessage;
52 struct RtcpRpsiMessage {
58 class RtcpNackMessage {
64 std::list<uint16> nack_list;
67 class RtcpRembMessage {
73 std::list<uint32> remb_ssrcs;
76 struct RtcpReceiverReferenceTimeReport {
82 inline bool operator==(RtcpReceiverReferenceTimeReport lhs,
83 RtcpReceiverReferenceTimeReport rhs) {
84 return lhs.remote_ssrc == rhs.remote_ssrc &&
85 lhs.ntp_seconds == rhs.ntp_seconds &&
86 lhs.ntp_fraction == rhs.ntp_fraction;
92 #endif // MEDIA_CAST_RTCP_RTCP_DEFINES_H_