| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #ifndef MEDIA_CAST_RTCP_RTCP_DEFINES_H_ | 5 #ifndef MEDIA_CAST_RTCP_RTCP_DEFINES_H_ |
| 6 #define MEDIA_CAST_RTCP_RTCP_DEFINES_H_ | 6 #define MEDIA_CAST_RTCP_RTCP_DEFINES_H_ |
| 7 | 7 |
| 8 #include <list> | 8 #include <list> |
| 9 | 9 |
| 10 #include "base/callback_forward.h" | 10 #include "base/callback_forward.h" |
| (...skipping 20 matching lines...) Expand all Loading... |
| 31 kPacketTypeReceiverReport = 201, | 31 kPacketTypeReceiverReport = 201, |
| 32 kPacketTypeApplicationDefined = 204, | 32 kPacketTypeApplicationDefined = 204, |
| 33 kPacketTypeGenericRtpFeedback = 205, | 33 kPacketTypeGenericRtpFeedback = 205, |
| 34 kPacketTypePayloadSpecific = 206, | 34 kPacketTypePayloadSpecific = 206, |
| 35 kPacketTypeXr = 207, | 35 kPacketTypeXr = 207, |
| 36 kPacketTypeHigh = 210, // Port Mapping. | 36 kPacketTypeHigh = 210, // Port Mapping. |
| 37 }; | 37 }; |
| 38 | 38 |
| 39 // Handle the per frame ACK and NACK messages. | 39 // Handle the per frame ACK and NACK messages. |
| 40 struct RtcpCastMessage { | 40 struct RtcpCastMessage { |
| 41 explicit RtcpCastMessage(uint32 ssrc); | 41 explicit RtcpCastMessage(uint32_t ssrc); |
| 42 RtcpCastMessage(); | 42 RtcpCastMessage(); |
| 43 ~RtcpCastMessage(); | 43 ~RtcpCastMessage(); |
| 44 | 44 |
| 45 uint32 media_ssrc; | 45 uint32_t media_ssrc; |
| 46 uint32 ack_frame_id; | 46 uint32_t ack_frame_id; |
| 47 uint16 target_delay_ms; | 47 uint16_t target_delay_ms; |
| 48 MissingFramesAndPacketsMap missing_frames_and_packets; | 48 MissingFramesAndPacketsMap missing_frames_and_packets; |
| 49 }; | 49 }; |
| 50 | 50 |
| 51 // Log messages from receiver to sender. | 51 // Log messages from receiver to sender. |
| 52 struct RtcpReceiverEventLogMessage { | 52 struct RtcpReceiverEventLogMessage { |
| 53 RtcpReceiverEventLogMessage(); | 53 RtcpReceiverEventLogMessage(); |
| 54 ~RtcpReceiverEventLogMessage(); | 54 ~RtcpReceiverEventLogMessage(); |
| 55 | 55 |
| 56 CastLoggingEvent type; | 56 CastLoggingEvent type; |
| 57 base::TimeTicks event_timestamp; | 57 base::TimeTicks event_timestamp; |
| 58 base::TimeDelta delay_delta; | 58 base::TimeDelta delay_delta; |
| 59 uint16 packet_id; | 59 uint16_t packet_id; |
| 60 }; | 60 }; |
| 61 | 61 |
| 62 typedef std::list<RtcpReceiverEventLogMessage> RtcpReceiverEventLogMessages; | 62 typedef std::list<RtcpReceiverEventLogMessage> RtcpReceiverEventLogMessages; |
| 63 | 63 |
| 64 struct RtcpReceiverFrameLogMessage { | 64 struct RtcpReceiverFrameLogMessage { |
| 65 explicit RtcpReceiverFrameLogMessage(uint32 rtp_timestamp); | 65 explicit RtcpReceiverFrameLogMessage(uint32_t rtp_timestamp); |
| 66 ~RtcpReceiverFrameLogMessage(); | 66 ~RtcpReceiverFrameLogMessage(); |
| 67 | 67 |
| 68 uint32 rtp_timestamp_; | 68 uint32_t rtp_timestamp_; |
| 69 RtcpReceiverEventLogMessages event_log_messages_; | 69 RtcpReceiverEventLogMessages event_log_messages_; |
| 70 | 70 |
| 71 // TODO(mikhal): Investigate what's the best way to allow adding | 71 // TODO(mikhal): Investigate what's the best way to allow adding |
| 72 // DISALLOW_COPY_AND_ASSIGN, as currently it contradicts the implementation | 72 // DISALLOW_COPY_AND_ASSIGN, as currently it contradicts the implementation |
| 73 // and possible changes have a big impact on design. | 73 // and possible changes have a big impact on design. |
| 74 }; | 74 }; |
| 75 | 75 |
| 76 typedef std::list<RtcpReceiverFrameLogMessage> RtcpReceiverLogMessage; | 76 typedef std::list<RtcpReceiverFrameLogMessage> RtcpReceiverLogMessage; |
| 77 | 77 |
| 78 struct RtcpReceiverReferenceTimeReport { | 78 struct RtcpReceiverReferenceTimeReport { |
| 79 RtcpReceiverReferenceTimeReport(); | 79 RtcpReceiverReferenceTimeReport(); |
| 80 ~RtcpReceiverReferenceTimeReport(); | 80 ~RtcpReceiverReferenceTimeReport(); |
| 81 | 81 |
| 82 uint32 remote_ssrc; | 82 uint32_t remote_ssrc; |
| 83 uint32 ntp_seconds; | 83 uint32_t ntp_seconds; |
| 84 uint32 ntp_fraction; | 84 uint32_t ntp_fraction; |
| 85 }; | 85 }; |
| 86 | 86 |
| 87 inline bool operator==(RtcpReceiverReferenceTimeReport lhs, | 87 inline bool operator==(RtcpReceiverReferenceTimeReport lhs, |
| 88 RtcpReceiverReferenceTimeReport rhs) { | 88 RtcpReceiverReferenceTimeReport rhs) { |
| 89 return lhs.remote_ssrc == rhs.remote_ssrc && | 89 return lhs.remote_ssrc == rhs.remote_ssrc && |
| 90 lhs.ntp_seconds == rhs.ntp_seconds && | 90 lhs.ntp_seconds == rhs.ntp_seconds && |
| 91 lhs.ntp_fraction == rhs.ntp_fraction; | 91 lhs.ntp_fraction == rhs.ntp_fraction; |
| 92 } | 92 } |
| 93 | 93 |
| 94 // Struct used by raw event subscribers as an intermediate format before | 94 // Struct used by raw event subscribers as an intermediate format before |
| 95 // sending off to the other side via RTCP. | 95 // sending off to the other side via RTCP. |
| 96 // (i.e., {Sender,Receiver}RtcpEventSubscriber) | 96 // (i.e., {Sender,Receiver}RtcpEventSubscriber) |
| 97 struct RtcpEvent { | 97 struct RtcpEvent { |
| 98 RtcpEvent(); | 98 RtcpEvent(); |
| 99 ~RtcpEvent(); | 99 ~RtcpEvent(); |
| 100 | 100 |
| 101 CastLoggingEvent type; | 101 CastLoggingEvent type; |
| 102 | 102 |
| 103 // Time of event logged. | 103 // Time of event logged. |
| 104 base::TimeTicks timestamp; | 104 base::TimeTicks timestamp; |
| 105 | 105 |
| 106 // Render/playout delay. Only set for FRAME_PLAYOUT events. | 106 // Render/playout delay. Only set for FRAME_PLAYOUT events. |
| 107 base::TimeDelta delay_delta; | 107 base::TimeDelta delay_delta; |
| 108 | 108 |
| 109 // Only set for packet events. | 109 // Only set for packet events. |
| 110 uint16 packet_id; | 110 uint16_t packet_id; |
| 111 }; | 111 }; |
| 112 | 112 |
| 113 typedef base::Callback<void(const RtcpCastMessage&)> RtcpCastMessageCallback; | 113 typedef base::Callback<void(const RtcpCastMessage&)> RtcpCastMessageCallback; |
| 114 typedef base::Callback<void(base::TimeDelta)> RtcpRttCallback; | 114 typedef base::Callback<void(base::TimeDelta)> RtcpRttCallback; |
| 115 typedef | 115 typedef |
| 116 base::Callback<void(const RtcpReceiverLogMessage&)> RtcpLogMessageCallback; | 116 base::Callback<void(const RtcpReceiverLogMessage&)> RtcpLogMessageCallback; |
| 117 | 117 |
| 118 // TODO(hubbe): Document members of this struct. | 118 // TODO(hubbe): Document members of this struct. |
| 119 struct RtpReceiverStatistics { | 119 struct RtpReceiverStatistics { |
| 120 RtpReceiverStatistics(); | 120 RtpReceiverStatistics(); |
| 121 uint8 fraction_lost; | 121 uint8_t fraction_lost; |
| 122 uint32 cumulative_lost; // 24 bits valid. | 122 uint32_t cumulative_lost; // 24 bits valid. |
| 123 uint32 extended_high_sequence_number; | 123 uint32_t extended_high_sequence_number; |
| 124 uint32 jitter; | 124 uint32_t jitter; |
| 125 }; | 125 }; |
| 126 | 126 |
| 127 // These are intended to only be created using Rtcp::ConvertToNTPAndSave. | 127 // These are intended to only be created using Rtcp::ConvertToNTPAndSave. |
| 128 struct RtcpTimeData { | 128 struct RtcpTimeData { |
| 129 uint32 ntp_seconds; | 129 uint32_t ntp_seconds; |
| 130 uint32 ntp_fraction; | 130 uint32_t ntp_fraction; |
| 131 base::TimeTicks timestamp; | 131 base::TimeTicks timestamp; |
| 132 }; | 132 }; |
| 133 | 133 |
| 134 // This struct is used to encapsulate all the parameters of the | 134 // This struct is used to encapsulate all the parameters of the |
| 135 // SendRtcpFromRtpReceiver for IPC transportation. | 135 // SendRtcpFromRtpReceiver for IPC transportation. |
| 136 struct SendRtcpFromRtpReceiver_Params { | 136 struct SendRtcpFromRtpReceiver_Params { |
| 137 SendRtcpFromRtpReceiver_Params(); | 137 SendRtcpFromRtpReceiver_Params(); |
| 138 ~SendRtcpFromRtpReceiver_Params(); | 138 ~SendRtcpFromRtpReceiver_Params(); |
| 139 uint32 ssrc; | 139 uint32_t ssrc; |
| 140 uint32 sender_ssrc; | 140 uint32_t sender_ssrc; |
| 141 RtcpTimeData time_data; | 141 RtcpTimeData time_data; |
| 142 scoped_ptr<RtcpCastMessage> cast_message; | 142 scoped_ptr<RtcpCastMessage> cast_message; |
| 143 base::TimeDelta target_delay; | 143 base::TimeDelta target_delay; |
| 144 scoped_ptr<std::vector<std::pair<RtpTimestamp, RtcpEvent> > > rtcp_events; | 144 scoped_ptr<std::vector<std::pair<RtpTimestamp, RtcpEvent> > > rtcp_events; |
| 145 scoped_ptr<RtpReceiverStatistics> rtp_receiver_statistics; | 145 scoped_ptr<RtpReceiverStatistics> rtp_receiver_statistics; |
| 146 }; | 146 }; |
| 147 | 147 |
| 148 | 148 |
| 149 } // namespace cast | 149 } // namespace cast |
| 150 } // namespace media | 150 } // namespace media |
| 151 | 151 |
| 152 #endif // MEDIA_CAST_RTCP_RTCP_DEFINES_H_ | 152 #endif // MEDIA_CAST_RTCP_RTCP_DEFINES_H_ |
| OLD | NEW |