diff options
author | Erwin Jansen <jansene@google.com> | 2023-12-15 11:49:13 -0800 |
---|---|---|
committer | Erwin Jansen <jansene@google.com> | 2023-12-15 11:49:13 -0800 |
commit | 3828327c300510e0d542f0e7c9a46e75363c7a96 (patch) | |
tree | 3cecdfdd9c8114b079c2875e5c0737adb22ef0e7 /modules/rtp_rtcp/source/absolute_capture_time_interpolator.h | |
parent | 6b2545f8bc9c20c375497afad71e11d271ebf705 (diff) | |
parent | 7e6315a61994be57daaf5fc491564cd543072be4 (diff) | |
download | webrtc-3828327c300510e0d542f0e7c9a46e75363c7a96.tar.gz |
Partial merge of WebRTC
This is a partial merge. This is needed since we do not accept changes
to OWNER files from the chrome domain, so those cannot come in a single
merge.
Change-Id: I37473f53ec79e422e8b77761a5859ebcd73f2e3e
Diffstat (limited to 'modules/rtp_rtcp/source/absolute_capture_time_interpolator.h')
-rw-r--r-- | modules/rtp_rtcp/source/absolute_capture_time_interpolator.h | 23 |
1 files changed, 12 insertions, 11 deletions
diff --git a/modules/rtp_rtcp/source/absolute_capture_time_interpolator.h b/modules/rtp_rtcp/source/absolute_capture_time_interpolator.h index f5ec820dd5..c830686359 100644 --- a/modules/rtp_rtcp/source/absolute_capture_time_interpolator.h +++ b/modules/rtp_rtcp/source/absolute_capture_time_interpolator.h @@ -35,8 +35,7 @@ namespace webrtc { // class AbsoluteCaptureTimeInterpolator { public: - static constexpr TimeDelta kInterpolationMaxInterval = - TimeDelta::Millis(5000); + static constexpr TimeDelta kInterpolationMaxInterval = TimeDelta::Seconds(5); explicit AbsoluteCaptureTimeInterpolator(Clock* clock); @@ -49,7 +48,7 @@ class AbsoluteCaptureTimeInterpolator { absl::optional<AbsoluteCaptureTime> OnReceivePacket( uint32_t source, uint32_t rtp_timestamp, - uint32_t rtp_clock_frequency, + int rtp_clock_frequency_hz, const absl::optional<AbsoluteCaptureTime>& received_extension); private: @@ -57,29 +56,31 @@ class AbsoluteCaptureTimeInterpolator { static uint64_t InterpolateAbsoluteCaptureTimestamp( uint32_t rtp_timestamp, - uint32_t rtp_clock_frequency, + int rtp_clock_frequency_hz, uint32_t last_rtp_timestamp, uint64_t last_absolute_capture_timestamp); bool ShouldInterpolateExtension(Timestamp receive_time, uint32_t source, uint32_t rtp_timestamp, - uint32_t rtp_clock_frequency) const + int rtp_clock_frequency_hz) const RTC_EXCLUSIVE_LOCKS_REQUIRED(mutex_); Clock* const clock_; Mutex mutex_; - Timestamp last_receive_time_ RTC_GUARDED_BY(mutex_); + // Time of the last received header extension eligible for interpolation, + // MinusInfinity() if no extension was received, or last received one is + // not eligible for interpolation. + Timestamp last_receive_time_ RTC_GUARDED_BY(mutex_) = + Timestamp::MinusInfinity(); uint32_t last_source_ RTC_GUARDED_BY(mutex_); uint32_t last_rtp_timestamp_ RTC_GUARDED_BY(mutex_); - uint32_t last_rtp_clock_frequency_ RTC_GUARDED_BY(mutex_); - uint64_t last_absolute_capture_timestamp_ RTC_GUARDED_BY(mutex_); - absl::optional<int64_t> last_estimated_capture_clock_offset_ - RTC_GUARDED_BY(mutex_); -}; // AbsoluteCaptureTimeInterpolator + int last_rtp_clock_frequency_hz_ RTC_GUARDED_BY(mutex_); + AbsoluteCaptureTime last_received_extension_ RTC_GUARDED_BY(mutex_); +}; } // namespace webrtc |