Add members for the codec agnostic descriptor to RTPVideoHeader.

TBR=danilchap@webrtc.org

Bug: webrtc:9361, webrtc:9582
Change-Id: I0303fc89bafab59e68ec81979e0e4372e79a4f51
Reviewed-on: https://webrtc-review.googlesource.com/91866
Reviewed-by: Sami Kalliomäki <sakal@webrtc.org>
Commit-Queue: Philip Eliasson <philipel@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24170}
This commit is contained in:
philipel 2018-08-01 17:13:08 +02:00 committed by Commit Bot
parent e468ba77ae
commit f8d81d33ed
4 changed files with 22 additions and 17 deletions

1
DEPS
View File

@ -1046,6 +1046,7 @@ include_rules = [
"+rtc_tools",
# Abseil whitelist.
"+absl/container/inlined_vector.h",
"+absl/memory/memory.h",
"+absl/types/optional.h",
"+absl/types/variant.h",

View File

@ -267,6 +267,7 @@ rtc_source_set("rtp_video_header") {
"../../:webrtc_common",
"../../api/video:video_frame",
"../../modules/video_coding:codec_globals_headers",
"//third_party/abseil-cpp/absl/container:inlined_vector",
"//third_party/abseil-cpp/absl/types:variant",
]
}

View File

@ -12,16 +12,8 @@
namespace webrtc {
RTPVideoHeader::RTPVideoHeader()
: width(),
height(),
rotation(),
playout_delay(),
content_type(),
video_timing(),
is_first_packet_in_frame(),
simulcastIdx(),
codec() {}
RTPVideoHeader::RTPVideoHeader() : playout_delay(), video_timing() {}
RTPVideoHeader::RTPVideoHeader(const RTPVideoHeader& other) = default;
RTPVideoHeader::~RTPVideoHeader() = default;
} // namespace webrtc

View File

@ -10,6 +10,7 @@
#ifndef MODULES_RTP_RTCP_SOURCE_RTP_VIDEO_HEADER_H_
#define MODULES_RTP_RTCP_SOURCE_RTP_VIDEO_HEADER_H_
#include "absl/container/inlined_vector.h"
#include "absl/types/variant.h"
#include "api/video/video_content_type.h"
#include "api/video/video_rotation.h"
@ -27,6 +28,8 @@ struct RTPVideoHeader {
RTPVideoHeader();
RTPVideoHeader(const RTPVideoHeader& other);
~RTPVideoHeader();
// TODO(philipel): Remove when downstream projects have been updated.
RTPVideoHeaderVP8& vp8() {
if (!absl::holds_alternative<RTPVideoHeaderVP8>(video_type_header))
@ -70,15 +73,23 @@ struct RTPVideoHeader {
return absl::get<RTPVideoHeaderH264>(video_type_header);
}
uint16_t width;
uint16_t height;
VideoRotation rotation;
// Information for generic codec descriptor.
int64_t frame_id = 0;
int spatial_index = 0;
int temporal_index = 0;
absl::InlinedVector<int64_t, 5> dependencies;
absl::InlinedVector<int, 5> higher_spatial_layers;
uint16_t width = 0;
uint16_t height = 0;
VideoRotation rotation = VideoRotation::kVideoRotation_0;
VideoContentType content_type = VideoContentType::UNSPECIFIED;
bool is_first_packet_in_frame = false;
uint8_t simulcastIdx = 0;
VideoCodecType codec = VideoCodecType::kVideoCodecUnknown;
PlayoutDelay playout_delay;
VideoContentType content_type;
VideoSendTiming video_timing;
bool is_first_packet_in_frame;
uint8_t simulcastIdx;
VideoCodecType codec;
// TODO(philipel): remove mutable when downstream projects have been updated.
mutable RTPVideoTypeHeader video_type_header;
};