Revert "Do not propagate generic descriptor on receiving frame"

This reverts commit abf73de8eae90e9ac7e88ce1d52728e8102e824f.

Reason for revert: breaks downstream tests

Original change's description:
> Do not propagate generic descriptor on receiving frame
> 
> It was used only for the frame decryptor.
> Decryptor needs only raw representation that it can recreate
> in a way compatible with the new version of the descriptor.
> 
> Bug: webrtc:10342
> Change-Id: Ie098235ebb87c6f5e2af42d0022d2365cd6bfa29
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/166163
> Reviewed-by: Philip Eliasson <philipel@webrtc.org>
> Reviewed-by: Erik Språng <sprang@webrtc.org>
> Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#30501}

TBR=danilchap@webrtc.org,sprang@webrtc.org,philipel@webrtc.org

Change-Id: I6634df06ee75aa8cdfda614994ab11f7a5845c70
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: webrtc:10342
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/168488
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#30502}
diff --git a/modules/video_coding/frame_object.cc b/modules/video_coding/frame_object.cc
index cb83999..682ce17 100644
--- a/modules/video_coding/frame_object.cc
+++ b/modules/video_coding/frame_object.cc
@@ -37,6 +37,7 @@
     VideoContentType content_type,
     const RTPVideoHeader& video_header,
     const absl::optional<webrtc::ColorSpace>& color_space,
+    const absl::optional<RtpGenericFrameDescriptor>& generic_descriptor,
     RtpPacketInfos packet_infos,
     rtc::scoped_refptr<EncodedImageBuffer> image_buffer)
     : first_seq_num_(first_seq_num),
@@ -44,6 +45,7 @@
       last_packet_received_time_(last_packet_received_time),
       times_nacked_(times_nacked) {
   rtp_video_header_ = video_header;
+  rtp_generic_frame_descriptor_ = generic_descriptor;
 
   // EncodedFrame members
   codec_type_ = codec;
@@ -129,6 +131,11 @@
   return rtp_video_header_;
 }
 
+const absl::optional<RtpGenericFrameDescriptor>&
+RtpFrameObject::GetGenericFrameDescriptor() const {
+  return rtp_generic_frame_descriptor_;
+}
+
 const FrameMarking& RtpFrameObject::GetFrameMarking() const {
   return rtp_video_header_.frame_marking;
 }
diff --git a/modules/video_coding/frame_object.h b/modules/video_coding/frame_object.h
index f798876..b3cee20 100644
--- a/modules/video_coding/frame_object.h
+++ b/modules/video_coding/frame_object.h
@@ -13,29 +13,32 @@
 
 #include "absl/types/optional.h"
 #include "api/video/encoded_frame.h"
+#include "modules/rtp_rtcp/source/rtp_generic_frame_descriptor.h"
 
 namespace webrtc {
 namespace video_coding {
 
 class RtpFrameObject : public EncodedFrame {
  public:
-  RtpFrameObject(uint16_t first_seq_num,
-                 uint16_t last_seq_num,
-                 bool markerBit,
-                 int times_nacked,
-                 int64_t first_packet_received_time,
-                 int64_t last_packet_received_time,
-                 uint32_t rtp_timestamp,
-                 int64_t ntp_time_ms,
-                 const VideoSendTiming& timing,
-                 uint8_t payload_type,
-                 VideoCodecType codec,
-                 VideoRotation rotation,
-                 VideoContentType content_type,
-                 const RTPVideoHeader& video_header,
-                 const absl::optional<webrtc::ColorSpace>& color_space,
-                 RtpPacketInfos packet_infos,
-                 rtc::scoped_refptr<EncodedImageBuffer> image_buffer);
+  RtpFrameObject(
+      uint16_t first_seq_num,
+      uint16_t last_seq_num,
+      bool markerBit,
+      int times_nacked,
+      int64_t first_packet_received_time,
+      int64_t last_packet_received_time,
+      uint32_t rtp_timestamp,
+      int64_t ntp_time_ms,
+      const VideoSendTiming& timing,
+      uint8_t payload_type,
+      VideoCodecType codec,
+      VideoRotation rotation,
+      VideoContentType content_type,
+      const RTPVideoHeader& video_header,
+      const absl::optional<webrtc::ColorSpace>& color_space,
+      const absl::optional<RtpGenericFrameDescriptor>& generic_descriptor,
+      RtpPacketInfos packet_infos,
+      rtc::scoped_refptr<EncodedImageBuffer> image_buffer);
 
   ~RtpFrameObject() override;
   uint16_t first_seq_num() const;
@@ -47,10 +50,13 @@
   int64_t RenderTime() const override;
   bool delayed_by_retransmission() const override;
   const RTPVideoHeader& GetRtpVideoHeader() const;
+  const absl::optional<RtpGenericFrameDescriptor>& GetGenericFrameDescriptor()
+      const;
   const FrameMarking& GetFrameMarking() const;
 
  private:
   RTPVideoHeader rtp_video_header_;
+  absl::optional<RtpGenericFrameDescriptor> rtp_generic_frame_descriptor_;
   VideoCodecType codec_type_;
   uint16_t first_seq_num_;
   uint16_t last_seq_num_;
diff --git a/modules/video_coding/packet_buffer.cc b/modules/video_coding/packet_buffer.cc
index 73abbbe..6ebb9c4 100644
--- a/modules/video_coding/packet_buffer.cc
+++ b/modules/video_coding/packet_buffer.cc
@@ -473,6 +473,7 @@
       last_packet.video_header.content_type,    //
       first_packet.video_header,                //
       last_packet.video_header.color_space,     //
+      first_packet.generic_descriptor,          //
       RtpPacketInfos(std::move(packet_infos)),  //
       std::move(bitstream));
 }
diff --git a/modules/video_coding/packet_buffer.h b/modules/video_coding/packet_buffer.h
index 5ce67ba..f78147c 100644
--- a/modules/video_coding/packet_buffer.h
+++ b/modules/video_coding/packet_buffer.h
@@ -19,6 +19,7 @@
 #include "absl/base/attributes.h"
 #include "api/rtp_packet_info.h"
 #include "api/video/encoded_image.h"
+#include "modules/rtp_rtcp/source/rtp_generic_frame_descriptor.h"
 #include "modules/rtp_rtcp/source/rtp_packet_received.h"
 #include "modules/rtp_rtcp/source/rtp_video_header.h"
 #include "modules/video_coding/frame_object.h"
@@ -66,6 +67,7 @@
 
     rtc::CopyOnWriteBuffer video_payload;
     RTPVideoHeader video_header;
+    absl::optional<RtpGenericFrameDescriptor> generic_descriptor;
 
     RtpPacketInfo packet_info;
   };
diff --git a/modules/video_coding/rtp_frame_reference_finder_unittest.cc b/modules/video_coding/rtp_frame_reference_finder_unittest.cc
index e103023..29fdba5 100644
--- a/modules/video_coding/rtp_frame_reference_finder_unittest.cc
+++ b/modules/video_coding/rtp_frame_reference_finder_unittest.cc
@@ -57,6 +57,7 @@
       VideoContentType::UNSPECIFIED,
       video_header,
       /*color_space=*/absl::nullopt,
+      /*generic_descriptor=*/absl::nullopt,
       RtpPacketInfos(),
       EncodedImageBuffer::Create(/*size=*/0));
   // clang-format on