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}
This commit is contained in:
philipel 2020-12-01 11:47:12 +01:00 committed by Commit Bot
parent f30c47fc79
commit 39f09b4c83
2 changed files with 14 additions and 5 deletions

View File

@ -88,10 +88,6 @@ RtpFrameReferenceFinder::ReturnVector RtpFrameReferenceFinderImpl::ManageFrame(
return GetRefFinderAs<RtpVp9RefFinder>().ManageFrame(std::move(frame)); return GetRefFinderAs<RtpVp9RefFinder>().ManageFrame(std::move(frame));
} }
case kVideoCodecH264: {
return GetRefFinderAs<RtpSeqNumOnlyRefFinder>().ManageFrame(
std::move(frame));
}
case kVideoCodecGeneric: { case kVideoCodecGeneric: {
if (auto* generic_header = absl::get_if<RTPVideoHeaderLegacyGeneric>( if (auto* generic_header = absl::get_if<RTPVideoHeaderLegacyGeneric>(
&video_header.video_type_header)) { &video_header.video_type_header)) {
@ -103,7 +99,8 @@ RtpFrameReferenceFinder::ReturnVector RtpFrameReferenceFinderImpl::ManageFrame(
std::move(frame)); std::move(frame));
} }
default: { default: {
RTC_CHECK_NOTREACHED(); return GetRefFinderAs<RtpSeqNumOnlyRefFinder>().ManageFrame(
std::move(frame));
} }
} }
} }

View File

@ -1491,5 +1491,17 @@ TEST_F(TestRtpFrameReferenceFinder, H264SequenceNumberWrapMulti) {
CheckReferencesH264(sn + 7, sn + 3); 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 video_coding
} // namespace webrtc } // namespace webrtc