Handle AV1 without DependencyDescriptor.
Bug: webrtc:12221
Change-Id: I757c9407d71131a15e5d6b274e16c7a639512761
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/196080
Commit-Queue: Philip Eliasson <philipel@webrtc.org>
Reviewed-by: Lahiru Ginnaliya Gamathige <glahiru@webrtc.org>
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#32729}
diff --git a/modules/video_coding/rtp_frame_reference_finder.cc b/modules/video_coding/rtp_frame_reference_finder.cc
index 13e1fe3..3084b5b 100644
--- a/modules/video_coding/rtp_frame_reference_finder.cc
+++ b/modules/video_coding/rtp_frame_reference_finder.cc
@@ -88,10 +88,6 @@
return GetRefFinderAs<RtpVp9RefFinder>().ManageFrame(std::move(frame));
}
- case kVideoCodecH264: {
- return GetRefFinderAs<RtpSeqNumOnlyRefFinder>().ManageFrame(
- std::move(frame));
- }
case kVideoCodecGeneric: {
if (auto* generic_header = absl::get_if<RTPVideoHeaderLegacyGeneric>(
&video_header.video_type_header)) {
@@ -103,7 +99,8 @@
std::move(frame));
}
default: {
- RTC_CHECK_NOTREACHED();
+ return GetRefFinderAs<RtpSeqNumOnlyRefFinder>().ManageFrame(
+ std::move(frame));
}
}
}
diff --git a/modules/video_coding/rtp_frame_reference_finder_unittest.cc b/modules/video_coding/rtp_frame_reference_finder_unittest.cc
index 0c08ddd..4cfb559 100644
--- a/modules/video_coding/rtp_frame_reference_finder_unittest.cc
+++ b/modules/video_coding/rtp_frame_reference_finder_unittest.cc
@@ -1491,5 +1491,17 @@
CheckReferencesH264(sn + 7, sn + 3);
}
+TEST_F(TestRtpFrameReferenceFinder, Av1FrameNoDependencyDescriptor) {
+ uint16_t sn = 0xFFFF;
+ std::unique_ptr<RtpFrameObject> frame =
+ CreateFrame(/*seq_num_start=*/sn, /*seq_num_end=*/sn, /*keyframe=*/true,
+ kVideoCodecAV1, RTPVideoTypeHeader());
+
+ reference_finder_->ManageFrame(std::move(frame));
+
+ ASSERT_EQ(1UL, frames_from_callback_.size());
+ CheckReferencesGeneric(sn);
+}
+
} // namespace video_coding
} // namespace webrtc