Remove RTPVideoHeader::vp9() accessors.
TBR=stefan@webrtc.org Bug: none Change-Id: Ia2f728ea3377754a16a0b081e25c4479fe211b3e Reviewed-on: https://webrtc-review.googlesource.com/93024 Commit-Queue: Philip Eliasson <philipel@webrtc.org> Reviewed-by: Danil Chapovalov <danilchap@webrtc.org> Reviewed-by: Erik Språng <sprang@webrtc.org> Cr-Commit-Position: refs/heads/master@{#24243}
This commit is contained in:
@ -34,9 +34,12 @@ RtpPacketizer* RtpPacketizer::Create(VideoCodecType type,
|
||||
case kVideoCodecVP8:
|
||||
return new RtpPacketizerVp8(rtp_video_header->vp8(), max_payload_len,
|
||||
last_packet_reduction_len);
|
||||
case kVideoCodecVP9:
|
||||
return new RtpPacketizerVp9(rtp_video_header->vp9(), max_payload_len,
|
||||
case kVideoCodecVP9: {
|
||||
const auto& vp9 =
|
||||
absl::get<RTPVideoHeaderVP9>(rtp_video_header->video_type_header);
|
||||
return new RtpPacketizerVp9(vp9, max_payload_len,
|
||||
last_packet_reduction_len);
|
||||
}
|
||||
case kVideoCodecGeneric:
|
||||
return new RtpPacketizerGeneric(frame_type, max_payload_len,
|
||||
last_packet_reduction_len);
|
||||
|
||||
@ -719,41 +719,42 @@ bool RtpDepacketizerVp9::Parse(ParsedPayload* parsed_payload,
|
||||
|
||||
parsed_payload->frame_type = p_bit ? kVideoFrameDelta : kVideoFrameKey;
|
||||
|
||||
RTPVideoHeaderVP9* vp9 = &parsed_payload->video_header().vp9();
|
||||
vp9->InitRTPVideoHeaderVP9();
|
||||
vp9->inter_pic_predicted = p_bit ? true : false;
|
||||
vp9->flexible_mode = f_bit ? true : false;
|
||||
vp9->beginning_of_frame = b_bit ? true : false;
|
||||
vp9->end_of_frame = e_bit ? true : false;
|
||||
vp9->ss_data_available = v_bit ? true : false;
|
||||
vp9->non_ref_for_inter_layer_pred = z_bit ? true : false;
|
||||
auto& vp9_header = parsed_payload->video_header()
|
||||
.video_type_header.emplace<RTPVideoHeaderVP9>();
|
||||
vp9_header.InitRTPVideoHeaderVP9();
|
||||
vp9_header.inter_pic_predicted = p_bit ? true : false;
|
||||
vp9_header.flexible_mode = f_bit ? true : false;
|
||||
vp9_header.beginning_of_frame = b_bit ? true : false;
|
||||
vp9_header.end_of_frame = e_bit ? true : false;
|
||||
vp9_header.ss_data_available = v_bit ? true : false;
|
||||
vp9_header.non_ref_for_inter_layer_pred = z_bit ? true : false;
|
||||
|
||||
// Parse fields that are present.
|
||||
if (i_bit && !ParsePictureId(&parser, vp9)) {
|
||||
if (i_bit && !ParsePictureId(&parser, &vp9_header)) {
|
||||
RTC_LOG(LS_ERROR) << "Failed parsing VP9 picture id.";
|
||||
return false;
|
||||
}
|
||||
if (l_bit && !ParseLayerInfo(&parser, vp9)) {
|
||||
if (l_bit && !ParseLayerInfo(&parser, &vp9_header)) {
|
||||
RTC_LOG(LS_ERROR) << "Failed parsing VP9 layer info.";
|
||||
return false;
|
||||
}
|
||||
if (p_bit && f_bit && !ParseRefIndices(&parser, vp9)) {
|
||||
if (p_bit && f_bit && !ParseRefIndices(&parser, &vp9_header)) {
|
||||
RTC_LOG(LS_ERROR) << "Failed parsing VP9 ref indices.";
|
||||
return false;
|
||||
}
|
||||
if (v_bit) {
|
||||
if (!ParseSsData(&parser, vp9)) {
|
||||
if (!ParseSsData(&parser, &vp9_header)) {
|
||||
RTC_LOG(LS_ERROR) << "Failed parsing VP9 SS data.";
|
||||
return false;
|
||||
}
|
||||
if (vp9->spatial_layer_resolution_present) {
|
||||
if (vp9_header.spatial_layer_resolution_present) {
|
||||
// TODO(asapersson): Add support for spatial layers.
|
||||
parsed_payload->video_header().width = vp9->width[0];
|
||||
parsed_payload->video_header().height = vp9->height[0];
|
||||
parsed_payload->video_header().width = vp9_header.width[0];
|
||||
parsed_payload->video_header().height = vp9_header.height[0];
|
||||
}
|
||||
}
|
||||
parsed_payload->video_header().is_first_packet_in_frame =
|
||||
b_bit && (!l_bit || !vp9->inter_layer_predicted);
|
||||
b_bit && (!l_bit || !vp9_header.inter_layer_predicted);
|
||||
|
||||
uint64_t rem_bits = parser.RemainingBitCount();
|
||||
assert(rem_bits % 8 == 0);
|
||||
|
||||
@ -82,7 +82,9 @@ void ParseAndCheckPacket(const uint8_t* packet,
|
||||
RtpDepacketizer::ParsedPayload parsed;
|
||||
ASSERT_TRUE(depacketizer->Parse(&parsed, packet, expected_length));
|
||||
EXPECT_EQ(kVideoCodecVP9, parsed.video_header().codec);
|
||||
VerifyHeader(expected, parsed.video_header().vp9());
|
||||
auto& vp9_header =
|
||||
absl::get<RTPVideoHeaderVP9>(parsed.video_header().video_type_header);
|
||||
VerifyHeader(expected, vp9_header);
|
||||
const size_t kExpectedPayloadLength = expected_length - expected_hdr_length;
|
||||
VerifyPayload(parsed, packet + expected_hdr_length, kExpectedPayloadLength);
|
||||
}
|
||||
|
||||
@ -1891,8 +1891,9 @@ TEST_P(RtpSenderVideoTest, RetransmissionTypesVP9) {
|
||||
RTPVideoHeader header;
|
||||
header.codec = kVideoCodecVP9;
|
||||
|
||||
auto& vp9_header = header.video_type_header.emplace<RTPVideoHeaderVP9>();
|
||||
for (int tid = 1; tid <= kMaxTemporalStreams; ++tid) {
|
||||
header.vp9().temporal_idx = tid;
|
||||
vp9_header.temporal_idx = tid;
|
||||
|
||||
EXPECT_EQ(kDontRetransmit, rtp_sender_video_->GetStorageType(
|
||||
header, kRetransmitOff,
|
||||
|
||||
@ -471,7 +471,8 @@ uint8_t RTPSenderVideo::GetTemporalId(const RTPVideoHeader& header) {
|
||||
case kVideoCodecVP8:
|
||||
return header.vp8().temporalIdx;
|
||||
case kVideoCodecVP9:
|
||||
return header.vp9().temporal_idx;
|
||||
return absl::get<RTPVideoHeaderVP9>(header.video_type_header)
|
||||
.temporal_idx;
|
||||
default:
|
||||
return kNoTemporalIdx;
|
||||
}
|
||||
|
||||
@ -44,20 +44,6 @@ struct RTPVideoHeader {
|
||||
|
||||
return absl::get<RTPVideoHeaderVP8>(video_type_header);
|
||||
}
|
||||
// TODO(philipel): Remove when downstream projects have been updated.
|
||||
RTPVideoHeaderVP9& vp9() {
|
||||
if (!absl::holds_alternative<RTPVideoHeaderVP9>(video_type_header))
|
||||
video_type_header.emplace<RTPVideoHeaderVP9>();
|
||||
|
||||
return absl::get<RTPVideoHeaderVP9>(video_type_header);
|
||||
}
|
||||
// TODO(philipel): Remove when downstream projects have been updated.
|
||||
const RTPVideoHeaderVP9& vp9() const {
|
||||
if (!absl::holds_alternative<RTPVideoHeaderVP9>(video_type_header))
|
||||
video_type_header.emplace<RTPVideoHeaderVP9>();
|
||||
|
||||
return absl::get<RTPVideoHeaderVP9>(video_type_header);
|
||||
}
|
||||
|
||||
// Information for generic codec descriptor.
|
||||
int64_t frame_id = 0;
|
||||
|
||||
Reference in New Issue
Block a user