Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(292)

Unified Diff: webrtc/modules/rtp_rtcp/source/rtp_sender.cc

Issue 2303283002: Introduce helpers to RtpSender to propagate RtpPacketToSend. (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@master
Patch Set: nit Created 4 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « webrtc/modules/rtp_rtcp/source/rtp_sender.h ('k') | webrtc/modules/rtp_rtcp/source/rtp_sender_unittest.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: webrtc/modules/rtp_rtcp/source/rtp_sender.cc
diff --git a/webrtc/modules/rtp_rtcp/source/rtp_sender.cc b/webrtc/modules/rtp_rtcp/source/rtp_sender.cc
index 5a0dc13a6d7025e95723482d566e5477b35b6c83..fc677d77601c0785fc3a55aa25d3900c464463f7 100644
--- a/webrtc/modules/rtp_rtcp/source/rtp_sender.cc
+++ b/webrtc/modules/rtp_rtcp/source/rtp_sender.cc
@@ -1072,6 +1072,36 @@ size_t RTPSender::CreateRtpHeader(uint8_t* header,
return rtp_header_length;
}
+std::unique_ptr<RtpPacketToSend> RTPSender::AllocatePacket() const {
+ rtc::CritScope lock(&send_critsect_);
+ std::unique_ptr<RtpPacketToSend> packet(
+ new RtpPacketToSend(&rtp_header_extension_map_, max_payload_length_));
+ packet->SetSsrc(ssrc_);
+ packet->SetCsrcs(csrcs_);
+ // Reserve extensions, if registered, RtpSender set in SendToNetwork.
+ packet->ReserveExtension<AbsoluteSendTime>();
+ packet->ReserveExtension<TransmissionOffset>();
+ packet->ReserveExtension<TransportSequenceNumber>();
+ return packet;
+}
+
+bool RTPSender::AssignSequenceNumber(RtpPacketToSend* packet) {
+ rtc::CritScope lock(&send_critsect_);
+ if (!sending_media_)
+ return false;
+ RTC_DCHECK_EQ(packet->Ssrc(), ssrc_);
+ packet->SetSequenceNumber(sequence_number_++);
+
+ // Remember marker bit to determine if padding can be inserted with
+ // sequence number following |packet|.
+ last_packet_marker_bit_ = packet->Marker();
+ // Save timestamps to generate timestamp field and extensions for the padding.
+ last_rtp_timestamp_ = packet->Timestamp();
+ last_timestamp_time_ms_ = clock_->TimeInMilliseconds();
+ capture_time_ms_ = packet->capture_time_ms();
+ return true;
+}
+
int32_t RTPSender::BuildRTPheader(uint8_t* data_buffer,
int8_t payload_type,
bool marker_bit,
« no previous file with comments | « webrtc/modules/rtp_rtcp/source/rtp_sender.h ('k') | webrtc/modules/rtp_rtcp/source/rtp_sender_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698