aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorArtem Titarenko <artit@webrtc.org>2022-04-28 15:20:09 +0200
committerWebRTC LUCI CQ <webrtc-scoped@luci-project-accounts.iam.gserviceaccount.com>2022-05-05 09:58:28 +0000
commit658dfb74e563295b7ed4961d06c68afbd566ef8d (patch)
treebd2450b3f146631368e38eda9fc0503747bb07f1
parent26d12fcc712123842162ac417b5117b297f79a4d (diff)
downloadwebrtc-658dfb74e563295b7ed4961d06c68afbd566ef8d.tar.gz
RTP video stream receivers: By default consider frames decryptable.
Looks like the original code [0] that should limit the amount of keyframe requests behaves a bit strange in a situation when the first keyframe is missed. Effectively in the encrypted session the receiver can't enforce getting the keyframe until it receives at least one frame which is decryptable [1]. And with dependency descriptors it can't do that until it receives a keyframe which contains proper DD header [2]. This leads to unnecessary delays until the sender sends a keyframe itself. In this CL we "trust" that the stream is decryptable from the beginning unless proven the opposite [3]. [0]: https://webrtc-review.googlesource.com/c/src/+/123414/ [1]: https://webrtc.googlesource.com/src/+/9432768024b0397f2dccfec0cab30f33dde87b93/video/video_receive_stream2.cc#950 [2]: https://webrtc.googlesource.com/src/+/9432768024b0397f2dccfec0cab30f33dde87b93/video/rtp_video_stream_receiver2.cc#415 [3]: https://webrtc.googlesource.com/src/+/9432768024b0397f2dccfec0cab30f33dde87b93/video/rtp_video_stream_receiver2.cc#882 Bug: webrtc:10330 Change-Id: I167d728ddc7cde74a5c5e3327bce7364ed97b7ea Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/260326 Reviewed-by: Philip Eliasson <philipel@webrtc.org> Reviewed-by: Erik Språng <sprang@webrtc.org> Commit-Queue: Artem Titarenko <artit@webrtc.org> Cr-Commit-Position: refs/heads/main@{#36775}
-rw-r--r--video/rtp_video_stream_receiver.cc2
-rw-r--r--video/rtp_video_stream_receiver2.cc2
2 files changed, 2 insertions, 2 deletions
diff --git a/video/rtp_video_stream_receiver.cc b/video/rtp_video_stream_receiver.cc
index 04484b91cc..e142c5797d 100644
--- a/video/rtp_video_stream_receiver.cc
+++ b/video/rtp_video_stream_receiver.cc
@@ -278,7 +278,7 @@ RtpVideoStreamReceiver::RtpVideoStreamReceiver(
PacketBufferMaxSize(field_trials_)),
reference_finder_(std::make_unique<RtpFrameReferenceFinder>()),
has_received_frame_(false),
- frames_decryptable_(false),
+ frames_decryptable_(true),
absolute_capture_time_interpolator_(clock) {
constexpr bool remb_candidate = true;
if (packet_router_)
diff --git a/video/rtp_video_stream_receiver2.cc b/video/rtp_video_stream_receiver2.cc
index 9956760c3b..0568f80702 100644
--- a/video/rtp_video_stream_receiver2.cc
+++ b/video/rtp_video_stream_receiver2.cc
@@ -259,7 +259,7 @@ RtpVideoStreamReceiver2::RtpVideoStreamReceiver2(
PacketBufferMaxSize(field_trials_)),
reference_finder_(std::make_unique<RtpFrameReferenceFinder>()),
has_received_frame_(false),
- frames_decryptable_(false),
+ frames_decryptable_(true),
absolute_capture_time_interpolator_(clock) {
packet_sequence_checker_.Detach();
constexpr bool remb_candidate = true;