Remove RtpVideoHeader::discardable flag.

Calculate it when used instead

Bug: webrtc:11358
Change-Id: Ib79a4ce5e48a1a5244925471c005f96c5ec5dfd0
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/173702
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Reviewed-by: Sam Zackrisson <saza@webrtc.org>
Reviewed-by: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Philip Eliasson <philipel@webrtc.org>
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#31109}
This commit is contained in:
Danil Chapovalov 2020-04-20 09:53:03 +02:00 committed by Commit Bot
parent cbc0cbaaec
commit 4c3a7dbe14
6 changed files with 9 additions and 14 deletions

View File

@ -14,7 +14,6 @@
#include <algorithm>
#include "absl/algorithm/container.h"
#include "absl/container/inlined_vector.h"
#include "absl/strings/match.h"
#include "absl/types/variant.h"
@ -265,9 +264,6 @@ RtpPayloadParams::GenericDescriptorFromFrameInfo(
generic.spatial_index = frame_info.spatial_id;
generic.temporal_index = frame_info.temporal_id;
generic.decode_target_indications = frame_info.decode_target_indications;
generic.discardable =
absl::c_linear_search(frame_info.decode_target_indications,
DecodeTargetIndication::kDiscardable);
return generic;
}

View File

@ -398,7 +398,6 @@ TEST(RtpPayloadParamsTest, SetsGenericFromGenericFrameInfo) {
EXPECT_THAT(key_header.generic->dependencies, IsEmpty());
EXPECT_THAT(key_header.generic->decode_target_indications,
ElementsAre(DecodeTargetIndication::kSwitch));
EXPECT_FALSE(key_header.generic->discardable);
encoded_image._frameType = VideoFrameType::kVideoFrameDelta;
codec_info.generic_frame_info =
@ -415,7 +414,6 @@ TEST(RtpPayloadParamsTest, SetsGenericFromGenericFrameInfo) {
EXPECT_THAT(delta_header.generic->dependencies, ElementsAre(1));
EXPECT_THAT(delta_header.generic->decode_target_indications,
ElementsAre(DecodeTargetIndication::kDiscardable));
EXPECT_TRUE(delta_header.generic->discardable);
}
class RtpPayloadParamsVp8ToGenericTest : public ::testing::Test {

View File

@ -19,6 +19,7 @@
#include <string>
#include <utility>
#include "absl/algorithm/container.h"
#include "absl/memory/memory.h"
#include "absl/strings/match.h"
#include "api/crypto/frame_encryptor_interface.h"
@ -652,8 +653,11 @@ bool RTPSenderVideo::SendVideo(
if (video_header.frame_type == VideoFrameType::kVideoFrameKey ||
(IsBaseLayer(video_header) &&
!(video_header.generic.has_value() ? video_header.generic->discardable
: false))) {
!(video_header.generic.has_value()
? absl::c_linear_search(
video_header.generic->decode_target_indications,
DecodeTargetIndication::kDiscardable)
: false))) {
// This frame has guaranteed delivery, no need to populate playout
// delay extensions until it changes again.
playout_delay_pending_ = false;

View File

@ -53,7 +53,6 @@ struct RTPVideoHeader {
int temporal_index = 0;
absl::InlinedVector<DecodeTargetIndication, 10> decode_target_indications;
absl::InlinedVector<int64_t, 5> dependencies;
bool discardable = false;
};
RTPVideoHeader();

View File

@ -78,7 +78,6 @@ GenerateGenericFrameDependencies(DataReader* reader) {
result->frame_id = reader->GetNum<int32_t>();
result->spatial_index = (flags & 0b0111'0000) >> 4;
result->temporal_index = (flags & 0b0000'1110) >> 1;
result->discardable = (flags & 0b0000'0001);
// Larger than supported by the RtpFrameReferenceFinder.
int num_diffs = (reader->GetNum<uint8_t>() % 16);

View File

@ -380,9 +380,6 @@ RtpVideoStreamReceiver::ParseGenericDependenciesExtension(
}
generic_descriptor_info.decode_target_indications =
dependency_descriptor.frame_dependencies.decode_target_indications;
generic_descriptor_info.discardable =
absl::c_linear_search(generic_descriptor_info.decode_target_indications,
DecodeTargetIndication::kDiscardable);
if (dependency_descriptor.resolution) {
video_header->width = dependency_descriptor.resolution->Width();
video_header->height = dependency_descriptor.resolution->Height();
@ -774,7 +771,9 @@ void RtpVideoStreamReceiver::OnAssembledFrame(
if (loss_notification_controller_ && descriptor) {
loss_notification_controller_->OnAssembledFrame(
frame->first_seq_num(), descriptor->frame_id, descriptor->discardable,
frame->first_seq_num(), descriptor->frame_id,
absl::c_linear_search(descriptor->decode_target_indications,
DecodeTargetIndication::kDiscardable),
descriptor->dependencies);
}