diff --git a/video/rtp_video_stream_receiver.cc b/video/rtp_video_stream_receiver.cc index d7be8b3f61..8f89a6cbfa 100644 --- a/video/rtp_video_stream_receiver.cc +++ b/video/rtp_video_stream_receiver.cc @@ -652,13 +652,20 @@ void RtpVideoStreamReceiver::OnReceivedPayloadData( .first->second; // Try to extrapolate absolute capture time if it is missing. - packet_info.set_absolute_capture_time( + absl::optional absolute_capture_time = absolute_capture_time_interpolator_.OnReceivePacket( AbsoluteCaptureTimeInterpolator::GetSource(packet_info.ssrc(), packet_info.csrcs()), packet_info.rtp_timestamp(), // Assume frequency is the same one for all video frames. - kVideoPayloadTypeFrequency, packet_info.absolute_capture_time())); + kVideoPayloadTypeFrequency, packet_info.absolute_capture_time()); + packet_info.set_absolute_capture_time(absolute_capture_time); + + if (absolute_capture_time.has_value()) { + packet_info.set_local_capture_clock_offset( + capture_clock_offset_updater_.AdjustEstimatedCaptureClockOffset( + absolute_capture_time->estimated_capture_clock_offset)); + } insert_result = packet_buffer_.InsertPacket(std::move(packet)); }