Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(2)

Side by Side Diff: webrtc/system_wrappers/include/rtp_to_ntp.h

Issue 2574133003: Make class of static functions in rtp_to_ntp.h: (Closed)
Patch Set: address comments Created 4 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « webrtc/system_wrappers/BUILD.gn ('k') | webrtc/system_wrappers/include/rtp_to_ntp_estimator.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1 /*
2 * Copyright (c) 2012 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 #ifndef SYSTEM_WRAPPERS_INCLUDE_RTP_TO_NTP_H_
12 #define SYSTEM_WRAPPERS_INCLUDE_RTP_TO_NTP_H_
13
14 #include <list>
15
16 #include "webrtc/system_wrappers/include/ntp_time.h"
17 #include "webrtc/typedefs.h"
18
19 namespace webrtc {
20
21 struct RtcpMeasurement {
22 RtcpMeasurement();
23 RtcpMeasurement(uint32_t ntp_secs, uint32_t ntp_frac, uint32_t timestamp);
24 bool IsEqual(const RtcpMeasurement& other) const;
25
26 NtpTime ntp_time;
27 uint32_t rtp_timestamp;
28 };
29
30 struct RtcpMeasurements {
31 RtcpMeasurements();
32 ~RtcpMeasurements();
33 bool Contains(const RtcpMeasurement& other) const;
34 bool IsValid(const RtcpMeasurement& other) const;
35 void UpdateParameters();
36
37 // Estimated parameters from RTP and NTP timestamp pairs in |list|.
38 struct RtpToNtpParameters {
39 double frequency_khz = 0.0;
40 double offset_ms = 0.0;
41 bool calculated = false;
42 };
43
44 std::list<RtcpMeasurement> list;
45 RtpToNtpParameters params;
46 };
47
48 // Updates |list| in |rtcp_measurements| with timestamps from the RTCP SR.
49 // |new_rtcp_sr| will be set to true if these are the timestamps which have
50 // never be added to |list|.
51 // |rtcp_measurements.params| are estimated from the RTP and NTP timestamp pairs
52 // in the |list| when a new RTCP SR is inserted.
53 bool UpdateRtcpList(uint32_t ntp_secs,
54 uint32_t ntp_frac,
55 uint32_t rtp_timestamp,
56 RtcpMeasurements* rtcp_measurements,
57 bool* new_rtcp_sr);
58
59 // Converts an RTP timestamp to the NTP domain in milliseconds using the
60 // estimated |rtcp_measurements.params|.
61 bool RtpToNtpMs(int64_t rtp_timestamp,
62 const RtcpMeasurements& rtcp_measurements,
63 int64_t* rtp_timestamp_in_ms);
64
65 // Returns 1 there has been a forward wrap around, 0 if there has been no wrap
66 // around and -1 if there has been a backwards wrap around (i.e. reordering).
67 int CheckForWrapArounds(uint32_t rtp_timestamp, uint32_t rtcp_rtp_timestamp);
68
69 } // namespace webrtc
70
71 #endif // SYSTEM_WRAPPERS_INCLUDE_RTP_TO_NTP_H_
OLDNEW
« no previous file with comments | « webrtc/system_wrappers/BUILD.gn ('k') | webrtc/system_wrappers/include/rtp_to_ntp_estimator.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698