Reduce warning logging when minimum playout delay exceed maximum
There can be error log each frame when maximum playout delay sent with the frame exceed delay derived from the av-sync.
In such scenario prefer to limit the playout delay by the one attached to the received frame.
Bug: b/390043766
Change-Id: Ia57969df72f7a649e5a9280d5bb29986f5ea14b7
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/374284
Reviewed-by: Johannes Kron <kron@webrtc.org>
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#43814}
diff --git a/video/video_receive_stream2_unittest.cc b/video/video_receive_stream2_unittest.cc
index b3a0cde..0331699 100644
--- a/video/video_receive_stream2_unittest.cc
+++ b/video/video_receive_stream2_unittest.cc
@@ -306,7 +306,7 @@
TEST_P(VideoReceiveStream2Test, PlayoutDelay) {
const VideoPlayoutDelay kPlayoutDelay(TimeDelta::Millis(123),
- TimeDelta::Millis(321));
+ TimeDelta::Millis(521));
std::unique_ptr<test::FakeEncodedFrame> test_frame =
test::FakeFrameBuilder()
.Id(0)
@@ -342,6 +342,21 @@
EXPECT_EQ(123, timings.min_playout_delay.ms());
}
+TEST_P(VideoReceiveStream2Test, MinPlayoutDelayIsLimitedByMaxPlayoutDelay) {
+ const VideoPlayoutDelay kPlayoutDelay(TimeDelta::Millis(123),
+ TimeDelta::Millis(321));
+ video_receive_stream_->OnCompleteFrame(test::FakeFrameBuilder()
+ .Id(0)
+ .PlayoutDelay(kPlayoutDelay)
+ .AsLast()
+ .Build());
+ EXPECT_EQ(timing_->GetTimings().min_playout_delay, kPlayoutDelay.min());
+
+ // Check that the biggest minimum delay is limited by the max playout delay.
+ video_receive_stream_->SetMinimumPlayoutDelay(400);
+ EXPECT_EQ(timing_->GetTimings().min_playout_delay, kPlayoutDelay.max());
+}
+
TEST_P(VideoReceiveStream2Test, RenderParametersSetToDefaultValues) {
// Default render parameters.
const VideoFrame::RenderParameters kDefaultRenderParameters;