aboutsummaryrefslogtreecommitdiff
path: root/modules/rtp_rtcp/source/absolute_capture_time_interpolator.h
diff options
context:
space:
mode:
authorErwin Jansen <jansene@google.com>2023-12-15 11:49:13 -0800
committerErwin Jansen <jansene@google.com>2023-12-15 11:49:13 -0800
commit3828327c300510e0d542f0e7c9a46e75363c7a96 (patch)
tree3cecdfdd9c8114b079c2875e5c0737adb22ef0e7 /modules/rtp_rtcp/source/absolute_capture_time_interpolator.h
parent6b2545f8bc9c20c375497afad71e11d271ebf705 (diff)
parent7e6315a61994be57daaf5fc491564cd543072be4 (diff)
downloadwebrtc-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.h23
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