Index: webrtc/modules/rtp_rtcp/source/rtp_format_video_generic.cc |
diff --git a/webrtc/modules/rtp_rtcp/source/rtp_format_video_generic.cc b/webrtc/modules/rtp_rtcp/source/rtp_format_video_generic.cc |
index b47e9b9359eda00348168bb9f1c0e6e72de944cf..a2ce6646808baf69b4a9a885f30ec4509e084720 100644 |
--- a/webrtc/modules/rtp_rtcp/source/rtp_format_video_generic.cc |
+++ b/webrtc/modules/rtp_rtcp/source/rtp_format_video_generic.cc |
@@ -13,6 +13,7 @@ |
#include "webrtc/base/logging.h" |
#include "webrtc/modules/include/module_common_types.h" |
#include "webrtc/modules/rtp_rtcp/source/rtp_format_video_generic.h" |
+#include "webrtc/modules/rtp_rtcp/source/rtp_packet_to_send.h" |
namespace webrtc { |
@@ -45,32 +46,33 @@ void RtpPacketizerGeneric::SetPayloadData( |
generic_header_ = RtpFormatVideoGeneric::kFirstPacketBit; |
} |
-bool RtpPacketizerGeneric::NextPacket(uint8_t* buffer, |
- size_t* bytes_to_send, |
+bool RtpPacketizerGeneric::NextPacket(RtpPacketToSend* packet, |
bool* last_packet) { |
+ RTC_DCHECK(packet); |
+ RTC_DCHECK(last_packet); |
if (payload_size_ < payload_length_) { |
payload_length_ = payload_size_; |
} |
payload_size_ -= payload_length_; |
- *bytes_to_send = payload_length_ + kGenericHeaderLength; |
- assert(payload_length_ <= max_payload_len_); |
+ RTC_DCHECK_LE(payload_length_, max_payload_len_); |
- uint8_t* out_ptr = buffer; |
+ uint8_t* out_ptr = |
+ packet->AllocatePayload(kGenericHeaderLength + payload_length_); |
// Put generic header in packet |
if (frame_type_ == kVideoFrameKey) { |
generic_header_ |= RtpFormatVideoGeneric::kKeyFrameBit; |
} |
- *out_ptr++ = generic_header_; |
+ out_ptr[0] = generic_header_; |
// Remove first-packet bit, following packets are intermediate |
generic_header_ &= ~RtpFormatVideoGeneric::kFirstPacketBit; |
// Put payload in packet |
- memcpy(out_ptr, payload_data_, payload_length_); |
+ memcpy(out_ptr + kGenericHeaderLength, payload_data_, payload_length_); |
payload_data_ += payload_length_; |
*last_packet = payload_size_ <= 0; |
- |
+ packet->SetMarker(*last_packet); |
return true; |
} |