OLD | NEW |
1 /* | 1 /* |
2 * Copyright (c) 2012 The WebRTC project authors. All Rights Reserved. | 2 * Copyright (c) 2012 The WebRTC project authors. All Rights Reserved. |
3 * | 3 * |
4 * Use of this source code is governed by a BSD-style license | 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 | 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 | 6 * tree. An additional intellectual property rights grant can be found |
7 * in the file PATENTS. All contributing project authors may | 7 * in the file PATENTS. All contributing project authors may |
8 * be found in the AUTHORS file in the root of the source tree. | 8 * be found in the AUTHORS file in the root of the source tree. |
9 */ | 9 */ |
10 | 10 |
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
64 return false; | 64 return false; |
65 } | 65 } |
66 | 66 |
67 RtcpMeasurement measurement; | 67 RtcpMeasurement measurement; |
68 measurement.ntp_secs = ntp_secs; | 68 measurement.ntp_secs = ntp_secs; |
69 measurement.ntp_frac = ntp_frac; | 69 measurement.ntp_frac = ntp_frac; |
70 measurement.rtp_timestamp = rtp_timestamp; | 70 measurement.rtp_timestamp = rtp_timestamp; |
71 | 71 |
72 for (RtcpList::iterator it = rtcp_list->begin(); | 72 for (RtcpList::iterator it = rtcp_list->begin(); |
73 it != rtcp_list->end(); ++it) { | 73 it != rtcp_list->end(); ++it) { |
74 if (measurement.ntp_secs == (*it).ntp_secs && | 74 if ((measurement.ntp_secs == (*it).ntp_secs && |
75 measurement.ntp_frac == (*it).ntp_frac) { | 75 measurement.ntp_frac == (*it).ntp_frac) || |
| 76 (measurement.rtp_timestamp == (*it).rtp_timestamp)) { |
76 // This RTCP has already been added to the list. | 77 // This RTCP has already been added to the list. |
77 return true; | 78 return true; |
78 } | 79 } |
79 } | 80 } |
80 | 81 |
81 // We need two RTCP SR reports to map between RTP and NTP. More than two will | 82 // We need two RTCP SR reports to map between RTP and NTP. More than two will |
82 // not improve the mapping. | 83 // not improve the mapping. |
83 if (rtcp_list->size() == 2) { | 84 if (rtcp_list->size() == 2) { |
84 rtcp_list->pop_back(); | 85 rtcp_list->pop_back(); |
85 } | 86 } |
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
143 } | 144 } |
144 } else if (static_cast<int32_t>(old_timestamp - new_timestamp) > 0) { | 145 } else if (static_cast<int32_t>(old_timestamp - new_timestamp) > 0) { |
145 // This difference should be less than -2^31 if we have had a backward wrap | 146 // This difference should be less than -2^31 if we have had a backward wrap |
146 // around. Since it is cast to a int32_t, it should be positive. | 147 // around. Since it is cast to a int32_t, it should be positive. |
147 return -1; | 148 return -1; |
148 } | 149 } |
149 return 0; | 150 return 0; |
150 } | 151 } |
151 | 152 |
152 } // namespace webrtc | 153 } // namespace webrtc |
OLD | NEW |