Propagate active decode targets bitmask into DependencyDescriptor
Bug: webrtc:10342 Change-Id: I5e8a204881b94fe5786b14e27cefce2fe056e91b Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/178140 Reviewed-by: Björn Terelius <terelius@webrtc.org> Reviewed-by: Philip Eliasson <philipel@webrtc.org> Commit-Queue: Danil Chapovalov <danilchap@webrtc.org> Cr-Commit-Position: refs/heads/master@{#31579}
This commit is contained in:
committed by
Commit Bot
parent
11b6f6857f
commit
e6ac8ff162
@ -593,6 +593,40 @@ TEST_P(RtpSenderVideoTest, PropagatesChainDiffsIntoDependencyDescriptor) {
|
||||
ContainerEq(generic.chain_diffs));
|
||||
}
|
||||
|
||||
TEST_P(RtpSenderVideoTest,
|
||||
PropagatesActiveDecodeTargetsIntoDependencyDescriptor) {
|
||||
const int64_t kFrameId = 100000;
|
||||
uint8_t kFrame[100];
|
||||
rtp_module_->RegisterRtpHeaderExtension(
|
||||
RtpDependencyDescriptorExtension::kUri, kDependencyDescriptorId);
|
||||
FrameDependencyStructure video_structure;
|
||||
video_structure.num_decode_targets = 2;
|
||||
video_structure.num_chains = 1;
|
||||
video_structure.decode_target_protected_by_chain = {0, 0};
|
||||
video_structure.templates = {
|
||||
FrameDependencyTemplate().S(0).T(0).Dtis("SS").ChainDiffs({1}),
|
||||
};
|
||||
rtp_sender_video_.SetVideoStructure(&video_structure);
|
||||
|
||||
RTPVideoHeader hdr;
|
||||
RTPVideoHeader::GenericDescriptorInfo& generic = hdr.generic.emplace();
|
||||
generic.frame_id = kFrameId;
|
||||
generic.decode_target_indications = {DecodeTargetIndication::kSwitch,
|
||||
DecodeTargetIndication::kSwitch};
|
||||
generic.active_decode_targets = 0b01;
|
||||
generic.chain_diffs = {1};
|
||||
hdr.frame_type = VideoFrameType::kVideoFrameKey;
|
||||
rtp_sender_video_.SendVideo(kPayload, kType, kTimestamp, 0, kFrame, nullptr,
|
||||
hdr, kDefaultExpectedRetransmissionTimeMs);
|
||||
|
||||
ASSERT_EQ(transport_.packets_sent(), 1);
|
||||
DependencyDescriptor descriptor_key;
|
||||
ASSERT_TRUE(transport_.last_sent_packet()
|
||||
.GetExtension<RtpDependencyDescriptorExtension>(
|
||||
nullptr, &descriptor_key));
|
||||
EXPECT_EQ(descriptor_key.active_decode_targets_bitmask, 0b01u);
|
||||
}
|
||||
|
||||
TEST_P(RtpSenderVideoTest,
|
||||
SetDiffentVideoStructureAvoidsCollisionWithThePreviousStructure) {
|
||||
const int64_t kFrameId = 100000;
|
||||
|
||||
Reference in New Issue
Block a user