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}
diff --git a/DEPS b/DEPS
index b63a818..82d485f 100644
--- a/DEPS
+++ b/DEPS
@@ -1046,6 +1046,7 @@
   "+rtc_tools",
 
   # Abseil whitelist.
+  "+absl/container/inlined_vector.h",
   "+absl/memory/memory.h",
   "+absl/types/optional.h",
   "+absl/types/variant.h",
diff --git a/modules/rtp_rtcp/BUILD.gn b/modules/rtp_rtcp/BUILD.gn
index ae82e3b..df56b21 100644
--- a/modules/rtp_rtcp/BUILD.gn
+++ b/modules/rtp_rtcp/BUILD.gn
@@ -267,6 +267,7 @@
     "../../: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",
   ]
 }
diff --git a/modules/rtp_rtcp/source/rtp_video_header.cc b/modules/rtp_rtcp/source/rtp_video_header.cc
index 020a52e..cab0d2e 100644
--- a/modules/rtp_rtcp/source/rtp_video_header.cc
+++ b/modules/rtp_rtcp/source/rtp_video_header.cc
@@ -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
diff --git a/modules/rtp_rtcp/source/rtp_video_header.h b/modules/rtp_rtcp/source/rtp_video_header.h
index 49e2d29..e59de20 100644
--- a/modules/rtp_rtcp/source/rtp_video_header.h
+++ b/modules/rtp_rtcp/source/rtp_video_header.h
@@ -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 @@
   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 @@
     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;
 };