diff --git a/modules/include/module_common_types.h b/modules/include/module_common_types.h index ff4fb72381..a366107881 100644 --- a/modules/include/module_common_types.h +++ b/modules/include/module_common_types.h @@ -109,14 +109,6 @@ class LossNotificationSender { bool decodability_flag) = 0; }; -// Used to indicate if a received packet contain a complete NALU (or equivalent) -enum VCMNaluCompleteness { - kNaluUnset = 0, // Packet has not been filled. - kNaluComplete = 1, // Packet can be decoded as is. - kNaluStart, // Packet contain beginning of NALU - kNaluIncomplete, // Packet is not beginning or end of NALU - kNaluEnd, // Packet is the end of a NALU -}; } // namespace webrtc #endif // MODULES_INCLUDE_MODULE_COMMON_TYPES_H_ diff --git a/modules/video_coding/jitter_buffer_unittest.cc b/modules/video_coding/jitter_buffer_unittest.cc index 2863efb85b..68a4b84a93 100644 --- a/modules/video_coding/jitter_buffer_unittest.cc +++ b/modules/video_coding/jitter_buffer_unittest.cc @@ -240,15 +240,15 @@ class TestBasicJitterBuffer : public ::testing::TestWithParam, i += 3; } } - WebRtcRTPHeader rtpHeader; - memset(&rtpHeader, 0, sizeof(rtpHeader)); - rtpHeader.header.sequenceNumber = seq_num_; - rtpHeader.header.timestamp = timestamp_; - rtpHeader.header.markerBit = true; - rtpHeader.frameType = kVideoFrameDelta; - rtpHeader.video_header().codec = kVideoCodecGeneric; - rtpHeader.video_header().is_first_packet_in_frame = true; - packet_.reset(new VCMPacket(data_, size_, rtpHeader)); + RTPHeader rtp_header; + RTPVideoHeader video_header; + rtp_header.sequenceNumber = seq_num_; + rtp_header.timestamp = timestamp_; + rtp_header.markerBit = true; + video_header.codec = kVideoCodecGeneric; + video_header.is_first_packet_in_frame = true; + packet_.reset(new VCMPacket(data_, size_, rtp_header, video_header, + kVideoFrameDelta, /*ntp_time_ms=*/0)); } VCMEncodedFrame* DecodeCompleteFrame() { @@ -763,13 +763,14 @@ TEST_F(TestBasicJitterBuffer, TestReorderingWithPadding) { // Add in the padding. These are empty packets (data length is 0) with no // marker bit and matching the timestamp of Frame B. - WebRtcRTPHeader rtpHeader; - memset(&rtpHeader, 0, sizeof(rtpHeader)); - rtpHeader.header.sequenceNumber = seq_num_ + 2; - rtpHeader.header.timestamp = timestamp_ + (33 * 90); - rtpHeader.header.markerBit = false; - rtpHeader.video_header().codec = kVideoCodecGeneric; - VCMPacket empty_packet(data_, 0, rtpHeader); + RTPHeader rtp_header; + RTPVideoHeader video_header; + rtp_header.sequenceNumber = seq_num_ + 2; + rtp_header.timestamp = timestamp_ + (33 * 90); + rtp_header.markerBit = false; + video_header.codec = kVideoCodecGeneric; + VCMPacket empty_packet(data_, 0, rtp_header, video_header, + VideoFrameType::kEmptyFrame, /*ntp_time_ms=*/0); EXPECT_EQ(kOldPacket, jitter_buffer_->InsertPacket(empty_packet, &retransmitted)); empty_packet.seqNum += 1; diff --git a/modules/video_coding/packet.cc b/modules/video_coding/packet.cc index 1113a6def6..5b826e8fb2 100644 --- a/modules/video_coding/packet.cc +++ b/modules/video_coding/packet.cc @@ -11,7 +11,6 @@ #include "modules/video_coding/packet.h" #include "api/rtp_headers.h" -#include "modules/include/module_common_types.h" namespace webrtc { @@ -32,16 +31,6 @@ VCMPacket::VCMPacket() video_header.playout_delay = {-1, -1}; } -VCMPacket::VCMPacket(const uint8_t* ptr, - const size_t size, - const WebRtcRTPHeader& rtpHeader) - : VCMPacket(ptr, - size, - rtpHeader.header, - rtpHeader.video_header(), - rtpHeader.frameType, - rtpHeader.ntp_time_ms) {} - VCMPacket::VCMPacket(const uint8_t* ptr, size_t size, const RTPHeader& rtp_header, diff --git a/modules/video_coding/packet.h b/modules/video_coding/packet.h index 835bfdfdf4..cd4b330d5e 100644 --- a/modules/video_coding/packet.h +++ b/modules/video_coding/packet.h @@ -15,19 +15,26 @@ #include #include "absl/types/optional.h" +#include "api/rtp_headers.h" #include "common_types.h" // NOLINT(build/include) -#include "modules/include/module_common_types.h" #include "modules/rtp_rtcp/source/rtp_generic_frame_descriptor.h" #include "modules/rtp_rtcp/source/rtp_video_header.h" namespace webrtc { +// Used to indicate if a received packet contain a complete NALU (or equivalent) +enum VCMNaluCompleteness { + kNaluUnset = 0, // Packet has not been filled. + kNaluComplete = 1, // Packet can be decoded as is. + kNaluStart, // Packet contain beginning of NALU + kNaluIncomplete, // Packet is not beginning or end of NALU + kNaluEnd, // Packet is the end of a NALU +}; + class VCMPacket { public: VCMPacket(); - VCMPacket(const uint8_t* ptr, size_t size, const WebRtcRTPHeader& rtpHeader); - VCMPacket(const uint8_t* ptr, size_t size, const RTPHeader& rtp_header, diff --git a/modules/video_coding/video_receiver.cc b/modules/video_coding/video_receiver.cc index 20eff5ecdd..e2bac952ef 100644 --- a/modules/video_coding/video_receiver.cc +++ b/modules/video_coding/video_receiver.cc @@ -394,7 +394,9 @@ int32_t VideoReceiver::IncomingPacket(const uint8_t* incomingPayload, // TODO(holmer): We should fix this in the jitter buffer. payloadLength = 0; } - const VCMPacket packet(incomingPayload, payloadLength, rtpInfo); + const VCMPacket packet(incomingPayload, payloadLength, rtpInfo.header, + rtpInfo.video_header(), rtpInfo.frameType, + rtpInfo.ntp_time_ms); int32_t ret = _receiver.InsertPacket(packet); // TODO(holmer): Investigate if this somehow should use the key frame