Always record receive timestamps even on when the invalid flag is set.
This change is based on a discussion for integrating a new statistic that measures the delay between the first frame being received and the first frame being decoded. To enable this in the context of FrameEncryption it makes sense for packet receive timestamps to be unconditionally recorded. Bug: webrtc:10105 Change-Id: I6b3b0118121db1fe5d4a4fb16cf5d94341cd2b1b Reviewed-on: https://webrtc-review.googlesource.com/c/113487 Commit-Queue: Benjamin Wright <benwright@webrtc.org> Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org> Cr-Commit-Position: refs/heads/master@{#25931}
This commit is contained in:
committed by
Commit Bot
parent
d1d7b23f89
commit
3f10ca8145
@ -99,11 +99,10 @@ RtpFrameObject::RtpFrameObject(PacketBuffer* packet_buffer,
|
||||
timing_.network2_timestamp_ms =
|
||||
ntp_time_ms_ +
|
||||
last_packet->video_header.video_timing.network2_timestamp_delta_ms;
|
||||
|
||||
timing_.receive_start_ms = first_packet->receive_time_ms;
|
||||
timing_.receive_finish_ms = last_packet->receive_time_ms;
|
||||
}
|
||||
timing_.flags = last_packet->video_header.video_timing.flags;
|
||||
timing_.receive_start_ms = first_packet->receive_time_ms;
|
||||
timing_.receive_finish_ms = last_packet->receive_time_ms;
|
||||
is_last_spatial_layer = last_packet->markerBit;
|
||||
}
|
||||
|
||||
|
||||
@ -91,6 +91,7 @@ void VCMDecodedFrameCallback::Decoded(VideoFrame& decodedImage,
|
||||
frameInfo->renderTimeMs);
|
||||
|
||||
// Report timing information.
|
||||
TimingFrameInfo timing_frame_info;
|
||||
if (frameInfo->timing.flags != VideoSendTiming::kInvalid) {
|
||||
int64_t capture_time_ms = decodedImage.ntp_time_ms() - ntp_offset_;
|
||||
// Convert remote timestamps to local time from ntp timestamps.
|
||||
@ -115,7 +116,6 @@ void VCMDecodedFrameCallback::Decoded(VideoFrame& decodedImage,
|
||||
1;
|
||||
}
|
||||
|
||||
TimingFrameInfo timing_frame_info;
|
||||
|
||||
timing_frame_info.capture_time_ms = capture_time_ms - sender_delta_ms;
|
||||
timing_frame_info.encode_start_ms =
|
||||
@ -130,17 +130,17 @@ void VCMDecodedFrameCallback::Decoded(VideoFrame& decodedImage,
|
||||
frameInfo->timing.network_timestamp_ms - sender_delta_ms;
|
||||
timing_frame_info.network2_timestamp_ms =
|
||||
frameInfo->timing.network2_timestamp_ms - sender_delta_ms;
|
||||
timing_frame_info.receive_start_ms = frameInfo->timing.receive_start_ms;
|
||||
timing_frame_info.receive_finish_ms = frameInfo->timing.receive_finish_ms;
|
||||
timing_frame_info.decode_start_ms = frameInfo->decodeStartTimeMs;
|
||||
timing_frame_info.decode_finish_ms = now_ms;
|
||||
timing_frame_info.render_time_ms = frameInfo->renderTimeMs;
|
||||
timing_frame_info.rtp_timestamp = decodedImage.timestamp();
|
||||
timing_frame_info.flags = frameInfo->timing.flags;
|
||||
|
||||
_timing->SetTimingFrameInfo(timing_frame_info);
|
||||
}
|
||||
|
||||
timing_frame_info.flags = frameInfo->timing.flags;
|
||||
timing_frame_info.decode_start_ms = frameInfo->decodeStartTimeMs;
|
||||
timing_frame_info.decode_finish_ms = now_ms;
|
||||
timing_frame_info.render_time_ms = frameInfo->renderTimeMs;
|
||||
timing_frame_info.rtp_timestamp = decodedImage.timestamp();
|
||||
timing_frame_info.receive_start_ms = frameInfo->timing.receive_start_ms;
|
||||
timing_frame_info.receive_finish_ms = frameInfo->timing.receive_finish_ms;
|
||||
_timing->SetTimingFrameInfo(timing_frame_info);
|
||||
|
||||
decodedImage.set_timestamp_us(frameInfo->renderTimeMs *
|
||||
rtc::kNumMicrosecsPerMillisec);
|
||||
decodedImage.set_rotation(frameInfo->rotation);
|
||||
|
||||
Reference in New Issue
Block a user