Change vcm::VideoReceiver::IncomingPacket to not use WebRtcRTPHeader

Bug: webrtc:10397
Change-Id: Id549516faab1b1047ef52dd8229a73eeb48c5fe2
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/134162
Reviewed-by: Philip Eliasson <philipel@webrtc.org>
Commit-Queue: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27761}
diff --git a/modules/video_coding/video_receiver_unittest.cc b/modules/video_coding/video_receiver_unittest.cc
index 1c6bd43..7526691 100644
--- a/modules/video_coding/video_receiver_unittest.cc
+++ b/modules/video_coding/video_receiver_unittest.cc
@@ -55,23 +55,29 @@
     receiver_.RegisterReceiveCallback(&receive_callback_);
   }
 
-  WebRtcRTPHeader GetDefaultVp8Header() const {
-    WebRtcRTPHeader header = {};
-    header.frameType = VideoFrameType::kEmptyFrame;
-    header.header.markerBit = false;
-    header.header.payloadType = kUnusedPayloadType;
-    header.header.ssrc = 1;
-    header.header.headerLength = 12;
-    header.video_header().codec = kVideoCodecVP8;
+  RTPHeader GetDefaultRTPHeader() const {
+    RTPHeader header;
+    header.markerBit = false;
+    header.payloadType = kUnusedPayloadType;
+    header.ssrc = 1;
+    header.headerLength = 12;
     return header;
   }
 
+  RTPVideoHeader GetDefaultVp8Header() const {
+    RTPVideoHeader video_header = {};
+    video_header.frame_type = VideoFrameType::kEmptyFrame;
+    video_header.codec = kVideoCodecVP8;
+    return video_header;
+  }
+
   void InsertAndVerifyPaddingFrame(const uint8_t* payload,
-                                   WebRtcRTPHeader* header) {
+                                   RTPHeader* header,
+                                   const RTPVideoHeader& video_header) {
     for (int j = 0; j < 5; ++j) {
       // Padding only packets are passed to the VCM with payload size 0.
-      EXPECT_EQ(0, receiver_.IncomingPacket(payload, 0, *header));
-      ++header->header.sequenceNumber;
+      EXPECT_EQ(0, receiver_.IncomingPacket(payload, 0, *header, video_header));
+      ++header->sequenceNumber;
     }
     receiver_.Process();
     EXPECT_CALL(decoder_, Decode(_, _, _)).Times(0);
@@ -80,9 +86,11 @@
 
   void InsertAndVerifyDecodableFrame(const uint8_t* payload,
                                      size_t length,
-                                     WebRtcRTPHeader* header) {
-    EXPECT_EQ(0, receiver_.IncomingPacket(payload, length, *header));
-    ++header->header.sequenceNumber;
+                                     RTPHeader* header,
+                                     const RTPVideoHeader& video_header) {
+    EXPECT_EQ(0,
+              receiver_.IncomingPacket(payload, length, *header, video_header));
+    ++header->sequenceNumber;
     EXPECT_CALL(packet_request_callback_, ResendPackets(_, _)).Times(0);
 
     receiver_.Process();
@@ -102,13 +110,14 @@
 TEST_F(TestVideoReceiver, PaddingOnlyFrames) {
   const size_t kPaddingSize = 220;
   const uint8_t kPayload[kPaddingSize] = {0};
-  WebRtcRTPHeader header = GetDefaultVp8Header();
-  header.header.paddingLength = kPaddingSize;
+  RTPHeader header = GetDefaultRTPHeader();
+  RTPVideoHeader video_header = GetDefaultVp8Header();
+  header.paddingLength = kPaddingSize;
   for (int i = 0; i < 10; ++i) {
     EXPECT_CALL(packet_request_callback_, ResendPackets(_, _)).Times(0);
-    InsertAndVerifyPaddingFrame(kPayload, &header);
+    InsertAndVerifyPaddingFrame(kPayload, &header, video_header);
     clock_.AdvanceTimeMilliseconds(33);
-    header.header.timestamp += 3000;
+    header.timestamp += 3000;
   }
 }
 
@@ -116,30 +125,31 @@
   const size_t kFrameSize = 1200;
   const size_t kPaddingSize = 220;
   const uint8_t kPayload[kFrameSize] = {0};
-  WebRtcRTPHeader header = GetDefaultVp8Header();
-  header.header.paddingLength = kPaddingSize;
-  header.video_header().video_type_header.emplace<RTPVideoHeaderVP8>();
+  RTPHeader header = GetDefaultRTPHeader();
+  RTPVideoHeader video_header = GetDefaultVp8Header();
+  header.paddingLength = kPaddingSize;
+  video_header.video_type_header.emplace<RTPVideoHeaderVP8>();
 
   // Insert one video frame to get one frame decoded.
-  header.video_header().frame_type = VideoFrameType::kVideoFrameKey;
-  header.video_header().is_first_packet_in_frame = true;
-  header.header.markerBit = true;
-  InsertAndVerifyDecodableFrame(kPayload, kFrameSize, &header);
+  video_header.frame_type = VideoFrameType::kVideoFrameKey;
+  video_header.is_first_packet_in_frame = true;
+  header.markerBit = true;
+  InsertAndVerifyDecodableFrame(kPayload, kFrameSize, &header, video_header);
 
   clock_.AdvanceTimeMilliseconds(33);
-  header.header.timestamp += 3000;
-  header.video_header().frame_type = VideoFrameType::kEmptyFrame;
-  header.video_header().is_first_packet_in_frame = false;
-  header.header.markerBit = false;
+  header.timestamp += 3000;
+  video_header.frame_type = VideoFrameType::kEmptyFrame;
+  video_header.is_first_packet_in_frame = false;
+  header.markerBit = false;
   // Insert padding frames.
   for (int i = 0; i < 10; ++i) {
     // Lose one packet from the 6th frame.
     if (i == 5) {
-      ++header.header.sequenceNumber;
+      ++header.sequenceNumber;
     }
     // Lose the 4th frame.
     if (i == 3) {
-      header.header.sequenceNumber += 5;
+      header.sequenceNumber += 5;
     } else {
       if (i > 3 && i < 5) {
         EXPECT_CALL(packet_request_callback_, ResendPackets(_, 5)).Times(1);
@@ -148,10 +158,10 @@
       } else {
         EXPECT_CALL(packet_request_callback_, ResendPackets(_, _)).Times(0);
       }
-      InsertAndVerifyPaddingFrame(kPayload, &header);
+      InsertAndVerifyPaddingFrame(kPayload, &header, video_header);
     }
     clock_.AdvanceTimeMilliseconds(33);
-    header.header.timestamp += 3000;
+    header.timestamp += 3000;
   }
 }
 
@@ -159,11 +169,12 @@
   const size_t kFrameSize = 1200;
   const size_t kPaddingSize = 220;
   const uint8_t kPayload[kFrameSize] = {0};
-  WebRtcRTPHeader header = GetDefaultVp8Header();
-  header.video_header().is_first_packet_in_frame = false;
-  header.header.paddingLength = kPaddingSize;
+  RTPHeader header = GetDefaultRTPHeader();
+  RTPVideoHeader video_header = GetDefaultVp8Header();
+  video_header.is_first_packet_in_frame = false;
+  header.paddingLength = kPaddingSize;
   auto& vp8_header =
-      header.video.video_type_header.emplace<RTPVideoHeaderVP8>();
+      video_header.video_type_header.emplace<RTPVideoHeaderVP8>();
   vp8_header.pictureId = -1;
   vp8_header.tl0PicIdx = -1;
 
@@ -171,24 +182,25 @@
     // Insert 2 video frames.
     for (int j = 0; j < 2; ++j) {
       if (i == 0 && j == 0)  // First frame should be a key frame.
-        header.video_header().frame_type = VideoFrameType::kVideoFrameKey;
+        video_header.frame_type = VideoFrameType::kVideoFrameKey;
       else
-        header.video_header().frame_type = VideoFrameType::kVideoFrameDelta;
-      header.video_header().is_first_packet_in_frame = true;
-      header.header.markerBit = true;
-      InsertAndVerifyDecodableFrame(kPayload, kFrameSize, &header);
+        video_header.frame_type = VideoFrameType::kVideoFrameDelta;
+      video_header.is_first_packet_in_frame = true;
+      header.markerBit = true;
+      InsertAndVerifyDecodableFrame(kPayload, kFrameSize, &header,
+                                    video_header);
       clock_.AdvanceTimeMilliseconds(33);
-      header.header.timestamp += 3000;
+      header.timestamp += 3000;
     }
 
     // Insert 2 padding only frames.
-    header.video_header().frame_type = VideoFrameType::kEmptyFrame;
-    header.video_header().is_first_packet_in_frame = false;
-    header.header.markerBit = false;
+    video_header.frame_type = VideoFrameType::kEmptyFrame;
+    video_header.is_first_packet_in_frame = false;
+    header.markerBit = false;
     for (int j = 0; j < 2; ++j) {
       // InsertAndVerifyPaddingFrame(kPayload, &header);
       clock_.AdvanceTimeMilliseconds(33);
-      header.header.timestamp += 3000;
+      header.timestamp += 3000;
     }
   }
 }